Home
Login

Uma biblioteca Python avançada de texto para fala em tempo real, com suporte para vários mecanismos de TTS, oferecendo baixa latência e saída de áudio de alta qualidade.

MITPython 3.2kKoljaBRealtimeTTS Last Updated: 2025-06-17

RealtimeTTS - Descrição Detalhada do Projeto

Visão Geral do Projeto

RealtimeTTS é uma biblioteca Python avançada de texto para voz (TTS) em tempo real, projetada especificamente para aplicações em tempo real que exigem baixa latência e saída de áudio de alta qualidade. Esta biblioteca consegue converter rapidamente fluxos de texto em saídas de áudio de alta qualidade com latência mínima, tornando-a ideal para construir assistentes de voz, sistemas de diálogo de IA e ferramentas de acessibilidade.

Endereço do Projeto: https://github.com/KoljaB/RealtimeTTS

Principais Características

1. Processamento de Baixa Latência

  • Conversão de texto para voz quase instantânea: Fluxos de processamento otimizados garantem latência mínima.
  • Compatível com saída de LLM: Pode processar diretamente a saída de streaming de grandes modelos de linguagem.
  • Processamento de fluxo em tempo real: Suporta processamento em tempo real em nível de caractere e frase.

2. Saída de Áudio de Alta Qualidade

  • Voz clara e natural: Gera voz natural que se aproxima da voz humana.
  • Suporte a vários formatos de áudio: Suporta vários formatos de saída de áudio.
  • Parâmetros de áudio configuráveis: Taxa de amostragem, taxa de bits e outros parâmetros podem ser ajustados.

3. Suporte a Múltiplos Mecanismos

RealtimeTTS suporta vários mecanismos de TTS, oferecendo uma rica seleção:

Mecanismos na Nuvem 🌐

  • OpenAIEngine: Serviço TTS da OpenAI, oferece 6 vozes de alta qualidade.
  • AzureEngine: Serviço de voz Azure da Microsoft, 500.000 caracteres gratuitos por mês.
  • ElevenlabsEngine: Qualidade de voz premium, oferece uma rica seleção de vozes.
  • GTTSEngine: TTS gratuito do Google Translate, não requer GPU.
  • EdgeEngine: Serviço TTS gratuito do Microsoft Edge.

Mecanismos Locais 🏠

  • CoquiEngine: TTS neural de alta qualidade, suporta processamento local e clonagem de voz.
  • ParlerEngine: TTS neural local, adequado para GPUs de ponta.
  • SystemEngine: TTS do sistema integrado, configuração rápida.
  • PiperEngine: Sistema TTS extremamente rápido, pode até ser executado em um Raspberry Pi.
  • StyleTTS2Engine: Síntese de voz estilizada.
  • KokoroEngine: Novo mecanismo com suporte a vários idiomas.
  • OrpheusEngine: Opção de mecanismo adicionada mais recentemente.

4. Suporte a Vários Idiomas

  • Suporta síntese de voz em vários idiomas.
  • Segmentação inteligente de frases e detecção de idioma.
  • Parâmetros específicos do idioma configuráveis.

5. Robustez e Confiabilidade

  • Mecanismo de failover: Alterna automaticamente para um mecanismo de backup quando um mecanismo apresenta problemas.
  • Garantia de operação contínua: Garante desempenho e confiabilidade consistentes para casos de uso críticos e profissionais.
  • Tratamento de erros: Tratamento de erros e mecanismos de recuperação abrangentes.

Instalação

Instalação Recomendada (Versão Completa)

pip install -U realtimetts[all]

Instalação Personalizada

Pode selecionar suporte para mecanismos específicos conforme necessário:

# Apenas TTS do sistema
pip install realtimetts[system]

# Suporte Azure
pip install realtimetts[azure]

# Combinação de vários mecanismos
pip install realtimetts[azure,elevenlabs,openai]

Opções de Instalação Disponíveis

  • all: Instalação completa, suporta todos os mecanismos.
  • system: TTS do sistema local (pyttsx3).
  • azure: Suporte ao serviço de voz Azure.
  • elevenlabs: Integração da API ElevenLabs.
  • openai: Serviço OpenAI TTS.
  • gtts: Google Text-to-Speech.
  • edge: Microsoft Edge TTS.
  • coqui: Mecanismo Coqui TTS.
  • minimal: Apenas pacote principal (para desenvolvimento de mecanismo personalizado).

