自2019/8/16起,高階工作-動態性調整兔費開放式!可到這里 動態修正效果 (opens new window) 在線體驗
使用方法詳見 動態修正
在聽寫時,可以上傳個性化的詞表,如聯系人列表等,提高列表中詞語的匹配率(詳情見個性化熱詞設置)。
語音聽寫詳細的接口介紹及說明請參考: MSC Android API 文檔 (opens new window)。
在集成過程中出現錯誤,請優先查詢SDK&API 錯誤碼查詢 (opens new window)。如有疑問,請提交進行咨詢,也可登錄與廣大開發者共同學習和交流。
小語種:
根據官網提示,直接下載SDK,SDK中包含簡易可運行的Demo。如下圖所示:
備注:Android sdk目前支持android4.4及以上系統,同時建議真機調試。
下載完SDK后,解壓至相應的路徑,以Android Studio集成開發工具為例,測試時建議直接用真機進行測試。
打開Android Studio,在菜單欄File--->new--->import project當前解壓sdk路徑,使用在線服務能力選擇導入SpeechDemo,如下圖所示:
導入成功之后sync編譯下,編譯無誤可連接手機,開啟手機USB開發調試模式,直接在Android Studio運行導入的Speechdemo,最后生成的apk可直接安裝在對應的手機上,如下圖所示:
如果編譯時出現“ERROR: Plugin with id 'com.android.application' not found.”錯誤,請在build.gradle文件中添加以下代碼。
buildscript {
repositories {
google()
jcenter()
}
dependencies {
//版本號信息號請按照其她的gradle3d插件版本號信息號擅自改變
classpath 'com.android.tools.build:gradle:3.4.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
如在導入項目中還出現其他問題,可參考帖子:
<!--連接網絡權限,用于執行网络赚钱平台端語音能力 -->
<uses-permission android:name="android.permission.INTERNET"/>
<!--獲取手機錄音機使用權限,聽寫、識別、語義理解需要用到此權限 -->
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<!--讀取網絡信息狀態 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!--獲取當前wifi狀態 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<!--允許程序改變網絡連接狀態 -->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<!--讀取手機信息權限 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<!--讀取聯系人權限,上傳聯系人需要用到此權限 -->
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<!--外存儲寫權限,構建語法需要用到此權限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--外存儲讀權限,構建語法需要用到此權限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<!--配置權限,用來記錄應用配置信息 -->
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<!--手機定位信息,用來為語義等功能提供定位,提供更精準的服務-->
<!--定位信息是敏感信息,可通過Setting.setLocationEnable(false)關閉定位請求 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!--如需使用人臉識別,還要添加:攝像頭權限,拍照需要用到 -->
<uses-permission android:name="android.permission.CAMERA" />
-keep class com.iflytek.**{*;}
-keepattributes Signature
// 將“12345678”轉換為您公司申請辦理的APPID,公司申請辦理詳細地址:http://teknisi-computer.com
// 溫馨提示在“=”與appid范圍內更改某些空標識符和轉義符
SpeechUtility.createUtility(context, SpeechConstant.APPID +"=12345678");
參數名稱 | 名稱 | 說明 |
---|---|---|
domain | 應用領域 | 應用領域 iat:日常用語 medical:醫療 注:醫療領域若未授權無法使用,可到控制臺-語音聽寫(流式版)-高級功能處添加試用或購買;若未授權無法使用會報錯11200。 |
language | 語言區域 | 選擇要使用的語言區域,目前Android SDK支持 zh_cn:中文 en_us:英文 ja_jp:日語 ko_kr:韓語 ru-ru:俄語 fr_fr:法語 es_es:西班牙語 注:小語種若未授權無法使用會報錯11200,可到控制臺-語音聽寫(流式版)-方言/語種處添加試用或購買。 |
accent | 方言 | 當前僅在LANGUAGE為簡體中文時,支持方言選擇,其他語言區域時,可把此參數值設為mandarin。默認值:mandarin,其他方言參數可在控制臺方言一欄查看。 |
vad_bos | 前端點檢測 | 開始錄入音頻后,音頻前面部分最長靜音時長,取值范圍[0,10000ms],默認值5000ms |
vad_eos | 后端點檢測 | 開始錄入音頻后,音頻后面部分最長靜音時長,取值范圍[0,10000ms],默認值1800ms。 |
sample_rate | 采樣率 | 支持:8KHz(僅在線支持),16KHz |
nbest | 句子多候選 | 通過設置此參數,獲取在發音相似時的句子多候選結果。設置多候選會影響性能,響應時間延遲200ms左右。取值范圍:聽寫[1,5]。 注:該擴展功能若未授權無法使用,可到控制臺-語音聽寫(流式版)-高級功能處免費開通;若未授權狀態下設置該參數并不會報錯,但不會生效。 |
wbest | 詞語多候選 | 通過設置此參數,獲取在發音相似時的詞語多候選結 果。設置多候選會影響性能,響應時間延遲200ms左右。取值范圍:聽寫[1,5]。 注:該擴展功能若未授權無法使用,可到控制臺-語音聽寫(流式版)-高級功能處免費開通;若未授權狀態下設置該參數并不會報錯,但不會生效。 |
result_type | 結果類型 | 結果類型包括:xml, json, plain。xml和json即對應的結構化文本結構,plain即自然語言的文本。 |
nunum | 數字結果 | 通過設置此參數可偏向輸出數字結果格式 0:傾向于漢字, 1:傾向于數字, 設置方式:mIat.setParameter("nunum", "0") |
ptt | 標點符號 | (僅中文支持)標點符號添加 1:開啟(默認值) 0:關閉 |
注: 多候選效果是由引擎決定的,并非絕對的。即使設置了多候選,如果引擎并沒有識別出候選的詞或句,返回結果也還是單個。
//剛開始化面部設別無UI面部設別物體
//用到SpeechRecognizer的對象,可只能根據調整發消息自定位表層;
mIat = SpeechRecognizer.createRecognizer(IatDemo.this, mInitListener);
//設立英語語法結構ID和 SUBJECT 為空,以避免因以前有英語語法結構資源調用而設立了此產品技術指標;或同時清洗所以產品技術指標,實際上可參考資料 DEMO 的實例。
mIat.setParameter( SpeechConstant.CLOUD_GRAMMAR, null );
mIat.setParameter( SpeechConstant.SUBJECT, null );
//設制獲取報告論文論文格式,現今使用json,xml甚至plain 幾種論文論文格式,在這其中plain為純聽寫備份文本方式
mIat.setParameter(SpeechConstant.RESULT_TYPE, "json");
//這兒engineType為“cloud”
mIat.setParameter( SpeechConstant.ENGINE_TYPE, engineType );
//設立視頻語音輸入言語,zh_cn為簡體英文版
mIat.setParameter(SpeechConstant.LANGUAGE, "zh_cn");
//制定的結果調用語言學
mIat.setParameter(SpeechConstant.ACCENT, "mandarin");
// 制定語音視頻web前端點:靜音超一直間,院校ms,即用戶的幾個小時時間不會說話溝通則說成超時處置
//取值時間范圍{1000~10000}
mIat.setParameter(SpeechConstant.VAD_BOS, "4000");
//設備微信語音后面點:后面點靜音測量精力,的單位ms,即使用者停下言語多久精力內即感覺就不再讀取,
//自己為止手機錄音,規模{0~10000}
mIat.setParameter(SpeechConstant.VAD_EOS, "1000");
//裝置標點點符號,裝置為"0"取到最終無標點,裝置為"1"取到最終有標點
mIat.setParameter(SpeechConstant.ASR_PTT,"1");
//開始自動識別,并設為監聽器器
mIat.startListening(mRecogListener);
// 默認值化聽寫Dialog,若只動用有UI聽寫技能,不要創立了SpeechRecognizer
// 運用UI聽寫用途,請會根據sdkzip文件夾導航下的notice.txt,置放平面布置zip文件夾和照片網絡資源
mIatDialog = new RecognizerDialog(IatDemo.this, mInitListener);
//以上為dialog設立聽寫技術參數
mIatDialog.setParams("xxx","xxx");
....
//開啟設別并軟件設置監聽器器
mIatDialog.setListener(mRecognizerDialogListener);
//顯視聽寫對活框
mIatDialog.show();
mAsr.setParameter( SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD );
// lexiconName 為英語英語詞典名子,lexiconContents 為英語英語詞典信息,lexiconListener 為調整記錄器
ret = mAsr.updateLexicon( lexiconName, lexiconContents, lexiconListener );
注:個性化熱詞僅支持中文,不支持數字和英文及其他小語種。
net_type=custom, proxy_ip=<host>, proxy_port=<port>
其中,<host>,<port>替換為實際的代理服務器地址和端口。
舉例子:SpeechUtility.createUtility(context, SpeechConstant.APPID + “=12345678” + “,” + “net_type=custom, proxy_ip=192.168.1.2, proxy_port=8080”); 特別注意:各基本參數間,以英文翻譯分號分縫。
端口伴演: public static SpeechUtility createUtility(Context context, java.lang.String params)
注意: 若在設置代理參數后,使用語音服務過程中,報錯10204/10205/10212等網絡異常錯誤時,請查閱以下內容,做出相關操作:
- 訊飛語音SDK的通信協議使用的是標準HTTP1.1協議,其代理協議使用的是標準HTTP代理協議。
- 代理服務器需要支持全雙工多問多答方式,即 pipeline 模式。
- 代理服務器不能對80端口做限制,不能對如下域名做攔截: hdns.openspeech.cn scs.openspeech.cn open.xf-yun.com dev.voicecloud.cn
- 需要確保代理服務器只負責轉發數據包,不能改變數據包的完整性和時序性。
- 代理服務器在轉發數據包時,不能在HTTP協議頭部添加 IE6 標識頭。
JSON字段 | 英文全稱 | 類型 | 說明 |
---|---|---|---|
sn | sentence | number | 第幾句 |
ls | last sentence | boolean | 是否最后一句 |
bg | begin | number | 保留字段,無需關注 |
ed | end | number | 保留字段,無需關注 |
ws | words | array | 詞 |
cw | chinese word | array | 中文分詞 |
w | word | string | 單字 |
sc | score | number | 分數 |
{
"sn": 1,
"ls": true,
"bg": 0,
"ed": 0,
"ws": [
{
"bg": 0,
"cw": [
{
"w": "昨天",
"sc": 0
}
]
},
{
"bg": 0,
"cw": [
{
"w": "的",
"sc": 0
}
]
},
{
"bg": 0,
"cw": [
{
"w": "的天氣",
"sc": 0
}
]
},
{
"bg": 0,
"cw": [
{
"w": "怎摸樣",
"sc": 0
}
]
},
{
"bg": 0,
"cw": [
{
"w": "。",
"sc": 0
}
]
}
]
}
{
"sn": 1,
"ls": false,
"bg": 0,
"ed": 0,
"ws": [
{
"bg": 0,
"cw": [
{
"w": "我想要聽",
"sc": 0
}
]
},
{
"bg": 0,
"cw": [
{
"w": "拉德斯基開展曲",
"sc": 0
},
{
"w": "拉得斯進行曲",
"sc": 0
}
]
}
]
}
若開通了動態修正功能并設置了dwa=wpgs(僅中文支持),會有如下字段返回:
參數 | 類型 | 描述 |
---|---|---|
pgs | string | 開啟wpgs會有此字段 取值為 "apd"時表示該片結果是追加到前面的最終結果;取值為"rpl" 時表示替換前面的部分結果,替換范圍為rg字段 |
rg | array | 替換范圍,開啟wpgs會有此字段 假設值為[2,5],則代表要替換的是第2次到第5次返回的結果 |
// 讀入信息步長返回了結果樣例二維碼
private void printResult(RecognizerResult results) {
String text = JsonParser.parseIatResult(results.getResultString());
String sn = null;
String pgs = null;
String rg = null;
// 調用json結果顯示中的sn字符
try {
JSONObject resultJson = new JSONObject(results.getResultString());
sn = resultJson.optString("sn");
pgs = resultJson.optString("pgs");
rg = resultJson.optString("rg");
} catch (JSONException e) {
e.printStackTrace();
}
//如pgs是rpl就在某個的可是中卸載掉要擴大的sn方面
if (pgs.equals("rpl")) {
String[] strings = rg.replace("[", "").replace("]", "").split(",");
int begin = Integer.parseInt(strings[0]);
int end = Integer.parseInt(strings[1]);
for (int i = begin; i <= end; i++) {
mIatResults.remove(i+"");
}
}
mIatResults.put(sn, text);
StringBuffer resultBuffer = new StringBuffer();
for (String key : mIatResults.keySet()) {
resultBuffer.append(mIatResults.get(key));
}
mResultText.setText(resultBuffer.toString());
mResultText.setSelection(mResultText.length());
}
{
"sn": 2,
"ls": false,
"bg": 0,
"ed": 0,
"pgs": "rpl",
"rg": [
1,
1
],
"ws": [
{
"bg": 0,
"cw": [
{
"sc": 0.00,
"w": "我"
}
]
},
{
"bg": 0,
"cw": [
{
"sc": 0.00,
"w": "的"
}
]
},
{
"bg": 0,
"cw": [
{
"sc": 0.00,
"w": "兩"
}
]
},
{
"bg": 0,
"cw": [
{
"sc": 0.00,
"w": "個"
}
]
},
{
"bg": 0,
"cw": [
{
"sc": 0.00,
"w": "手機短信"
}
]
}
]
}
{
"sn": 3,
"ls": false,
"bg": 0,
"ed": 0,
"pgs": "apd",
"ws": [
{
"bg": 0,
"cw": [
{
"sc": 0.00,
"w": ","
}
]
},
{
"bg": 0,
"cw": [
{
"sc": 0.00,
"w": "昨日"
}
]
},
{
"bg": 0,
"cw": [
{
"sc": 0.00,
"w": "中午"
}
]
}
]
}
答:Android游戲版本的SDK現今搭載4.4之上游戲版本的,React-Native ,QT 等跨機構預案,現今暫不搭載
答:請查要不要我忘了應用SpeechUtility初始狀態化。也能否在記錄器的onError變量中印刷差錯資料資料,結合資料系統提示,尋找差錯資料源。
答:Android軟件SDK都已經支持系統地方生成、地方強制性詞掌握、地方音頻喚起功能性了,加入使用后前去使用保持臺資源下載各服務項目sdk時需。
答:原因可能是:
1、音頻格式不正確,客戶端支持的音頻編解碼算法只支持16位Intel PCM格式的音頻,請使用Cool Edit Pro工具(網頁搜索下載即可)查看音頻格式,sdk目前支持的格式是 pcm 和 wav 格式、音頻采樣率要是 16k 或者 8k、采樣精度16 位、單聲道音頻。
2、引擎的參數設置不正確,如沒有設置好正確的引擎類型和采樣率等。
3、音頻中間有靜音或者雜音音頻超過了后端點(默認為1800ms)的設置,此時請使用Cool Edit Pro工具查看音頻內容,并且設置后端點(vad_eos)為最大值10000ms
包含超過后端點最大值的靜音或者雜音音頻識別不完整是正常的。
答:學習下回貼:http://bbs.teknisi-computer.com/forum.php?mod=viewthread&tid=9688
答:如要設制性能對:abc = 123,則應寫:mIat.setParameter("abc", "123"); 四種性能設制考生
答:在createUtility接口中添加:server_url = http://YourDomainName/msp.do (YourDomainName是指語音网络赚钱平台服務域名,請開發者自行替換) 例如:SpeechUtility.createUtility(context, SpeechConstant.APPID + "=12345678" + "," + "server_url = http://sdk.openspeech.cn/msp.do");
注意:各參數間,以英文逗號分隔。 接口原型: public static SpeechUtility createUtility(Context context, java.lang.String params)
答:sdk:顧客端防止計劃書,能夠Android、ios、windows、linux等機構,不能夠連接數; webapi:的服務端防止計劃書,不限止機構、不限止言語,能夠連接數。
答:語音聽寫的功能是可以識別60S以內的短音頻,將音頻轉化成文本信息。
聽寫sdk目前支持的格式是 pcm 和 wav 格式、音頻采樣率要是 16k 或者 8k、采樣精度16 位、單聲道音頻。請使用cool edit軟件(網頁搜索下載此軟件即可)查看音頻格式是否滿足相應的識別引擎類型,否則識別為空或者識別為錯誤文本,格式必須正確,除上述格式均不識別,音頻格式一定要滿足要求。現語音聽寫WebAPI接口的中文普通話和英文支持mp3格式,如有需要,請參考語音聽寫(流式版)WebAPI (opens new window)
具體可以參考:http://bbs.teknisi-computer.com/forum.php?mod=viewthread&tid=7051
另外我們識別的音頻長度最大為 60S,在使用音頻是要注意你的本地音頻的參數要和代碼里的讀取音頻參數保持一致
答:文檔中心---快速指引 (opens new window)有介紹步驟---根據步驟下載安卓在線聽寫sdk
答:設立nunum=1即刻優先權取到阿拉伯數字5。
答:雙聲道文件格試歪斜確或者是雙聲道文件格試與使用的技術參數不自動匹配。
答:同步保存的雙聲道視頻文件類型為pcm文件類型的雙聲道視頻,是未能就直接觀看的,可下載百度下來了在使用cool edit pro實現觀看。
答:設置成mIse.setParameter("KEY_REQUEST_FOCUS", "true");就可以了撤銷華為手機雜聲。
答:ASR_PTT顯示能否返回了標點標記,借助此參數表,設施聽寫備份文本報告單能否含標點標記。0顯示不用標點,1則顯示帶標點。
答:調控臺多蘋果適用2000個網絡熱詞,暫不蘋果適用實現擴容。
答:現今不支撐x86組織架構。