Generación de la transmisión de voz desde el texto a través de la biblioteca Rhvoice sin reinicializar el motor. Esto muy rápido y más conveniente que llamar a Rhvoice-Test.
Formatos de audio compatibles: wav , mp3 , opus , flac y pcm (salida RAW RHVOICE).
pip3 install rhvoice-wrapper
Este paquete no proporciona Rhvoice en sí. Debe ser construir (o instalar) rhvoice, idiomas y voces manualmente. En Windows debe especificar las rutas para el trabajo.
Advertencia ! rhvoice-wrapper-bin no funciona en macOS , instale rhvoice manualmente.
En lugar de Rhvoice, puede instalar rhvoice-wrapper-bin. Esta es la mejor manera para Windows. Si se instala el rhvoice-wrapper-bin , sus bibliotecas y datos se utilizarán automáticamente.
pip3 install rhvoice-wrapper[rhvoice]
Primero crea el objeto TTS:
from rhvoice_wrapper import TTS
tts = TTS ( threads = 1 ) Puede establecer opciones al crear o mediante entornos variables (registro superior). Opciones anule entornos variables. Para establecer el valor predeterminado, use None :
1 , creó un objeto de subproceso, si se ejecuta más en modo multiprocesamiento y crea muchos procesos. Predeterminado 1 .True se ejecutan en modo multiprocesamiento, si es False en el modo de subprocesos. Predeterminado False si hilos == 1, de lo True . Modo de subprocesos y subprocesos> 1 causa fallas de segmentación o puede devolver datos corruptoslibRHVoice.so predeterminado.so en Linux, libRHVoice.dylib en macOS y RHVoice.dll en Windows./usr/local/share/RHVoice ./usr/local/etc/RHVoice .[] .lame , opcional. Lame debe estar presente para el soporte mp3 . lame predeterminado.opusenc , opcional. El archivo debe estar presente para el soporte opus . opusenc predeterminado.flac , opcional. El archivo debe estar presente para el soporte flac . flac predeterminado.True no se salga de información. False predeterminado.say devolverá una gran fragmentación, los formatos distintos wav y pcm se generarán mucho más lento. Predeterminado True .Inicie el generador de síntesis y obtenga datos de audio, fragmento por fragmento:
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 chunkO obtener todos los datos de audio en una gran parte:
data = tts . get ( 'Hello world!' , format_ = 'wav' )
print ( 'data size: ' , len ( data ), ' bytes' )
subprocess . check_output ([ 'aplay' , '-q' ], input = data )O simplemente guarde para archivar:
tts . to_file ( filename = 'esperanto.ogg' , text = 'Saluton mondo' , voice = 'spomenka' , format_ = 'opus' , sets = None ) format_ es el formato de audio de salida. Debe estar presente en tts.formats .
voice es una voz del altavoz. Debe estar presente en tts.voice_profiles . voice='Voice', sets=None igual voice=None, sets={'voice_profile': 'Voice'} , voice Más prioridad.
sets pueden establecerse como DICT que contienen parámetros de síntesis como en SET_PARAMS. Estos parámetros solo funcionan para la frase actual. None predeterminado.
Si buff no equivale None or 0 , para PCM y WAV Troys regresan como es (probablemente poco más rápido). Para otros usó el tamaño predeterminado de la fragmentación (4 KIB).
Si text de texto es objeto, todos sus fragmentos se procesarán sucesivamente. Este es un buen método para procesar textos increíblemente grandes. Recuerde, el generador no puede transferirse a otro proceso. Ejemplo:
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 chunkCambia la configuración del 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 la documentación de Rhvoice para más detalles.
Devuelve True si cambia, de lo contrario False .
Obtener configuración del sintetizador de voz:
tts . get_params ( param = None ) Si Param es None devuelve todas las configuraciones en dict , de lo contrario, valor del parámetro por nombre. Si el parámetro no encontrado no devuelve None .
Unir el hilo o los procesos. No use objeto después de unirse:
tts . join ()TTS.formats : Lista de formatos compatibles, pcm y wav siempre presentes.TTS.thread_count : número de hilos de síntesis.TTS.process : si es True , TTS que se ejecutan en modo multiprocesamiento.TTS.voices : Lista de voces compatibles.TTS.voice_profiles : lista de perfiles de voz compatibles.TTS.voices_info : Diccionario de voces compatibles con información de voces.TTS.api_version : Versión compatible de la biblioteca Rhvoice.TTS.lib_version : versión de la biblioteca Rhvoice. Si no está en rhvoice_wrapper.rhvoice_proxy.SUPPORT , puede incorrectamente un trabajo.TTS.cmd : Diccionario de llamadas externas, tal como es.