Componentes Principais

1. Processamento de Fluxo de Texto

  • Detecção de limites de frases: Suporta tokenizadores NLTK e Stanza.
  • Segmentação inteligente: Segmenta o texto com base em pontuação e regras de idioma.
  • Processamento de fluxo: Suporta iteradores e geradores de caracteres.

2. Gerenciamento de Fluxo de Áudio

  • Reprodução assíncrona: O método play_async() suporta reprodução não bloqueante.
  • Reprodução síncrona: O método play() é usado para reprodução bloqueante.
  • Controle de fluxo: Suporta operações de pausa, retomada e parada.

3. Sistema de Retorno de Chamada

Fornece uma rica variedade de funções de retorno de chamada para monitoramento e controle:

  • on_text_stream_start(): Acionado quando o fluxo de texto começa.
  • on_text_stream_stop(): Acionado quando o fluxo de texto termina.
  • on_audio_stream_start(): Acionado quando a reprodução de áudio começa.
  • on_audio_stream_stop(): Acionado quando a reprodução de áudio termina.
  • on_character(): Acionado quando cada caractere é processado.
  • on_word(): Sincronização de tempo em nível de palavra (suportado pelos mecanismos Azure e Kokoro).

Exemplos de Uso Básico

Uso Simples

from RealtimeTTS import TextToAudioStream, SystemEngine

# Cria o mecanismo e o fluxo
engine = SystemEngine()
stream = TextToAudioStream(engine)

# Insere texto e reproduz
stream.feed("Hello world! How are you today?")
stream.play_async()

Processamento de Texto em Fluxo

# Processa string
stream.feed("Hello, this is a sentence.")

# Processa gerador (adequado para saída de LLM)
def write(prompt: str):
    for chunk in openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": prompt}],
        stream=True
    ):
        if (text_chunk := chunk["choices"][0]["delta"].get("content")) is not None:
            yield text_chunk

text_stream = write("A three-sentence relaxing speech.")
stream.feed(text_stream)

# Processa iterador de caracteres
char_iterator = iter("Streaming this character by character.")
stream.feed(char_iterator)

Controle de Reprodução

# Reprodução assíncrona
stream.play_async()
while stream.is_playing():
    time.sleep(0.1)

# Reprodução síncrona
stream.play()

# Operações de controle
stream.pause()   # Pausa
stream.resume()  # Retoma
stream.stop()    # Para

Configuração Avançada

Parâmetros TextToAudioStream

stream = TextToAudioStream(
    engine=engine,                    # Mecanismo TTS
    on_text_stream_start=callback,    # Retorno de chamada de início do fluxo de texto
    on_audio_stream_start=callback,   # Retorno de chamada de início do fluxo de áudio
    output_device_index=None,         # Dispositivo de saída de áudio
    tokenizer="nltk",                # Seleção de tokenizador
    language="en",                   # Código do idioma
    muted=False,                     # Se está mudo
    level=logging.WARNING            # Nível de log
)

Parâmetros de Reprodução

stream.play(
    fast_sentence_fragment=True,      # Processamento rápido de fragmentos de frases
    buffer_threshold_seconds=0.0,     # Limiar de buffer
    minimum_sentence_length=10,       # Comprimento mínimo da frase
    log_synthesized_text=False,       # Registra o texto sintetizado
    reset_generated_text=True,        # Redefine o texto gerado
    output_wavfile=None,             # Salva em um arquivo WAV
    on_sentence_synthesized=callback, # Retorno de chamada de conclusão da síntese de frases
    before_sentence_synthesized=callback, # Retorno de chamada antes da síntese de frases
    on_audio_chunk=callback          # Retorno de chamada de bloco de áudio pronto
)

Configuração Específica do Mecanismo

Mecanismo OpenAI

from RealtimeTTS import OpenAIEngine

engine = OpenAIEngine(
    api_key="your-api-key",  # Ou defina a variável de ambiente OPENAI_API_KEY
    voice="alloy",           # Opcional: alloy, echo, fable, onyx, nova, shimmer
    model="tts-1"           # Ou tts-1-hd
)

Mecanismo Azure

from RealtimeTTS import AzureEngine

