通過rhvoice庫從文本生成語音流,而無需重新定位引擎。這比致電Rhvoice測試更快,更方便。
支持的音頻格式: wav , mp3 , opus , flac和pcm (原始RHVOICE輸出)。
pip3 install rhvoice-wrapper
此軟件包無法提供rhvoice本身。您必須手動構建(或安裝)Rhvoice,語言和聲音。在Windows中,您必須指定工作路徑。
警告! rhvoice-wrapper-bin在MacOS中不工作,請手動安裝Rhvoice。
您可以安裝Rhvoice-wrapper-bin,而不是Rhvoice。這是Windows的最佳方法。如果安裝了rhvoice-wrapper-bin ,則將自動使用其庫和數據。
pip3 install rhvoice-wrapper[rhvoice]
首先創建TTS對象:
from rhvoice_wrapper import TTS
tts = TTS ( threads = 1 )您可以在創建或通過變量環境(上寄存器)時設置選項。選項覆蓋可變環境。為了設置默認值,請使用None :
1 ,則創建一個線程對象,如果更多以多處理模式運行並創建許多進程。默認1 。True發動機以多處理模式運行,則在線程模式下False 。默認為False如果threads == 1,則為True 。線程模式和線程> 1導致分割故障或可能返回損壞的數據libRHVoice.dylib libRHVoice.so Windows中的RHVoice.dll默認。/usr/local/share/RHVoice 。/usr/local/etc/RHVoice 。[] .lame的路徑,可選。必須出現mp3支持的la腳。默認lame 。opusenc的路徑,可選。文件必須存在以進行opus支持。默認opusenc 。flac的路徑,可選。文件必須存在以進行flac支持。默認flac 。True請勿信息輸出。默認False 。say將返回一個大塊,除了wav和pcm以外的其他格式,將產生得更慢。默認為True 。啟動合成生成器並獲取音頻數據,零件:
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 chunk或在一個大塊中獲取所有音頻數據:
data = tts . get ( 'Hello world!' , format_ = 'wav' )
print ( 'data size: ' , len ( data ), ' bytes' )
subprocess . check_output ([ 'aplay' , '-q' ], input = data )或只是保存到文件:
tts . to_file ( filename = 'esperanto.ogg' , text = 'Saluton mondo' , voice = 'spomenka' , format_ = 'opus' , sets = None ) format_是輸出音頻格式。必須存在於tts.formats中。
voice是揚聲器的聲音。必須在tts.voice_profiles中存在。 voice='Voice', sets=None等voice=None, sets={'voice_profile': 'Voice'} , voice更優先。
sets可以作為dict設置為包含綜合參數,如set_param中。此參數僅適用於當前短語。默認None 。
如果buff等於None or 0 ,則對於PCM和WAV塊的返回(可能更快)。對於其他人使用默認的塊尺寸(4 KIB)。
如果text具有峰值對象,則其所有片段將連續處理。這是處理令人難以置信的大文本的好方法。請記住,生成器不能轉移到另一個過程。例子:
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更改語音合成器設置:
tts . set_params ( ** kwargs )允許: voice_profile , absolute_rate , absolute_pitch , absolute_volume , relative_rate , relative_pitch , relative_volume , punctuation_mode , punctuation_list , capitals_mode , flags 。有關詳細信息,請參見Rhvoice文檔。
如果更改,則返回True ,否則False 。
獲取語音合成器設置:
tts . get_params ( param = None )如果None返回dict中的所有設置,則按名稱返回參數值。如果找不到參數,則返回None 。
加入線程或過程。加入後不要使用對象:
tts . join ()TTS.formats :始終存在支持格式, pcm和wav的列表。TTS.thread_count :合成線程的數量。TTS.process :如果為True ,則以多處理模式運行的tts。TTS.voices :支持的聲音列表。TTS.voice_profiles :支持的語音配置文件列表。TTS.voices_info :帶有聲音信息的支持的聲音字典。TTS.api_version :支持的RHVOICE庫版本。TTS.lib_version :RHVOICE庫版本。如果不是在rhvoice_wrapper.rhvoice_proxy.SUPPORT中,則可能不正確的工作。TTS.cmd :外部呼叫的字典。