訊飛語音JavaWeb語音合成解決方案

訊飛語音JavaWeb語音合成解決方案

在線語音合成

將文字信息轉化爲聲音信息,給應用配上“嘴巴”。我們提供了衆多極具特色的發音人(音庫)供您選擇。其合成音在音色、自然度等方面的表現均接近甚至超過了人聲。這種語音合成體驗,達到了真正可商用的標準

訊飛的語音合成還是很牛P的,不但有基礎發音人,還有精品發音人、特色發音人、明星發音人,當然你如果有特殊要求還可以定製。

這裏我們選擇基礎發音人做簡單的JavaWeb集成測試,因爲其他選項還要申請,想想還是算了,等流程走通再說。

平臺環境

JDK1.7、Tomcat8、Eclipse、訊飛JDK、win+ffmpeg(測試)、Linux+Docker+ffmpeg(生產)

說明:講真,Win平臺下ffmpeg安裝使用還是很輕鬆的,直接下載壓縮包免安裝,JAVA直接調用執行命令即可。Linux下各種依賴編譯能把你的小機器跑死,並且還各種編譯錯誤,然後就果斷使用了Docker,唯一頭疼的是,這個環境真乾淨,各種命令不支持,當然這也是Docker的優點。

流程圖

訊飛語音合成.png

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

演示地址

http://xunfei.52itstyle.com/xufei_msc/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章