Génération du flux de la parole à partir de texte via la bibliothèque Rhvoice sans réinitialiser le moteur. Ce test très rapide et plus pratique que le test de rhvoice.
Formats audio pris en charge: wav , mp3 , opus , flac et pcm (sortie Rhvoice brut).
pip3 install rhvoice-wrapper
Ce package ne fournit pas Rhvoice lui-même. Vous devez créer (ou installer) Rhvoice, Languages and Voices manuellement. Dans Windows, vous devez spécifier les chemins de travail.
Avertissement ! rhvoice-wrapper-bin ne fonctionnant pas dans macOS , installez rhvoice manuellement.
Au lieu de Rhvoice, vous pouvez installer Rhvoice-Wrapper-bin. C'est le meilleur moyen pour Windows. Si le rhvoice-wrapper-bin est installé, ses bibliothèques et données seront utilisées automatiquement.
pip3 install rhvoice-wrapper[rhvoice]
Créer d'abord l'objet TTS:
from rhvoice_wrapper import TTS
tts = TTS ( threads = 1 ) Vous pouvez définir des options lors de la création ou via des environnements variables (registre supérieur). Options Override les environnements variables. Pour définir la valeur par défaut Utiliser None :
1 , a créé un objet de thread, si plus d'exécution en mode multiprocesseur et créez beaucoup de processus. Par défaut 1 .True moteurs s'exécutent en mode multiprocesse, si False en mode threads. Par défaut False if threads == 1, sinon True . Mode des threads et threads> 1 provoque des défauts de segmentation ou peut renvoyer des données corrompueslibRHVoice.so dans Linux, libRHVoice.dylib dans MacOS et RHVoice.dll dans Windows./usr/local/share/RHVoice ./usr/local/etc/RHVoice .[] .lame , facultatif. Lame doit être présente pour le support mp3 . lame par défaut.opusenc , facultatif. Le fichier doit être présent pour l'assistance opus . opusenc par défaut.flac , facultatif. Le fichier doit être présent pour le support flac . flac par défaut.True ne faites pas la sortie des informations. Par défaut False .say un gros morceau, des formats autres que wav et pcm seront générés beaucoup plus lentement. Par défaut True .Démarrez le générateur de synthèse et obtenez des données audio, morceau par morceau:
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 obtenez toutes les données audio dans une grande partie:
data = tts . get ( 'Hello world!' , format_ = 'wav' )
print ( 'data size: ' , len ( data ), ' bytes' )
subprocess . check_output ([ 'aplay' , '-q' ], input = data )Ou tout simplement enregistrer dans le fichier:
tts . to_file ( filename = 'esperanto.ogg' , text = 'Saluton mondo' , voice = 'spomenka' , format_ = 'opus' , sets = None ) format_ est le format audio de sortie. Doit être présent dans tts.formats .
voice est une voix de haut-parleur. Doit être présent dans tts.voice_profiles . voice='Voice', sets=None Equal voice=None, sets={'voice_profile': 'Voice'} , voice plus prioritaire.
sets peuvent définir les paramètres de synthèse contenant du dict que dans set_params. Ces paramètres ne fonctionnent que pour la phrase actuelle. None par défaut.
Si buff Egal None or 0 , pour PCM et WAV, les morceaux reviennent tels quels (probablement peu plus rapidement). Pour les autres, la taille de la partie par défaut a utilisé (4 kib).
Si l'objet text ITable, tous ses fragments se traduiront successivement. Il s'agit d'une bonne méthode pour traiter des textes incroyablement grands. N'oubliez pas que le générateur ne peut pas être transféré à un autre processus. Exemple:
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 chunkModifie les paramètres du synthétiseur vocal:
tts . set_params ( ** kwargs ) Autoriser: voice_profile , absolute_rate , absolute_pitch , absolute_volume , relative_rate , relative_pitch , relative_volume , punctuation_mode , punctuation_list , capitals_mode , flags . Voir la documentation Rhvoice pour plus de détails.
Renvoie True si change, sinon False .
Obtenez des paramètres de synthétiseur vocal:
tts . get_params ( param = None ) Si Param est None ne renvoie tous les paramètres dans dict , Else Paramètre Valeur par nom. Si le paramètre n'est pas trouvé, renvoyez None .
Rejoindre le thread ou les processus. N'utilisez pas d'objet après la jointure:
tts . join ()TTS.formats : liste des formats pris en charge, pcm et wav toujours présents.TTS.thread_count : nombre de threads de synthèse.TTS.process : Si True , TTS fonctionnant en mode multiprocesse.TTS.voices : liste des voix prises en charge.TTS.voice_profiles : liste des profils vocaux pris en charge.TTS.voices_info : Dictionnaire de voix prises en charge avec des informations sur les voix.TTS.api_version : version de la bibliothèque Rhvoice prise en charge.TTS.lib_version : version de la bibliothèque Rhvoice. Si ce n'est pas dans rhvoice_wrapper.rhvoice_proxy.SUPPORT , peut travailler incorrect.TTS.cmd : Dictionnaire des appels externes, tel qu'il est.