Português
Configuração
Parâmetros de Inicialização para TextToAudioStream
Quando você inicializa a classe TextToAudioStream, você tem várias opções para personalizar seu comportamento. Aqui estão os parâmetros disponíveis:
engine (BaseEngine)
- Tipo: BaseEngine
- Obrigatório: Sim
- Descrição: O mecanismo subjacente responsável pela síntese de texto para áudio. Você deve fornecer uma instância de
BaseEngineou sua subclasse para habilitar a síntese de áudio.
on_text_stream_start (callable)
- Tipo: Função chamável
- Obrigatório: Não
- Descrição: Esta função de callback opcional é acionada quando o fluxo de texto começa. Use-o para qualquer configuração ou registro que você possa precisar.
on_text_stream_stop (callable)
- Tipo: Função chamável
- Obrigatório: Não
- Descrição: Esta função de retorno de chamada opcional é ativada quando o fluxo de texto termina. Você pode usar isso para tarefas de limpeza ou registro.
on_audio_stream_start (callable)
- Tipo: Função chamável
- Obrigatório: Não
- Descrição: Esta função de callback opcional é invocada quando o fluxo de áudio começa. Útil para atualizações de UI ou registro de eventos.
on_audio_stream_stop (callable)
- Tipo: Função chamável
- Obrigatório: Não
- Descrição: Esta função de callback opcional é chamada quando o fluxo de áudio para. Ideal para limpeza de recursos ou tarefas de pós-processamento.
on_character (callable)
- Tipo: Função chamável Não
- Descrição: Esta função de retorno de chamada opcional é chamada quando um único caractere é processado.
output_device_index (int)
- Tipo: Inteiro
- Obrigatório: Não
- Padrão: Nenhum
- Descrição: Especifica o índice do dispositivo de saída a ser usado. Nenhum usa o dispositivo padrão.
tokenizer (string)
- Tipo: String
- Obrigatório: Não
- Padrão: nltk
- Descrição: Tokenizador a ser usado para divisão de sentenças (currently "nltk" and "stanza" are supported).
language (string)
- Tipo: String
- Obrigatório: Não
- Padrão: en
- Descrição: Idioma a usar para a divisão de frases.
muted (bool)
- Tipo: Bool
- Obrigatório: Não
- Padrão: Falso
- Descrição: Parâmetro global de mudo. Se True, nenhum fluxo pyAudio será aberto. Desativa a reprodução de áudio pelos alto-falantes locais (caso você queira sintetizar para um arquivo ou processar pedaços de áudio) e substitui a configuração de silenciamento dos parâmetros de reprodução.
level (int)
- Tipo: Inteiro
- Requerido: Não
- Padrão:
logging.WARNING - Descrição: Define o nível de registro para o logger interno. Isso pode ser qualquer constante inteira do módulo
loggingembutido do Python.
Exemplo de Uso:
engine = YourEngine() # Substitua pelo seu motor
stream = TextToAudioStream(
engine=engine,
on_text_stream_start=my_text_start_func,
on_text_stream_stop=my_text_stop_func,
on_audio_stream_start=my_audio_start_func,
on_audio_stream_stop=my_audio_stop_func,
level=logging.INFO
)
Métodos
play e play_async
Esses métodos são responsáveis por executar a síntese de texto para áudio e reproduzir o fluxo de áudio. A diferença é que play é uma função bloqueante, enquanto play_async é executada em uma thread separada, permitindo que outras operações prossigam.
Parâmetros:
fast_sentence_fragment (bool)
- Padrão:
True - Descrição: Quando definido como
True, o método priorizará a velocidade, gerando e reproduzindo fragmentos de frases mais rapidamente. Isso é útil para aplicações onde a latência é importante.
fast_sentence_fragment_allsentences (bool)
- Padrão:
False - Descrição: Quando definido como
True, aplica o processamento rápido de fragmentos de sentenças a todas as sentenças, não apenas à primeira.
fast_sentence_fragment_allsentences_multiple (bool)
- Padrão:
False - Descrição: Quando definido como
True, permite gerar múltiplos fragmentos de frase em vez de apenas um único.
buffer_threshold_seconds (float)
- Padrão:
0.0 -
Descrição: Especifica o tempo em segundos para o limite de buffer, o que impacta a suavidade e a continuidade da reprodução de áudio.
-
Como Funciona: Antes de sintetizar uma nova frase, o sistema verifica se há mais material de áudio restante no buffer do que o tempo especificado por
buffer_threshold_seconds. Se for o caso, ele recupera outra frase do gerador de texto, assumindo que pode buscar e sintetizar essa nova frase dentro da janela de tempo fornecida pelo áudio restante no buffer. Este processo permite que o mecanismo de texto-para-fala tenha mais contexto para uma melhor síntese, melhorando a experiência do usuário.
Um valor mais alto garante que haja mais áudio pré-bufferizado, reduzindo a probabilidade de silêncio ou lacunas durante a reprodução. Se você experimentar quebras ou pausas, considere aumentar este valor.
minimum_sentence_length (int)
- Padrão:
10 - Descrição: Define o comprimento mínimo de caracteres para considerar uma string como uma frase a ser sintetizada. Isso afeta como os trechos de texto são processados e reproduzidos.
minimum_first_fragment_length (int)
- Padrão:
10 - Descrição: O número mínimo de caracteres exigido para o primeiro fragmento de frase antes de ceder.
log_synthesized_text (bool)
- Padrão:
False - Descrição: Quando ativado, registra os trechos de texto à medida que são sintetizados em áudio. Útil para auditoria e depuração.
reset_generated_text (bool)
- Padrão:
True - Descrição: Se verdadeiro, redefina o texto gerado antes de processar.
output_wavfile (str)
- Padrão:
None - Descrição: Se definido, salve o áudio no arquivo WAV especificado.
on_sentence_synthesized (callable)
- Padrão:
Nenhum - Descrição: Uma função de callback que é chamada após um único fragmento de sentença ser sintetizado.
before_sentence_synthesized (callable)
- Padrão:
Nenhum - Descrição: Uma função de callback que é chamada antes que um único fragmento de frase seja sintetizado.
on_audio_chunk (callable)
- Padrão:
Nenhum - Descrição: Função de callback que é chamada quando um único pedaço de áudio está pronto.
tokenizer (str)
- Padrão:
"nltk" - Descrição: Tokenizer a ser usado para a divisão de sentenças. Atualmente suporta "nltk" e "stanza".
tokenize_sentences (callable)
- Padrão:
None - Descrição: Uma função personalizada que tokeniza sentenças a partir do texto de entrada. Você pode fornecer seu próprio tokenizador leve se não estiver satisfeito com o nltk e o stanza. Deve receber o texto como uma string e retornar as sentenças divididas como uma lista de strings.
language (str)
- Padrão:
"pt" - Descrição: Idioma a ser usado para a divisão de frases.
context_size (int)
- Padrão:
12 - Descrição: O número de caracteres usados para estabelecer o contexto para a detecção de limites de sentenças. Um contexto maior melhora a precisão na detecção de limites de sentenças.
context_size_look_overhead (int)
- Padrão:
12 - Descrição: Tamanho adicional do contexto para olhar à frente ao detectar limites de sentenças.
muted (bool)
- Padrão:
Falso - Descrição: Se verdadeiro, desativa a reprodução de áudio pelos alto-falantes locais. Útil quando você quer sintetizar para um arquivo ou processar trechos de áudio sem reproduzi-los.
sentence_fragment_delimiters (str)
- Padrão:
".?!;:,\n…)]}。-" - Descrição: Uma sequência de caracteres que são considerados delimitadores de frases.
force_first_fragment_after_words (int)
- Padrão:
15 - Descrição: O número de palavras após o qual o primeiro fragmento de frase é forçado a ser gerado.