rhvoice库的高级接口

rhvoice-wrapper的Python项目详细描述


rhvoice库的高级接口

APIPyPI versionPython versionsPyPI - FormatBuild StatusBuild status

从文本生成语音流而不重新初始化引擎。 这比呼叫rhvoice测试速度快,也更方便。

支持的音频格式:wavmp3opusflacpcm(原始RhVoice输出)。

安装

pip3 install rhvoice-wrapper

此包提供RHvoice。必须手动生成(或安装)rhvoice、语言和语音。在windows中,必须指定工作路径。

rhvoice包装箱

警告rhvoice-wrapper-binmacos中不工作,请手动安装rhvoice。

您可以安装rhvoice-wrapper-bin,而不是rhvoice。这是窗户最好的方法。 如果rhvoice-wrapper-bin已安装,则其库和数据将自动使用。

pip3 install rhvoice-wrapper-bin

文档

首先创建tts对象:

fromrhvoice_wrapperimportTTStts=TTS(threads=1)

您可以在创建或通过变量环境(上部寄存器)时设置选项。选项覆盖可变环境。要设置默认值,请使用None

  • 线程线程。如果等于1,则创建一个线程对象,如果更多线程在多处理模式下运行,则创建许多进程。默认值1
  • force_processprocesses_mode:如果True引擎在多处理模式下运行,如果False在线程模式下运行。 默认值False如果threads==1,则为Truethreads mode and threads>;1导致分段错误或可能返回损坏的数据
  • lib路径rhvoice lib path:rhvoice库的路径。Linux中的默认值为libRHVoice.so,MacOS中的默认值为libRHVoice.dylib,Windows中的默认值为RHVoice.dll
  • data路径rhvoicedatapath:文件夹的路径,包含声音和语言文件夹。默认值/usr/local/share/RHVoice
  • resourcesrhvoiceresources:指向语言和语音数据的路径列表。当无法在一个地方收集所有数据时,应使用它。默认值[]
  • lame路径lame path:指向lame的路径,可选。lame必须存在才能获得mp3支持。默认值lame
  • opus_pathopusencpath:指向opusenc的路径,可选。文件必须存在才能获得opus支持。默认值opusenc
  • flac_pathflacpath:指向flac的路径,可选。文件必须存在才能获得flac支持。默认值flac
  • quietquiet:如果True不输出信息。默认值False

使用量

启动合成生成器并获取音频数据,逐块:

defgenerator_audio(text,voice='anna',format_='wav',buff=4096,sets=None):withtts.say(text,voice,format_,buff,sets)asgen:forchunkingen:yieldchunk

或者保存到文件:

tts.to_file(filename='esperanto.ogg',text='Saluton mondo',voice='spomenka',format_='opus',sets=None)

sets可以设置为包含合成参数的dict,如set_params。 此参数仅适用于当前短语。默认值None

如果buff等于None or 0,则对于pcm和wav块返回原样(可能稍快)。 对于其他使用默认块大小(4 kib)。

文本作为iterable对象

如果textiterable对象,则其所有片段都将依次处理。 这是处理超大文本的好方法。 记住,生成器不能转移到另一个进程。示例:

def_text():withopen('wery_large_book.txt')asfp:text=fp.read(5000)whiletext:yieldtexttext=fp.read(5000)defgenerator_audio():withtts.say(_text())asgen:forchunkingen:yieldchunk

其他方法

设置参数

更改语音合成器设置:

tts.set_params(**kwargs)

允许:absolute_rate, relative_rate, absolute_pitch, relative_pitch, absolute_volume, relative_volume, punctuation_mode, capitals_mode。有关详细信息,请参阅rhvoice文档。

如果更改,则返回True,否则返回False

获取参数

获取语音合成器设置:

tts.get_params(param=None)

如果param是None,则返回dict中的所有设置,否则按名称列出的参数值为numeric。如果未找到参数,则返回None

连接

连接线程或进程。加入后不要使用对象:

tts.join()

属性

  • TTS.formats:支持的格式列表,pcmwav始终存在。
  • TTS.thread_count:合成线程数。
  • TTS.process:如果True,则tts以多处理模式运行。
  • TTS.voices:支持的声音列表。
  • TTS.voices_info:支持语音信息的语音词典。
  • TTS.api_version:支持的rhvoice库版本。如果与lib_version不同,则可能不正确的工作。
  • TTS.lib_version:rhvoice库版本。
  • TTS.cmd:外部调用字典。

示例

要求

  • 操作系统:Linux、Windows、MacOS
  • rhvoice库,语言和语音
  • Python3.4+

链接

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
二进制字符串的java NumberFormatExceprion   java如何在Neo4j中查找/匹配/选择标识符名称   java哪一年的日期与原始年份相同?   java什么时候JAXB可以用于Json而不是XML?   java使用PayPal权限API进行PayPal支付   java Getting error在使用安卓 vision api扫描二维码时加载图像失败   java直接突出显示RichTextFX中的一个文本范围   java Resolve@RegisteredAuth2AuthorizedClient,其令牌在spring Security 5.2的spring server之外获得。十、   yyyymmddhhmmss的Java正则表达式   java我试图将google recaptcha与spring mvc集成,但GreCaptCharResponse总是返回false。这里有一些代码   java使用JsonPath将文本转换为json   java无法解析符号。Maven依赖项已就位,但代码为红色   java使用循环查找范围内具有不同数字的数字   java这个SwingWorker是否不重用ThreadPoolExecutor中的线程?