/ontts

科大讯飞语音linux在线语音合成后台服务

Primary LanguageGo

ontts

ontts 是go写的语音合成服务(文本转语音),原理是cgo调用的科大讯飞的在线语音合成linux SDK(用go封装SDK)。支持单次合成与后台合成服务两种模式,后台合成服务是订阅redis中的数据(业务系统可将待合成文本发布到redis),一有数据立马合成并存储到磁盘

安装

go get github.com/imroc/ontts

运行

需要将libmsc.so加入环境变量

cp xf/lib/x64/libmsc.so /usr/local/lib/
vi ~/.bashrc

export LD_LIBRARY_PATH = /usr/local/lib

使用示例

单次合成:
./ontts -t "云喇叭快递,快递小管家,您的快递到了,请于下午6点前到学校后门申通快递取件" -o test.wav -lp "appid = 5808ae7e, work_dir = ."
启动合成后台服务:
./ontts -r ":6379" -d /tmp/out -lp "appid = 5808ae7e, work_dir = ."

redis数据

后台合成的服务是订阅的redis中"tts"的通道中的数据,redis发布数据示例:

redis-cli>publish tts "{\"id\":\"245671051\",\"txt\":\"这是一段测试语音\"}"

注:生成的语音文件名是id加".wav"后缀

命令参数

讯飞语音参数选项:
    -tp                  TTS合成参数[有默认值]
    -lp                  登录参数

单次合成模式选项:
    -t                 	待合成的文本
    -o                	音频输出路径 

合成服务模式选项:
    -d                     音频保存的目录 
    -s                   合成速度级别(1-10),数值越小速度越快,越耗CPU[默认为1]
    -r                    redis连接地址
    -rp                   redis密码

日志选项:
    -l                    日志输出路径[默认./ontts.log]
    -ll                  日志输出级别(debug,info,warn,error)

其他:
    -h                          查看帮助 

目录

── ontts
   ├── glide.yaml (glide依赖配置)
   ├── main.go (程序入口)
   ├── README.md
   ├── server (TTS合成主体逻辑的package)
   │   └── server.go
   ├── speed_test.go (速度测试)
   └── xf (讯飞SDK的Go封装)
       ├── doc (讯飞语音linux SDK相关参考)
       ├── include (cgo需要用到的头文件)
       ├── lib (动态链接库 SDK)
       ├── README.md
       └── xf.go