日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

如何用机器学习识别猫叫和狗叫声?

發布時間:2023/12/8 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何用机器学习识别猫叫和狗叫声? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在一些應用項目開發的過程中,有時需要用到語音檢測的功能,即識別敲門聲、門鈴聲、汽車喇叭聲等功能,對于中小開發者來說,單獨開發構建該能力,不免耗時耗力,而華為機器學習服務中的聲音識別服務SDK,只需簡單集成,端側就能實現這個功能。

華為機器學習服務聲音識別能力

聲音識別服務支持通過在線(實時錄音)的模式檢測聲音事件,基于檢測到的聲音事件能夠幫助開發者進行后續指令動作。目前支持13個種類的聲音事件,包括:笑聲、嬰兒或小孩哭聲、打鼾聲、噴嚏聲、叫喊聲、貓叫聲、狗叫聲、流水聲(包括水龍頭流水聲、溪流聲、海浪聲)、汽車喇叭聲、門鈴聲、敲門聲、火災報警聲(包括火災報警器警報聲、煙霧報警器警報聲)、警報聲(包括消防車警報聲、救護車警報聲、警車警報聲、防空警報聲)。

集成準備

開發環境配置

1、需要在華為開發者聯盟上創建應用:

此步驟具體可以詳見此鏈接:https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-get-started#createproject?ha__source=hms1

2、打開機器學習服務:

?

具體開啟步驟可以查看此鏈接:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides-V5/enable-service-0000001050038078-V5?ha__source=hms1

2、創建完應用之后,會自動生成agconnect-services.json文件, 需要手動將agconnect-services.json文件拷貝到應用級根目錄下

3、配置HMS Core SDK的Maven倉地址。

關于Maven倉的配置可以查看此鏈接:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/config-maven-0000001050040031?ha__source=hms1

4、集成聲音識別服務SDK

  • 推薦使用Full SDK方式集成,在build.gradle文件中配置相應的sdk
// 引入聲音識別集合包 implementation 'com.huawei.hms:ml-speech-semantics-sounddect-sdk:2.1.0.300' implementation 'com.huawei.hms:ml-speech-semantics-sounddect-model:2.1.0.300'
  • ?根據實際情況聲明AGC插件配置,有兩種方式
apply plugin: 'com.android.application' apply plugin: 'com.huawei.agconnect'

plugins {id 'com.android.application'id 'com.huawei.agconnect' }

3. 自動更新機器學習模型

添加如下語句到AndroidManifest.xml文件中,用戶從華為應用市場安裝您的應用后,將自動更新機器學習模型到設備:

<meta-dataandroid:name="com.huawei.hms.ml.DEPENDENCY"android:value= "sounddect"/>

更詳細的步驟可以查看鏈接:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/sound-detection-sdk-0000001055602754?ha__source=hms1

應用開發編碼階段

1.取得 麥克風 權限, 如果沒有麥克風的權限 會報12203的錯誤

設置靜態權限(必須)

<uses-permission android:name="android.permission.RECORD_AUDIO" />

動態權限獲取(必須)

ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECORD_AUDIO}, 1);

2.創建MLSoundDector對象

private static final String TAG = "MLSoundDectorDemo";//語音識別的對象 private MLSoundDector mlSoundDector;//創建MLSoundDector對象 并 設置回調方法 private void initMLSoundDector(){mlSoundDector = MLSoundDector.createSoundDector();mlSoundDector.setSoundDectListener(listener); }

3. 聲音識別結果回調,用于獲取檢測結果,并將回調傳入聲音識別實例。

//創建聲音識別結果回調,用于獲取檢測結果,并將回調傳入聲音識別實例。 private MLSoundDectListener listener = new MLSoundDectListener() {@Overridepublic void onSoundSuccessResult(Bundle result) {//識別成功的處理邏輯,識別結果為:0-12(對應MLSoundDectConstants.java中定義的以SOUND_EVENT_TYPE開頭命名的13種聲音類型)。int soundType = result.getInt(MLSoundDector.RESULTS_RECOGNIZED);Log.d(TAG,"聲音識別成功:"+soundType);}@Overridepublic void onSoundFailResult(int errCode) {//識別失敗,可能沒有授予麥克風權限(Manifest.permission.RECORD_AUDIO)等異常情況。Log.d(TAG,"聲音識別失敗:"+errCode);} };

此代碼中只是將聲音識別結果的int類型打印了出來,實際編碼中,可以將int類型的聲音識別結果 轉換為 可被用戶識別的類型。

聲音識別類型的定義:

<string-array name="sound_dect_voice_type"><item>笑聲</item><item>嬰兒或小孩哭聲</item><item>打鼾聲</item><item>噴嚏聲</item><item>叫喊聲</item><item>貓叫聲</item><item>狗叫聲</item><item>流水聲</item><item>汽車喇叭聲</item><item>門鈴聲</item><item>敲門聲</item><item>火災報警聲</item><item>警報聲</item> </string-array>

3.?開啟和關閉語音識別

@Override public void onClick(View v) {switch (v.getId()){case R.id.btn_start_detect:if (mlSoundDector != null){boolean isStarted = mlSoundDector.start(this); //context 是上下文//isStared 等于true表示啟動識別成功、isStared等于false表示啟動識別失敗(原因可能是手機麥克風被系統或其它三方應用占用)if (isStarted){Toast.makeText(this,"語音識別開啟成功", Toast.LENGTH_SHORT).show();}}break;case R.id.btn_stop_detect:if (mlSoundDector != null){mlSoundDector.stop();}break;} }

4.當頁面關閉的時候,可以調用destroy()方法釋放資源

@Override protected void onDestroy() {super.onDestroy();if (mlSoundDector != null){mlSoundDector.destroy();} }

運行測試

1.?以敲門聲為例,預計聲音識別類型的輸出結果為10
2.?點擊開啟語音識別按鈕、模擬敲門聲 ,在AS控制臺中可以得到如下日志, 說明集成成功。

其他

1. 聲音識別服務屬于華為機器學習服務中的一個很小的模塊,華為機器學習服務包括6大模塊,分別為:文本類、語音語言類、圖像類、人臉人體類、自然語言處理類,自定義模型 。
2. 這篇記錄文檔只是介紹了“語音語言類”這個模塊中的“聲音識別服務”
3. 如果有讀者對華為機器學習服務其他模塊感興趣的話,可以查看華為提供的相關集成文檔

>>訪問華為機器學習服務官網,了解更多相關內容
>>獲取華為機器學習服務開發指導文檔
>>華為HMS Core官方論壇
>>華為機器學習服務開源倉庫地址:GitHub、Gitee

點擊右上角頭像右方的關注,第一時間了解華為移動服務最新技術~

?

?

總結

以上是生活随笔為你收集整理的如何用机器学习识别猫叫和狗叫声?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。