前言
最近看到新聞說麻省理工學院開發出能夠識別新冠肺炎感染者咳嗽聲的AI模型,經過分析咳嗽錄音,能夠將無症狀感染者與健康的人區分開來。java
是否是感受AI技術很神奇、很強大,僅經過咳嗽聲音就能夠區分無症狀感染者和健康人。git
其實AI聲音識別技術已經愈來愈多的應用於安全檢測場景中。github
下面,就跟着小編來了解下華爲聲音識別服務吧。json
服務介紹
華爲聲音識別服務是經過在線(實時錄音)的模式檢測環境中的聲音事件,並基於檢測到的聲音事件,幫助開發者進行後續指令動做,好比經過手機軟件通知用戶正在發生的事件,提醒用戶作出相應的行爲和反應。安全
華爲聲音識別服務目前支持13個種類的聲音事件檢測,主要包括:maven
-
笑聲ide
-
嬰幼兒哭聲gradle
-
打鼾聲ui
-
噴嚏聲google
-
叫喊聲
-
貓叫聲
-
狗叫聲
-
流水聲(包括水龍頭流水聲、溪流聲、海浪聲等)
-
汽車喇叭聲
-
門鈴聲
-
敲門聲
-
火災報警聲(包括火災報警器警報、煙霧報警器警報等)
- 警報聲(包括消防車警報、救護車警報、警車警報聲、防空警報等)
應用場景
華爲聲音識別服務可應用於聽力障礙輔助、健康統計、嬰幼兒照顧等場景,應用普遍,可以提高用戶體驗、安全性等。
好比,聽力障礙者藉助聲音識別服務,能夠迅速獲知周圍正在發生的事件,可以快速對周圍發生的火災、警報聲、尖叫聲、流水聲等危險環境做出反應。
嬰幼兒父母能夠經過聲音識別服務,隨時得知嬰幼兒狀態,當接收到手機應用關於嬰幼兒哭聲的通知後,能夠短期內到嬰幼兒身邊照料,不用時刻守在嬰幼兒身邊。
此外,咱們還能夠經過聲音識別服務,實時檢測記錄打鼾聲、噴嚏聲等數據,分析統計健康情況。
華爲聲音識別服務操做簡單,提供API接口和SDK包。開發者經過簡單調用接口,就能夠進行後續開發。
開發步驟
1 配置AppGallery Connect。
在開發應用前,須要在AppGallery Connect中配置相關信息。
具體操做步驟,詳見下方連接:
https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides-V5/config-agc-0000001050990353-V5
2 配置HMS Core SDK的Maven倉地址,並完成本服務的SDK集成。
2.1 打開Android Studio項目級「build.gradle」文件。
2.2 添加HUAWEI agcp插件以及Maven代碼庫。
-
在「allprojects > repositories」中配置HMS Core SDK的Maven倉地址。
-
在「buildscript > repositories」中配置HMS Core SDK的Maven倉地址。
- 若是App中添加了「agconnect-services.json」文件則須要在「buildscript > dependencies」中增長agcp配置。
buildscript { repositories { google() jcenter() maven {url 'https://developer.huawei.com/repo/'} } dependencies { ... classpath 'com.huawei.agconnect:agcp:1.4.1.300' } } allprojects { repositories { google() jcenter() maven {url 'https://developer.huawei.com/repo/'} } }
3 建立聲音識別實例。
MLSoundDector soundDector = MLSoundDector.createSoundDector();
4 建立聲音識別結果回調,用於獲取檢測結果,並將回調傳入聲音識別實例。
private MLSoundDectListener listener = new MLSoundDectListener() { @Override public void onSoundSucce***esult(Bundle result) { //識別成功的處理邏輯,識別結果爲:0-12(對應MLSoundDectConstants.java中定義的以SOUND_EVENT_TYPE開頭命名的13種聲音類型)。 int soundType = result.getInt(MLSoundDector.RESULTS_RECOGNIZED); } @Override public void onSoundFailResult(int errCode) { //識別失敗,可能沒有授予麥克風權限(Manifest.permission.RECORD_AUDIO)等異常狀況。 } }; soundDector.setSoundDectListener(listener);
5 啓動識別。
boolean isStarted = soundDector.start(context); //context 是上下文 //isStared 等於true表示啓動識別成功、isStared等於false表示啓動識別失敗(緣由多是手機麥克風被系統或其它三方應用佔用)
6 中止識別。
soundDector.stop();
7 識別結束,釋放資源。
soundDector.destroy();
DEMO演示
欲瞭解更多詳情,請參閱:
華爲開發者聯盟官網:https://developer.huawei.com/consumer/cn/hms
獲取開發指導文檔:https://developer.huawei.com/consumer/cn/doc/development
參與開發者討論請到Reddit社區:https://www.reddit.com/r/HMSCore/
下載demo和示例代碼請到Github:https://github.com/HMS-Core
解決集成問題請到Stack Overflow:https://stackoverflow.com/questions/tagged/huawei-mobile-services?tab=Newest
原文連接:
https://developer.huawei.com/consumer/cn/forum/topic/0201411999326170397?fid=18做者:say hi