好玩的github專案-科大訊飛語音linux線上語音合成後臺服務

wwdyy發表於2016-11-01

轉自github使用者imroc

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

Github地址:https://github.com/imroc/ontts

相關文章