在做語音機器人中,文本了解和語音了解一樣重要,而且可以互換。我前期用的是語音了解,感覺效果不是太好後面改成語音聽寫+文本了解。不過不管哪種了解前幾部分都是一樣的。
在你的工程應用裡面由我的應用中進入
進入已開通的開放語音部分:
進入建立我的語義
建立我的語義抽取
勾取你所涉及的場景,友善背景語義分詞。
接下來送出下載下傳對應sdk,(說明如若不夠去某一場景可能會出現了解效果不好甚至會出現沒有傳回詞,當然如果場景裡面沒有你需要的可以自行設定問答庫在下一章會介紹)
将下載下傳的sdk中的.so問價放置在libs下面(以你為我的工程放在git庫中切沒有push是以工程顯示有“?”這個不影響使用)
其餘設定可以參考訊飛語音開發的其他章節,在次不再贅述(如語音和成http://blog.csdn.net/sz0268/article/details/51695426)
關鍵代碼:訊飛sdk'初始化
mTextUnderstander = TextUnderstander.createTextUnderstander(MainActivity.this, null);
文本了解初始化(其中類庫加載的時候會出現com.iflytek.cloud.TextUnderstanderListener;和com.iflytek.speech.TextUnderstanderListener;兩個包供選擇,我選擇的是前者)
mTextUnderstander = TextUnderstander.createTextUnderstander(MainActivity.this, null);
開始文本了解:
private void understanderText(String text){
mTextUnderstander.understandText(text, mTextUnderstanderListener);
}
文本了解監聽器;
private TextUnderstanderListener mTextUnderstanderListener = new TextUnderstanderListener(){
@Override
public void onError(SpeechError arg0) {
// TODO Auto-generated method stub
}
@Override
public void onResult(UnderstanderResult result) {
String word = JsonParser.parseUnderstandResult(
result.getResultString().toString());
tv_understander.append(word);
}};
到此,語義了解完成。代碼我會把下載下傳位址貼在評論中,可以到我百度文庫中下載下傳,需要說明的是appid的裝機容量有限,是以我我把string.xml中的appid号隐藏了,測試的時候把你自己的appid号替換上去就行了