訊飛語音的使用(android studio)

2021-08-01 15:57:07 字數 2619 閱讀 7592

最近在做專案中有乙個需求就是要將語音轉化為文字,所以就選擇使用了訊飛語音,教程雖然看起開來簡單,可是裡面的坑還是有的,搞了半天才算完工。

接下來開始寫**:

(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...