-
Linux 下使用科大訊飛語音合成的功能
首先我們需要先到科大訊飛注冊并在控制臺中選擇創(chuàng)建響應的應用,我們開通語音合成并選擇相應的SDK進行下載屈雄。下載之后可以得到一個Zip包稳吮,解壓后可以看到有這些內(nèi)容。
查看README文件可以看到對應的目錄結構介紹颖变,我們需要用到的是sample目錄下的在線語音合成功能。(tts_online_sample,在線語音測試用例)
進入到tts_online_sample
目錄下听想,里面是編譯的相關文件腥刹,根據(jù)你的系統(tǒng),選擇對應的操作文件執(zhí)行編譯汉买,如果是64位的衔峰,則執(zhí)行source 64bit_make.sh
,如果你是32位蛙粘,則執(zhí)行source 32bit_make.sh
垫卤,然后在 bin 目錄下會生成一個tts_online_sample 的可執(zhí)行文件,直接執(zhí)行該文件出牧,在當前目錄下會生成一個 tts_sample.wav 的文件穴肘。測試用例完成。接下來我們要把它修改成在執(zhí)行時直接接受參數(shù)的可執(zhí)行文件舔痕。 操作步驟:
先將
tts_sample_online
文件刪除選擇
libs
目錄與你使用的系統(tǒng)相對應的動態(tài)庫评抚,將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
中的接受參數(shù)部分侍匙。即將以下部分:
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 = "親愛的用戶,您好叮雳,這是一個語音合成示例想暗,感謝您對科大訊飛語音技術的支持妇汗!科大訊飛是亞太地區(qū)最大的語音上市公司,股票代碼:002230"; //合成文本
修改為:
const char* session_begin_params = argv[1]; //參數(shù)設置
const char* filename = argv[2]; //合成的語音文件名稱
const char* text = argv[3]; //合成文本
- 然后再次執(zhí)行編譯操作
source 64bit_make.sh
或source 32bit_make.sh
说莫,在bin目錄下會再次生成一個可執(zhí)行文件铛纬。 - 測試語音合成可執(zhí)行文件是否正常,進入bin目錄下唬滑,執(zhí)行
./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
等函數(shù)來實現(xiàn)調用科大訊飛語音合成功能擒悬。
傳送門: