通过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 :外部呼叫的字典。