在線語音合成
將文字信息轉化為聲音信息,給應用配上“嘴巴”。我們提供了眾多極具特色的發音人(音庫)供您選擇。其合成音在音色、自然度等方面的表現均接近甚至超過了人聲。這種語音合成體驗,達到了真正可商用的標准
訊飛的語音合成還是很牛P的,不但有基礎發音人,還有精品發音人、特色發音人、明星發音人,當然你如果有特殊要求還可以定制。
這里我們選擇基礎發音人做簡單的JavaWeb集成測試,因為其他選項還要申請,想想還是算了,等流程走通再說。
平台環境
JDK1.7、Tomcat8、Eclipse、訊飛JDK、win+ffmpeg(測試)、Linux+Docker+ffmpeg(生產)
說明:講真,Win平台下ffmpeg安裝使用還是很輕松的,直接下載壓縮包免安裝,JAVA直接調用執行命令即可。Linux下各種依賴編譯能把你的小機器跑死,並且還各種編譯錯誤,然后就果斷使用了Docker,唯一頭疼的是,這個環境真干凈,各種命令不支持,當然這也是Docker的優點。
流程圖
Web集成
訊飛為我們提供了簡單的SDK,科大訊飛MSC開發指南-Java。當然,前提你要有一個訊飛的賬號,注冊、創建應用什么的這里就不贅述了,只要最后能獲取到一個APP_ID就可以。
Win+ffmpeg(測試)
-
訊飛語音合成需要動態鏈接庫支持,根據自己的系統把msc64.dll或者msc32.dll放到指定的目錄,可以使用System.getProperty("java.library.path")查看,放置到任意目錄即可。
-
根據自己的系統下載對應的ffmpeg,解壓即可,直接調用bin目錄下的ffmpeg.exe即可。-
Linux+Docker+ffmpeg(生產)
獲取ffmpeg鏡像
docker pull jrottenberg/ffmpeg
創建並運行容器
docker run -it --name app_ffmpeg -p 8080:8080 -v /home/app_ffmpeg/:/mnt/app/ --entrypoint='bash' jrottenberg/ffmpeg
注意:Docker容器中,各種yum、wget以及vim是不存在的,所以大都數配置通過宿機獲取然后同步復制到容器中。
安裝配置JDK
甲骨文給弄的必須認證下載了,這里我們自行下載並手動上傳到/home/app_ffmpeg目錄下。
# 復制配置文件到宿機
docker cp 4f131c866092:/etc/profile /home/app_ffmpeg/
編輯profile,追加以下配置
#set java environment
JAVA_HOME=/mnt/app/jdk1.7.0_80
JRE_HOME=/mnt/app/jdk1.7.0_80/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
# 復制配置文件到容器
docker cp /home/app_ffmpeg/profile 4f131c866092:/etc/
進入容器,生效配置
# 進入容器
docker exec -it app_ffmpeg bash
# 使配置生效
source /etc/profile
# 檢查JDK是否安裝成功
java -version
安裝配置Tomcat
如果tomcat啟動卡主不動
找到jdk1.x.x_xx/jre/lib/security/java.security文件,在文件中找到securerandom.source這個設置項,將其改為:
securerandom.source=file:/dev/./urandom
如果tomcat輸出中文亂碼
locale
locale -a
LANG=C.UTF-8 (有的是zh_CN.UTF-8,不過我在本地沒發現這種編碼)
source /etc/profile
配置訊飛動態庫
根據自己的系統版本,分別把libmsc32.so 或者 libmsc64.so 上傳到/lib/ 和 /lib64/ 目錄。
開源項目
https://gitee.com/52itstyle/xufei_msc