用ibm的watson tts实现覆盆子pi的简单文本到语音接口

watson-text-talker的Python项目详细描述


沃森文本通话器

关于

我为一个运行在树莓pi 3b上的基于语音的机器人创建了这个界面,我正在使用aiy语音帽,但是我对谷歌提供的机器人语音非常不满意。在研究了其他一些语音选项后,我决定使用IBM的Watson,因为它具有高质量的韵律和语调。为了达到我的目的,我添加了一些特性,并决定其他特性可能会在我的努力中找到一些好处。该软件包应适用于其他可连接互联网和声音输出的设备。

安装

pip3 install watson-text-talker --user

获取IBM credentials对于watson文本到语音,lite计划是free

简单使用

fromwatson_text_talkerimport*text_talker=TextTalker(username='your-watson-tts-credentials-username',password='your-watson-tts-credentials-password')text_talker.say("Hello world!")

功能

  • 语音文件缓存
    • 降低云层往返次数
    • 降低成本

  • 短语分组

    • 分段短语/句子
    • 每个细分市场都有自己的重要因素
  • 重要因素
    • 一个短语被发声的可选百分比

  • 安静水平

    • 可选的静音水平因子可应用于所有可选短语
    • 增加或减少可选短语被发声的可能性
  • 使用高质量的waston语音
    • 非常逼真的声音,有适当的节奏和语调
    • 语音选择:see here for selection available
    • 免费等级计划:无需信用卡,每月10000个字符,无需支付任何费用

语音文件缓存

总是将新短语缓存到文件中。缓存目录默认为./voice_mp3s,但也可以在TT-config中定义。为了调整文件名,我把这个短语删掉了。这样做的好处是可以让人读懂。唯一需要注意的是这个短语必须限制在255个字符以内。

短语分组

短语分组基于元组数组。

fromwatson_text_talkerimport*text_talker=TextTalker(username='credentials-username',password='credentials-password')importance=TT_Importance()grouping_example=[(importance.SAY_30_PERCENT,"I'm your assistant."),(importance.SAY_50_PERCENT,"How are you?"),(importance.SAY_ALWAYS,"Nice to meet you")]text_talker.say_group(grouping_example)

元组由文本短语的重要性组成。

重要因素

# TT_Importance is a class of numeric constantsSAY_ALWAYS=1SAY_90_PERCENT=2SAY_80_PERCENT=3SAY_70_PERCENT=4SAY_60_PERCENT=5SAY_50_PERCENT=6SAY_40_PERCENT=7SAY_30_PERCENT=8SAY_20_PERCENT=9SAY_10_PERCENT=10SAY_NEVER=11

如上所述,我们可以简单地说:

fromwatson_text_talkerimport*text_talker=TextTalker(username='credentials-username',password='credentials-password')grouping_example=[(8,"I'm your assistant."),(6,"How are you?"),(1,"Nice to meet you")]text_talker.say_group(grouping_example)

安静水平

该包包括一个全局应用的quite level,它增加或减少了可选短语被发声的可能性。

fromwatson_text_talkerimport*text_talker=TextTalker(username='credentials-username',password='credentials-password')importance=TT_Importance()grouping_example=[(importance.SAY_30_PERCENT,"I'm your assistant."),(importance.SAY_ALWAYS,"Nice to meet you")]text_talker.quiet_level=+2text_talker.say_group(grouping_example)

在上面的例子中,I'm your assistant短语只会说10%的时间,因为+2指定为安静级别。不影响Nice to meet you

配置

使用tt_config类覆盖配置默认值

# TT_Config's standard defaultsUSERNAME='--watson tts credentials username goes here--'PASSWORD='--watson tts credentials password goes here--'TTS_VOICE='en-US_AllisonVoice'TTS_ACCEPT='audio/mp3'CACHE_DIRECTORY='voice_mp3s'CACHE_DIRECTORY_IS_RELATIVE=TrueVOICE_FILE_EXTENSION='mp3'

像这样使用:

fromwatson_text_talkerimport*config=TT_Config()config.CREDENTIALS_USERNAME='your watson credentials'config.CREDENTIALS_PASSWORD='your watson password'config.TTS_Voice='en-US_MichaelVoice'congig.CACHE_DIRECTORY='custom_cache'text_talker=TextTalker(config=config)text_talker.say("Hello world!")

归属

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

推荐PyPI第三方库


热门话题
java Google Oauth2刷新\u令牌为空   使用Spring REST分页在MongoDB中查询ObjectId的java日期范围   java JasperReportBuilder HTML行高   java在kstreams应用程序中使用自定义Kafka状态存储   java repaint()方法未重新绘制JPanel   在SBT/Play框架上运行Kotlin代码的java?   java instanceof vs多态性为什么instanceof更快?   来自滑块的java JButton背景色   java更改GridBagLayout中组件添加到框架后的约束   使用Java的firefox对象间谍   java如何在eclipse中“安装”Simple?   java将画布保存为jpg   来自jelastic的java导出应用程序   java从文本文件中读取内容并将其存储到数组中   java如何使用poi从ms word(.doc)中读取格式化文本作为html文本?   java突然无法解析的依赖项echotraceplay echosigarlibs   输出服务器问题[客户端服务器JAVA]   java除了ADFm还有其他JSR227实现吗?