engine = AzureEngine(
    speech_key="your-speech-key",    # Ou defina a variável de ambiente AZURE_SPEECH_KEY
    service_region="your-region",    # Por exemplo: "eastus"
    voice_name="en-US-AriaNeural"   # Nome da voz Azure
)

Mecanismo Coqui (Clonagem de Voz)

from RealtimeTTS import CoquiEngine

engine = CoquiEngine(
    voice="path/to/voice/sample.wav",  # Arquivo de origem de clonagem de voz
    language="en"                      # Código do idioma
)

Arquivos de Teste

O projeto fornece uma rica variedade de exemplos de teste:

  • simple_test.py: Demonstração básica de "Hello World".
  • complex_test.py: Demonstração de funcionalidade completa.
  • coqui_test.py: Teste do mecanismo Coqui TTS local.
  • translator.py: Tradução multilíngue em tempo real (requer a instalação de openai realtimestt).
  • openai_voice_interface.py: Interface de API OpenAI ativada por voz.
  • advanced_talk.py: Sistema de diálogo avançado.
  • minimalistic_talkbot.py: Chatbot simples de 20 linhas de código.
  • test_callbacks.py: Teste de funcionalidade de retorno de chamada e latência.

Suporte CUDA

Para obter melhor desempenho, especialmente ao usar mecanismos neurais locais, é recomendável instalar o suporte CUDA:

Etapas de Instalação

  1. Instale o NVIDIA CUDA Toolkit (versão 11.8 ou 12.X).
  2. Instale o NVIDIA cuDNN.
  3. Instale o ffmpeg.
  4. Instale o PyTorch com suporte a CUDA:
# CUDA 11.8
pip install torch==2.5.1+cu118 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu118

# CUDA 12.X
pip install torch==2.5.1+cu121 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu121

Casos de Uso

1. Assistentes de IA e Chatbots

  • Resposta em tempo real às consultas do usuário.
  • Experiência de conversação natural.
  • Suporte a vários idiomas.

2. Ferramentas de Acessibilidade

  • Leitores de tela.
  • Auxílio para deficientes visuais.
  • Ferramentas de apoio ao aprendizado.

3. Criação de Conteúdo

  • Produção de podcasts.
  • Audiolivros.
  • Conteúdo educacional.

4. Atendimento ao Cliente

  • Sistemas automatizados de atendimento ao cliente.
  • Robôs de telefone.
  • Serviços de tradução em tempo real.

5. Jogos e Entretenimento

  • Voz no jogo.
  • Dublagem de personagens virtuais.
  • Aplicações de entretenimento interativo.

Ecossistema do Projeto

RealtimeTTS faz parte de um ecossistema maior:

  • RealtimeSTT: Biblioteca de voz para texto complementar, a combinação dos dois pode criar um sistema completo de processamento de áudio em tempo real.
  • Linguflex: Projeto original, um poderoso assistente de IA de código aberto.
  • LocalAIVoiceChat: Sistema local de diálogo de voz de IA baseado no modelo Zephyr 7B.

Informações de Licença

O projeto em si é de código aberto, mas é importante observar as restrições de licença de cada mecanismo:

  • Mecanismos de código aberto: SystemEngine, GTTSEngine (licença MIT).
  • Mecanismos com restrições comerciais: CoquiEngine, ElevenlabsEngine, AzureEngine (gratuito para uso não comercial).
  • Serviços pagos: OpenAI requer uma chave de API e um plano pago.

Requisitos do Sistema

  • Versão do Python: >= 3.9, < 3.13
  • Sistema Operacional: Windows, macOS, Linux
  • Dependências: PyAudio, pyttsx3, pydub, etc.
  • Suporte a GPU: Placa de vídeo NVIDIA recomendada para mecanismos neurais locais.

Resumo

RealtimeTTS é uma biblioteca de texto para voz em tempo real poderosa e bem projetada, adequada para aplicações modernas que exigem síntese de voz de alta qualidade e baixa latência. Seu suporte a vários mecanismos, mecanismos robustos de tratamento de erros e ricas opções de configuração o tornam a escolha ideal para construir aplicações de voz de nível profissional. Seja para projetos pessoais ou aplicações de nível empresarial, o RealtimeTTS pode fornecer uma solução confiável e eficiente.

Star History Chart