2020.3.16更新
一年过去,讯飞居然改了python的使用代码,变复杂了一点,而且不能直出wav格式的音频,只有pcm的源文件;另外不需要设置白名单了。

下面的使用流程不变,官方提供的示例代码也可以直接出demo音频,在这里我修改了批处理代码,也就是在示例代码的最后一行添加几句

开始使用服务

我们首先打开科大讯飞在线语音合成的官网,记得首先右上角注册账号并登陆,界面如下图所示:
在这里插入图片描述
官方提供了很多接口,比如windows,linux等等,但我觉得最方便的是Web API接口,因为它提供了python支持,这对接下来的批量处理提供了便捷,在点击Web API接口抢鲜体验后,会进入控制台创建应用界面,如下图所示:
在这里插入图片描述
随便填完上述信息后,就创建好了,然后在应用里添加在线语音合成的服务,添加好后如下图所示:
在这里插入图片描述
上图中红框标处的位置是代码中需要用到的!

有能力的同学自己查看API官方文档,没有的话呢,就请继续往下看

1、首先是IP白名单,也就是在这里填入你自己的IP地址,不添加白名单,就无法使用服务。

2、APPID 和 APIKey 后面会说到

下载并修改代码

点击链接下载python_demo包

修改代码中红框标出的位置,用你自己的APPID 和 APIKey
在这里插入图片描述
而合成的文本内容默认是“内容”这两个字,你也可以随意修改
在这里插入图片描述
然后就大功告成了!

批量化处理

首先要自行安装ffmpeg,官方下载windows包,解压后添加路径到环境变量。

使用方法: 在py文件路径放text.txt文件,执行后就会出wav格式音频。

if __name__ == "__main__":
    # 测试时候在此处正确填写相关信息即可运行
    with open(r'text.txt', 'rt') as f:
        lines = (line.strip() for line in f)
        for line in lines:          
            wsParam = Ws_Param(APPID='5d###07', APIKey='86e445###############3da927',
                            APISecret='faba8################5502eda54f',
                            Text=line)
            websocket.enableTrace(False)
            wsUrl = wsParam.create_url()
            ws = websocket.WebSocketApp(wsUrl, on_message=on_message, on_error=on_error, on_close=on_close)
            ws.on_open = on_open
            ws.run_forever(sslopt={"cert_reqs": ssl.CERT_NONE})
            command = 'ffmpeg ' + '-y -f s16le -ar 16000 -i ' + 'demo.pcm ' + line + '.wav'
            os.system(command)
Logo

助力合肥开发者学习交流的技术社区,不定期举办线上线下活动,欢迎大家的加入

更多推荐