最近在做專案中有乙個需求就是要將語音轉化為文字,所以就選擇使用了訊飛語音,教程雖然看起開來簡單,可是裡面的坑還是有的,搞了半天才算完工。
接下來開始寫**:
(1)初始化語音引擎:
(2)設定引數:
speechrecognizer miat = speechrecognizer.createrecognizer(this, null);
miat.setparameter(speechconstant.domain, "iat");
miat.setparameter(speechconstant.language, "zh_ch");//中文
miat.setparameter(speechconstant.accent, "mandarin");//普通話
(3)開始語音:
miat.startlistening(mlistener);
這裡需要傳入乙個監聽,**為:private recognizerlistener mlistener = new recognizerlistener()
//語音音量 :i:音量
@override
public void onvolumechanged(int i, byte bytes)
//開始
@override
public void onbeginofspeech()
//結束
@override
public void onendofspeech()
//會話發生錯誤
@override
public void onerror(speecherror speecherror)
//留給擴充套件用的
@override
public void onevent(int i, int i1, int i2, bundle bundle)
};
每個方法的作用都對應有注釋。
我們還可以使用它提供給我們的語音互動彈窗動畫,初始化步驟跟前面一樣:
//ui互動動畫
recognizerdialog iatdialog=new recognizerdialog(this,initlistner);
iatdialog.setparameter(speechconstant.domain, "iat");
iatdialog.setparameter(speechconstant.language, "zh_ch");
iatdialog.setparameter(speechconstant.accent, "mandarin");
iatdialog.setlistener(dialoglistner);
iatdialog.show();
其中recognizerdialog傳入的第二個引數是初始化監聽,可以不用在實現做任何操作為:initlistener initlistner=new initlistener()
};
dialoglistener是互動的監聽:
recognizerdialoglistener dialoglistner=new recognizerdialoglistener()
@override
public void onerror(speecherror speecherror)
};
關於語音轉文字獲得的資料視為json格式的,所以可以根據它返回的資料模型進行相應的封裝和解析。
我的解析是這樣的:
先將封裝成乙個物件
/**
* 語音資訊
* created by administrator on 2017/5/25.
*/public class voicedata ]},]},]}]
*/private listws;
public listgetws()
public void setws(listws)
public static class wsbean ]
*/private listcw;
@override
public string tostring() ';
}public listgetcw()
public void setcw(listcw)
public static class cwbean
public void setw(string w)
@override
public string tostring() ';}}
}@override
public string tostring() ';
}}
然後用gson將資料轉成該物件:public static string getword(string result)
}return sb.tostring();
}
附上使用時各個錯誤的
編碼表
訊飛語音轉寫
邏輯 語音上傳 prepare 訊飛 返回乙個task id 音訊分片上傳 upload 訊飛,呼叫多次,直到檔案全部上傳完成 合併音訊merge 訊飛 每三分鐘呼叫getprogress 訊飛 得到結果getresult 訊飛 訊飛官方文件 介面呼叫流程 安裝外掛程式 js md5 和 crypt...
訊飛語音合成 簡單使用
最近用到了,訊飛語音,所以簡單給大家介紹一下怎麼加入語音朗讀 step 1 step 2 按照文件匯入sdk,加入許可權 step 3 初始化sdk ok 下面按照demo 初始化合成物件 mtts speechsynthesizer.createsynthesizer this,mttsinitl...
訊飛語音 文字轉換語音
1.首先在訊飛開放平台註冊賬號 然後新增應用 把libs下的資源放入到你的工程的libs下面 手動新增到依賴庫add as library 你還需要把assets資料夾複製到main下面 在專案build.gradle檔案的android 內,配置下面一段 同步一下gradle檔案 sourcese...