Generieren von Sprachstrom aus Text über die RHVOICE-Bibliothek ohne Neuinitialisierung der Engine. Dieser sehr schnelle und bequemere als den RHVoice-Test nenne.
Unterstützte Audioformate: wav , mp3 , opus , flac und pcm (RHVOICE -Ausgang).
pip3 install rhvoice-wrapper
Dieses Paket liefert RHVoice selbst nicht . Sie müssen RHVoice, Sprachen und Stimmen manuell erstellen (oder installieren). In Windows müssen Sie die Wege für die Arbeit angeben.
Warnung ! rhvoice-wrapper-bin funktioniert nicht in macOS und installieren Sie Rhvoice manuell.
Anstelle von Rhvoice können Sie Rhvoice-Wrapper-Bin installieren. Dies ist der beste Weg für Windows. Wenn das rhvoice-wrapper-bin installiert ist, werden seine Bibliotheken und Daten automatisch verwendet.
pip3 install rhvoice-wrapper[rhvoice]
Erstellen Sie zuerst das TTS -Objekt:
from rhvoice_wrapper import TTS
tts = TTS ( threads = 1 ) Sie können Optionen beim Erstellen oder über variablen Umgebungen festlegen (oberes Register). Optionen überschreiben variable Umgebungen. Um den Standardwert zu setzen, verwenden Sie None :
1 ist, erstellen Sie ein Thread -Objekt, wenn mehr im Multiprozessing -Modus ausgeführt werden und viele Prozesse erstellen. Standard 1 .True Motoren im Multiprocessing -Modus ausgeführt werden, falls dies im Threads -Modus False . Standard False , wenn Threads == 1, sonst True . Threads -Modus und Threads> 1 verursachen Segmentierungsfehler oder können beschädigte Daten zurückgebenlibRHVoice.so in Linux, libRHVoice.dylib in macOS und RHVoice.dll in Windows./usr/local/share/RHVoice ./usr/local/etc/RHVoice .[] .lame , optional. Lahm muss für mp3 -Support anwesend sein. Standard lame .opusenc , optional. Die Datei muss für opus -Support vorhanden sein. Standard opusenc .flac , optional. Die Datei muss für flac -Unterstützung vorhanden sein. Standard flac .True keine Infoausgabe. Standard False .say Sie ein großes Stück, andere Formate als wav und pcm werden viel langsamer generiert. Standard True .Starten Sie den Synthesegenerator und erhalten Sie Audiodaten, Chunk von 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 chunkOder holen Sie alle Audiodaten in einem großen Teil:
data = tts . get ( 'Hello world!' , format_ = 'wav' )
print ( 'data size: ' , len ( data ), ' bytes' )
subprocess . check_output ([ 'aplay' , '-q' ], input = data )Oder einfach in Datei speichern:
tts . to_file ( filename = 'esperanto.ogg' , text = 'Saluton mondo' , voice = 'spomenka' , format_ = 'opus' , sets = None ) format_ erhält das Audio -Format aus. Muss in tts.formats vorhanden sein.
voice ist eine Stimme des Sprechers. Muss in tts.voice_profiles vorhanden sein. voice='Voice', sets=None Equal voice=None, sets={'voice_profile': 'Voice'} , voice mehr Priorität.
sets können als Diktat festgelegt, das Syntheseparameter wie in set_params enthält. Diese Parameter funktionieren nur für den aktuellen Satz. Standard None .
Wenn buff None or 0 gleich oder 0, für PCM- und WAV -Stücke zurückkehren, wie es ist (wahrscheinlich wenig schneller). Für andere verwendeten Standard -Chunk -Größe (4 KIB).
Wenn text -iterable Objekt, werden alle Fragmente nacheinander verarbeitet. Dies ist eine gute Methode zur Verarbeitung unglaublich großer Texte. Denken Sie daran, der Generator kann nicht auf einen anderen Prozess übertragen werden. Beispiel:
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 chunkÄndert die Einstellungen für Sprachsynthesizer:
tts . set_params ( ** kwargs ) Ermöglichen: voice_profile , absolute_rate , absolute_pitch , absolute_volume , relative_rate , relative_pitch , relative_volume , punctuation_mode , punctuation_list , capitals_mode , flags . Einzelheiten finden Sie unter RHVOICE -Dokumentation.
Rückgabe True , wenn sich ändert, sonst False .
Holen Sie sich die Einstellungen für Sprachsynthesizer:
tts . get_params ( param = None ) Wenn der Param None alle Einstellungen in dict zurückgibt, gibt es den Parameterwert des Parameters per Namen zurück. Wenn der Parameter nicht gefunden wird, gibt es None zurück.
Thread oder Prozesse verbinden. Verwenden Sie kein Objekt nach dem Join:
tts . join ()TTS.formats : Liste der unterstützten Formate, pcm und wav immer vorhanden.TTS.thread_count : Anzahl der Synthese -Threads.TTS.process : Wenn True , werden TTs im Multiprocessing -Modus ausgeführt.TTS.voices : Liste der unterstützten Stimmen.TTS.voice_profiles : Liste der unterstützten Sprachprofile.TTS.voices_info : Wörterbuch von unterstützten Stimmen mit Stimmeninformationen.TTS.api_version : unterstützte Rhvoice Library -Version.TTS.lib_version : RHVOICE -Bibliothek Version. Wenn nicht in rhvoice_wrapper.rhvoice_proxy.SUPPORT , kann eine falsche Arbeit in falscher Arbeit.TTS.cmd : Wörterbuch von externen Aufrufen, wie es ist.