HarmonyOS之AI能力·語(yǔ)音識(shí)別技術(shù)

      網(wǎng)友投稿 1004 2025-04-01

      語(yǔ)音識(shí)別功能提供面向移動(dòng)終端的語(yǔ)音識(shí)別能力。它基于華為智慧引擎(HUAWEI HiAI Engine)中的語(yǔ)音識(shí)別引擎,向開(kāi)發(fā)者提供人工智能應(yīng)用層 API。該技術(shù)可以將語(yǔ)音文件、實(shí)時(shí)語(yǔ)音數(shù)據(jù)流轉(zhuǎn)換為漢字序列,準(zhǔn)確率達(dá)到 90% 以上(本地識(shí)別 95%)。

      語(yǔ)音識(shí)別技術(shù),也稱為自動(dòng)語(yǔ)音識(shí)別(Automatic Speech Recognition, ASR),可以基于機(jī)器識(shí)別和理解,將語(yǔ)音信號(hào)轉(zhuǎn)變?yōu)槲谋净蛎睢?/p>

      語(yǔ)音識(shí)別支持的輸入文件格式有 wav 或 pcm。

      語(yǔ)音識(shí)別當(dāng)前僅支持對(duì)普通話的識(shí)別。

      語(yǔ)音識(shí)別輸入時(shí)長(zhǎng)不能超過(guò) 20s。

      語(yǔ)音識(shí)別采樣要求:采樣率 16000Hz,單聲道。

      語(yǔ)音識(shí)別引擎的使用必須初始化和釋放處理,且調(diào)用必須在 UI 的主線程中進(jìn)行。

      多線程調(diào)用:HUAWEI HiAI Engine 不支持同一應(yīng)用使用多線程調(diào)用同一接口,這樣會(huì)使某一線程調(diào)用 release 方法后,卸載模型,導(dǎo)致正在運(yùn)行的另一些線程出錯(cuò)。故多線程執(zhí)行同一功能達(dá)不到并行的效果。但是引擎支持使用多線程調(diào)用不同接口,如開(kāi)啟兩個(gè)線程同時(shí)使用文檔矯正和 ASR 接口。

      支持開(kāi)發(fā)具有語(yǔ)音識(shí)別需求的第三方應(yīng)用,如語(yǔ)音輸入法、語(yǔ)音搜索、實(shí)時(shí)字幕、游戲娛樂(lè)、社交聊天、人機(jī)交互(如駕駛模式)等場(chǎng)景。

      語(yǔ)音輸入法:將需要輸入的文字,直接用語(yǔ)音的方式輸入。即用戶說(shuō)話的時(shí)候語(yǔ)音識(shí)別引擎返回識(shí)別的漢字序列,讓輸入更加便捷,解放雙手。

      語(yǔ)音搜索:搜索內(nèi)容直接以語(yǔ)音的方式輸入,可以用于客服系統(tǒng)的關(guān)鍵詞搜索,同時(shí)轉(zhuǎn)錄成文本,讓搜索更加高效。

      實(shí)時(shí)字幕:將直播、視頻、現(xiàn)場(chǎng)演講等音頻進(jìn)行實(shí)時(shí)的字幕轉(zhuǎn)換、降低理解成本,提升用戶體驗(yàn)。

      駕駛模式:在開(kāi)車過(guò)程中,手握方向盤(pán),無(wú)法分神去操作手機(jī)來(lái)選擇音樂(lè)、撥打電話。使用語(yǔ)音識(shí)別,只要向手機(jī)說(shuō)出命令,例如:聽(tīng)音樂(lè)的時(shí)候說(shuō)上一首/下一首進(jìn)行切歌或調(diào)節(jié)音量等,即可被手機(jī)識(shí)別并執(zhí)行相應(yīng)操作。

      AsrListener 接口說(shuō)明:

      AsrListener 中的 onResults(PacMap results) 方法返回結(jié)果,結(jié)果封裝在 json 格式中,需要解析得到。結(jié)果說(shuō)明:

      示例結(jié)果(Json):

      { "engine_type":"local_engine", "result":[{"confidence":0,"ori_word":"你 好 ","pinyin":"NI3 HAO3 ","word":"你好。"}], "result_type":"lvcsr", "scenario_type":5 }

      1

      2

      3

      4

      5

      6

      AsrError 說(shuō)明:

      // 提供ASR引擎執(zhí)行時(shí)所需要傳入的參數(shù)類 import ohos.ai.asr.AsrIntent; // 錯(cuò)誤碼的定義類 import ohos.ai.asr.util.AsrError; // 加載語(yǔ)音識(shí)別Listener import ohos.ai.asr.AsrListener; // 提供調(diào)用ASR引擎服務(wù)接口的類 import ohos.ai.asr.AsrClient; // ASR回調(diào)結(jié)果中的關(guān)鍵字封裝類 import ohos.ai.asr.util.AsrResultKey;

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      創(chuàng)建一個(gè) AsrClient 對(duì)象:context 為應(yīng)用上下文信息,應(yīng)為 ohos.aafwk.ability.Ability 或 ohos.aafwk.ability.AbilitySlice 的實(shí)例或子類實(shí)例:

      AsrClient asrClient = AsrClient.createAsrClient(context).orElse(null);

      HarmonyOS之AI能力·語(yǔ)音識(shí)別技術(shù)

      1

      設(shè)置引擎參數(shù):如果希望識(shí)別文件,音頻文件需滿足約束與限制,并設(shè)置音頻類型為“ASR_SRC_TYPE_FILE”;如果希望識(shí)別音頻流,則設(shè)置音頻類型為“ASR_SRC_TYPE_PCM”:

      AsrIntent initIntent = new AsrIntent(); initIntent.setAudioSourceType(AsrIntent.AsrAudioSrcType.ASR_SRC_TYPE_PCM);

      1

      2

      初始化ASR服務(wù):其中,mMyAsrListener 為實(shí)現(xiàn)了 AsrListener 接口的實(shí)例對(duì)象:

      asrClient.init(initIntent, mMyAsrListener);

      1

      開(kāi)始識(shí)別:用戶可以不設(shè)置參數(shù),使用默認(rèn)參數(shù):

      AsrIntent asrIntent = new AsrIntent(); // 設(shè)置后置的端點(diǎn)檢測(cè)(VAD)時(shí)間 asrIntent.setVadEndWaitMs(2000); // 設(shè)置前置的端點(diǎn)檢測(cè)(VAD)時(shí)間 asrIntent.setVadFrontWaitMs(4800); // 設(shè)置語(yǔ)音識(shí)別的超時(shí)時(shí)間 asrIntent.setTimeoutThresholdMs(20000); asrClient.startListening(asrIntent); // buffer需要替換為真實(shí)的音頻數(shù)據(jù) byte[] buffer = new byte[]{0, 1, 0, 10, 1}; // 對(duì)于長(zhǎng)度大于1280的音頻,需要多次調(diào)用writePcm分段傳輸 asrClient.writePcm(buffer, 1280);

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      需要注意的是,startListening 或 writePcm 方法建議放在 mMyAsrListener 中 onInit() 方法內(nèi)調(diào)用,保證初始化引擎成功之后再調(diào)用識(shí)別接口。如果希望識(shí)別音頻文件,則不需要調(diào)用 writePcm 接口:

      AsrIntent asrIntent = new AsrIntent(); // 將FilePath修改為正確的地址,且文件路徑需要給com.huawei.hiai進(jìn)程授予可訪問(wèn)權(quán)限。 asrIntent.setFilePath("FilePath"); asrClient.startListening(asrIntent);

      1

      2

      3

      4

      取消或停止識(shí)別:

      asrClient.stopListening(); // 停止識(shí)別 asrClient.cancel(); // 取消識(shí)別

      1

      2

      釋放引擎:

      asrClient.destroy();

      1

      AI 語(yǔ)音通話

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:WPS表格輸入文本默認(rèn)為繁體字該怎么解決?
      下一篇:excel身份證后四位顯示不出來(lái)怎么辦(excel身份證號(hào)顯示不出來(lái)怎么辦)
      相關(guān)文章
      亚洲综合色丁香麻豆| 亚洲中文字幕无码一区| 亚洲精品国产精品乱码不99| 亚洲国产成人精品无码久久久久久综合 | 亚洲午夜一区二区电影院| 精品亚洲A∨无码一区二区三区| 久久精品国产96精品亚洲| 亚洲精品高清无码视频| 国精无码欧精品亚洲一区| 国产亚洲综合色就色| 久久亚洲一区二区| 国产亚洲精品国产| 亚洲AV永久精品爱情岛论坛| 亚洲AV日韩AV天堂一区二区三区| 久久夜色精品国产亚洲| 亚洲AV无码成人网站久久精品大 | 亚洲综合一区无码精品| 亚洲最大的黄色网| 亚洲中文字幕乱码熟女在线| 亚洲老熟女五十路老熟女bbw| 亚洲精品久久无码av片俺去也| 成人亚洲国产va天堂| 亚洲经典千人经典日产| 国产亚洲综合一区二区三区| 亚洲乱码中文字幕综合234| 久久亚洲高清综合| 国产亚洲av片在线观看16女人 | 亚洲av无码无线在线观看| mm1313亚洲国产精品美女| 久久国产成人亚洲精品影院| 亚洲人成人77777网站| 亚洲专区在线视频| 亚洲人成网站在线观看播放青青| 亚洲成A人片在线播放器| 亚洲av日韩av永久无码电影 | 亚洲福利视频网站| 亚洲人成网网址在线看| 亚洲AV无码AV日韩AV网站| 国产成人亚洲精品蜜芽影院| 亚洲Av无码乱码在线观看性色| 亚洲精品亚洲人成在线观看下载|