使用語音SDK開發:如何集成和使用語音庫文件?

一、文檔概述


本文檔是開發科大訊飛Windows語音程序的用戶指南,提供工程創建、配置、編譯、運行等相關信息的說明。其適用的讀者爲使用語音SDK進行開發的產品設計師、軟件工程師,通過閱讀本文檔,讀者可以掌握如何集成和使用語音庫文件。


二、新建項目


1)打開Microsoft Visual Studio 2010,選擇文件->新建->新建項目。

wKiom1bqJ63AjqyiAABxcMaZSWc220.png

2)選擇Visual C++ ->Win32->Win32控制檯應用程序,輸入項目名稱,然後點擊確定鍵。

wKioL1bqKE-T36F8AADSZbGJfhM896.png


3)點擊下一步。

wKioL1bqKE-yUjnwAABhrgdmR4s203.png

4)附加選項選擇“空項目”,應用程序類型選擇“控制檯應用程序”,然後點擊完成。

wKiom1bqJ8GBdTSJAABpQrBwr9E125.png

wKiom1bqJ8LCbsYwAACiiOc0SlY997.png

5)鼠標右鍵點擊“源文件”,點擊添加->新建項。

wKioL1bqKFGhuYG2AADJ9bGIliU102.png

6)選擇“代碼”,輸入後綴名爲.c的名稱,例如“main.c”,點擊添加。

wKiom1bqJ8OCIZvlAACvGfukZXo223.png

7)代碼請參考SDK/Windows_SDK/samples下的語音示例。

wKioL1bqKFKSe2rXAAAmNcU67bQ110.png

8)將科大訊飛語音SDK中bin,include,libs文件複製到Demo文件夾下。

wKioL1bqKFLzsxZXAAA49GxdiKM042.png


三、導入頭文件


1)鼠標右鍵點擊Demo項目,選擇屬性。

wKioL1bqKFPAq2rUAAD2nMhHLAw485.png

2)點擊C/C++->常規->附加包含目錄,輸入相對於工程文件Demo.vcxproj的相對路徑,即相對於$(ProjectDir)的路徑。

wKioL1bqKFOSK0PcAAAoVHBwE5w455.png

wKiom1bqJ8WzZuz0AABdaammyEk027.png


四、加載msc.dll


1)加載msc.lib文件:在main.c文件中輸入如下圖所示代碼。(注意:加載路徑輸入相對於工程文件的相對路徑)

wKioL1bqKFThPA1oAAAjqh3BHuw217.png

2)將msc.dll所在目錄設置爲工作目錄,即“$(ProjectDir)..\bin\”。

wKiom1bqJ8bxyONVAACBKx9MV7Y719.png


五、打印日誌


運行程序後,bin/msc文件夾下會生成日誌。(注意:msc文件夾下需有msc.cfg文件)

 

wKiom1bqJ8bD9b4JAAA135pKpCo078.png


六、運行可執行文件


1)通過屬性設置,將可執行文件copy到bin目錄下運行,否則會報如圖16錯誤。 

wKioL1bqKFWDT-17AABBK0i77Cc504.png

wKiom1bqJ8fTJIfWAABOT50xbF0331.png

2)點擊“命令行”後邊的下拉框,選擇“編輯”。

wKioL1bqKFWDwcS3AAA_YOZ7X8M433.png

3)輸入“copy $(TargetPath) $(ProjectDir)..\bin\”。

wKioL1bqKFXSFlToAAA-1Vroxzg909.png


七、常見問題

1)如何聯繫我們獲得技術支持?

答:科大訊飛提供以下方式的技術支持:

a.自助查詢——請登陸官網:http://www.xfyun.cn/

語音合成:http://www.xfyun.cn/doccenter/tts

語音識別:http://www.xfyun.cn/doccenter/asr

新手指南:http://www.xfyun.cn/doccenter/newer

常見解答:http://www.xfyun.cn/default/doccenter/doccenterInner?itemTitle=ZmFx


b.電話支持——請於週一~週五,北京時間9:00~17:00間,撥打電話: 0551-65309063獲得技術支持信息。

c.電子郵件支持——請將問題的詳細描述發至:[email protected]

d.在線支持——請登錄我們的論壇:http://bbs.xfyun.cn/forum.php


聯繫時對問題的描述請儘量包含以下內容:

1.系統配置(包括CPU、內存、硬盤、操作系統及產品版本等信息)

2.問題細節(包括問題的重現過程及合成的文本內容、識別音頻等)

3.問題重現(包括詳細的操作過程和運行日誌等)


2)拿到了合成音頻但不知道如何來播放?

答:合成拿到的音頻是沒有音頻頭的,音頻頭中含有音頻格式、採樣率、音頻長度等播放音頻所需信息。拿到合成音頻後,用戶可以添加音頻頭,可參考例子tts_sample中的代碼,然後使用常規播放器來播放;也可以使用Cool Edit等軟件手動選擇音頻參數來播放。


3) 如何進行大文本的合成?

答:語音雲一次語音合成允許的合成文本大小不超過8192個字節,所以對於長度超過此值的大合成文本,用戶可以採用“分段合成”的方式,即先將大文本按照標點符號如句號進行切分,然後對每一段文本分別進行合成。進行分段合成時,用戶既可以在一路會話中循環使用QTTSTextPut+QTTSAudioGet組合完成合成,也可以爲每一段文本使用一路獨立的會話完成合成。


4) 獲取不到識別/聽寫結果。

答:原因可能是:

a.QISRSessionBegin的參數設置不正確,如沒有設置好正確的引擎類型等。      

b.音頻格式不對,客戶端支持的音頻編解碼算法只支持16位Intel PCM格式的音頻。


5)能獲取到語音聽寫結果但是不全。

答:此問題主要是在調用QISRAudioWrite時沒有正確設置參數audioStatus所致,此參數在寫入非最後一個音頻數據塊時需要設置爲2,寫入最後一個數據塊時需要設置爲4,以告訴MSC音頻寫入完畢。如果只有一個音頻數據塊,audioStatus也需要設置爲4。


6) 可以拿到識別或轉寫結果但是響應很慢。

答:此問題可以嘗試如下方法來解決:

a.調用QISRAudioWrite接口寫音頻數據時,儘量做到“勻速發送”——週期性的發送定長數據,做到邊錄邊發,避免一次發送數據量過大的音頻。

b.採用QISRAudioWrite接口和QISRGetResult接口混調的方式。在調用QISRAudioWrite接口時,可以檢查out型參數recogStatus,如果其值爲0,表明已經有(部分)識別結果緩存在MSC中了,此時可以調用QISRGetResult來獲取結果。


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