-
Linux 下使用科大讯飞语音合成的功能
首先我们需要先到科大讯飞注册并在控制台中选择创建响应的应用,我们开通语音合成并选择相应的SDK进行下载。下载之后可以得到一个Zip包,解压后可以看到有这些内容。
查看README文件可以看到对应的目录结构介绍,我们需要用到的是sample目录下的在线语音合成功能。(tts_online_sample,在线语音测试用例)
进入到tts_online_sample
目录下,里面是编译的相关文件,根据你的系统,选择对应的操作文件执行编译,如果是64位的,则执行source 64bit_make.sh
,如果你是32位,则执行source 32bit_make.sh
,然后在 bin 目录下会生成一个tts_online_sample 的可执行文件,直接执行该文件,在当前目录下会生成一个 tts_sample.wav 的文件。测试用例完成。接下来我们要把它修改成在执行时直接接受参数的可执行文件。 操作步骤:
先将
tts_sample_online
文件删除选择
libs
目录与你使用的系统相对应的动态库,将libmsc.so
放到/usr/lib
目录下,并给予其他用户可读写的权限。进入到
tts_online_sample
目录下,1)修改对应的bit_make.sh
中export LD_LIBRARY_PATH=$(pwd)/../../libs/x64/
为export LD_LIBRARY_PATH=/usr/lib/
,2)修改MakeFile中DIR_LIB = ../../libs
为DIR_LIB = /usr/lib
,3)修改tts_sample_online.c
中的接受参数部分。即将以下部分:
const char* session_begin_params = "voice_name = xiaoyan, text_encoding = utf8, sample_rate = 16000, speed = 50, volume = 50, pitch = 50, rdn = 2";
const char* filename = "tts_sample.wav"; //合成的语音文件名称
const char* text = "亲爱的用户,您好,这是一个语音合成示例,感谢您对科大讯飞语音技术的支持!科大讯飞是亚太地区最大的语音上市公司,股票代码:002230"; //合成文本
修改为:
const char* session_begin_params = argv[1]; //参数设置
const char* filename = argv[2]; //合成的语音文件名称
const char* text = argv[3]; //合成文本
- 然后再次执行编译操作
source 64bit_make.sh
或source 32bit_make.sh
,在bin目录下会再次生成一个可执行文件。 - 测试语音合成可执行文件是否正常,进入bin目录下,执行
./tts_online_sample "voice_name = xiaoyan, text_encoding = utf8, sample_rate = 16000, speed = 50, volume = 50, pitch = 50, rdn = 2" 'mytest.wav' ' 晚上好呀!'
,正常播放mytest.wav,编译成功。
php 可以通过使用system
等函数来实现调用科大讯飞语音合成功能。
传送门: