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
BaseEngine
ou 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
logging
embutido 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.