一、文檔概述
本文檔是開發科大訊飛Windows語音程序的用戶指南,提供工程創建、配置、編譯、運行等相關信息的說明。其適用的讀者爲使用語音SDK進行開發的產品設計師、軟件工程師,通過閱讀本文檔,讀者可以掌握如何集成和使用語音庫文件。
二、新建項目
1)打開Microsoft Visual Studio 2010,選擇文件->新建->新建項目。
2)選擇Visual C++ ->Win32->Win32控制檯應用程序,輸入項目名稱,然後點擊確定鍵。
3)點擊下一步。
4)附加選項選擇“空項目”,應用程序類型選擇“控制檯應用程序”,然後點擊完成。
5)鼠標右鍵點擊“源文件”,點擊添加->新建項。
6)選擇“代碼”,輸入後綴名爲.c的名稱,例如“main.c”,點擊添加。
7)代碼請參考SDK/Windows_SDK/samples下的語音示例。
8)將科大訊飛語音SDK中bin,include,libs文件複製到Demo文件夾下。
三、導入頭文件
1)鼠標右鍵點擊Demo項目,選擇屬性。
2)點擊C/C++->常規->附加包含目錄,輸入相對於工程文件Demo.vcxproj的相對路徑,即相對於$(ProjectDir)的路徑。
四、加載msc.dll
1)加載msc.lib文件:在main.c文件中輸入如下圖所示代碼。(注意:加載路徑輸入相對於工程文件的相對路徑)
2)將msc.dll所在目錄設置爲工作目錄,即“$(ProjectDir)..\bin\”。
五、打印日誌
運行程序後,bin/msc文件夾下會生成日誌。(注意:msc文件夾下需有msc.cfg文件)
六、運行可執行文件
1)通過屬性設置,將可執行文件copy到bin目錄下運行,否則會報如圖16錯誤。
2)點擊“命令行”後邊的下拉框,選擇“編輯”。
3)輸入“copy $(TargetPath) $(ProjectDir)..\bin\”。
七、常見問題
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來獲取結果。