Gerando fluxo de fala a partir do texto via biblioteca RHVOICE sem reinicializar o motor. Isso é muito rápido e mais conveniente do que chamar o teste RHVoice.
Formatos de áudio suportados: wav , mp3 , opus , flac e pcm (saída RAW RHVOICE).
pip3 install rhvoice-wrapper
Este pacote não fornece o próprio RHVOICE. Você deve ser construído (ou instalar) rhvoice, idiomas e vozes manualmente. No Windows, você deve especificar os caminhos para o trabalho.
Aviso ! rhvoice-wrapper-bin NÃO FUNCIONO NO MACOS , Instale o RHVOICE manualmente.
Em vez de rhvoice, você pode instalar o rhvoice-wrapper-bin. Esta é a melhor maneira de Windows. Se o rhvoice-wrapper-bin estiver instalado, suas bibliotecas e dados serão usados automaticamente.
pip3 install rhvoice-wrapper[rhvoice]
Primeiro crie objeto TTS:
from rhvoice_wrapper import TTS
tts = TTS ( threads = 1 ) Você pode definir opções ao criar ou através de ambientes variáveis (registro superior). As opções substituem ambientes variáveis. Para definir o valor padrão, use None :
1 , criou um objeto de thread, se mais executado no modo multiprocessamento e criar muitos processos. Padrão 1 .True executarem no modo multiprocessamento, se False no modo Threads. Padrão False se threads == 1, else True . Modo de threads e threads> 1 causa falhas de segmentação ou pode retornar dados corrompidoslibRHVoice.so em Linux, libRHVoice.dylib no macOS e RHVoice.dll no Windows./usr/local/share/RHVoice ./usr/local/etc/RHVoice .[] .lame , opcional. O coxo deve estar presente para suporte mp3 . lame padrão.opusenc , opcional. O arquivo deve estar presente para o suporte opus . opusenc padrão.flac , opcional. O arquivo deve estar presente para o suporte flac . flac padrão.True não é uma saída de informações. Padrão False .say retornará um grande pedaço, os formatos que não wav e pcm serão gerados muito mais lentos. Padrão True .Inicie o gerador de síntese e obtenha dados de áudio, Chunk by Chunk:
def generator_audio ( text , voice = 'anna' , format_ = 'wav' , buff = 4096 , sets = None ):
with tts . say ( text , voice , format_ , buff , sets ) as gen :
for chunk in gen :
yield chunkOu obtenha todos os dados de áudio em um grande pedaço:
data = tts . get ( 'Hello world!' , format_ = 'wav' )
print ( 'data size: ' , len ( data ), ' bytes' )
subprocess . check_output ([ 'aplay' , '-q' ], input = data )Ou apenas salve no arquivo:
tts . to_file ( filename = 'esperanto.ogg' , text = 'Saluton mondo' , voice = 'spomenka' , format_ = 'opus' , sets = None ) format_ é o formato de áudio de saída. Deve estar presente no tts.formats .
voice é uma voz de alto -falante. Deve estar presente em tts.voice_profiles . voice='Voice', sets=None voice=None, sets={'voice_profile': 'Voice'} , voice mais prioridade.
sets podem definir como dicto contendo parâmetros de síntese como em set_params. Esses parâmetros funcionam apenas para a frase atual. Padrão None .
Se buff for igual None or 0 , para os pedaços PCM e WAV retornarem como está (provavelmente um pouco mais rápido). Para outros, usou o tamanho do pedaço padrão (4 kib).
Se o objeto iterável text , todos os seus fragmentos processarão sucessivamente. Este é um bom método para processar textos incrivelmente grandes. Lembre -se, o gerador não pode ser transferido para outro processo. Exemplo:
def _text ():
with open ( 'wery_large_book.txt' ) as fp :
text = fp . read ( 5000 )
while text :
yield text
text = fp . read ( 5000 )
def generator_audio ():
with tts . say ( _text ()) as gen :
for chunk in gen :
yield chunkAltera as configurações do sintetizador de voz:
tts . set_params ( ** kwargs ) Permitir: voice_profile , absolute_rate , absolute_pitch , absolute_volume , relative_rate , relative_pitch , relative_volume , punctuation_mode , punctuation_list , capitals_mode , flags . Consulte a documentação do RHVOICE para obter detalhes.
Retorne True se mudar, else False .
Obtenha configurações de sintetizador de voz:
tts . get_params ( param = None ) Se o param None retornar todas as configurações no dict , caso contrário, o valor do parâmetro pelo nome. Se o parâmetro não encontrar, retorne None .
Junte -se a threads ou processos. Não use o objeto após a participação:
tts . join ()TTS.formats : Lista de formatos suportados, pcm e wav sempre presentes.TTS.thread_count : número de threads de síntese.TTS.process : Se True , TTS em execução no modo multiprocessamento.TTS.voices : Lista de vozes suportadas.TTS.voice_profiles : Lista de perfis de voz suportados.TTS.voices_info : dicionário de vozes suportadas com informações de vozes.TTS.api_version : versão da biblioteca RHVOICE suportada.TTS.lib_version : versão da biblioteca RHVOICE. Se não estiver em rhvoice_wrapper.rhvoice_proxy.SUPPORT , pode trabalhar incorreto.TTS.cmd : Dicionário de chamadas externas, como é.