前言
最近看到新聞說麻省理工學院開發出可以識別新冠肺炎感染者咳嗽聲的AI模型,通過分析咳嗽錄音,可以將無症狀感染者與健康的人區分開來。
是不是感覺AI技術很神奇、很強大,僅通過咳嗽聲音就可以區分無症狀感染者和健康人。
其實AI聲音識別技術已經越來越多的應用於安全檢測場景中。
下面,就跟着小編來了解下華為聲音識別服務吧。
服務介紹
華為聲音識別服務是通過在線(實時錄音)的模式檢測環境中的聲音事件,並基於檢測到的聲音事件,幫助開發者進行后續指令動作,比如通過手機軟件通知用戶正在發生的事件,提醒用戶做出相應的行為和反應。
華為聲音識別服務目前支持13個種類的聲音事件檢測,主要包括:
-
笑聲
-
嬰幼兒哭聲
-
打鼾聲
-
噴嚏聲
-
叫喊聲
-
貓叫聲
-
狗叫聲
-
流水聲(包括水龍頭流水聲、溪流聲、海浪聲等)
-
汽車喇叭聲
-
門鈴聲
-
敲門聲
-
火災報警聲(包括火災報警器警報、煙霧報警器警報等)
-
警報聲(包括消防車警報、救護車警報、警車警報聲、防空警報等)
應用場景
華為聲音識別服務可應用於聽力障礙輔助、健康統計、嬰幼兒照顧等場景,應用廣泛,能夠提升用戶體驗、安全性等。
比如,聽力障礙者借助聲音識別服務,可以迅速獲知周圍正在發生的事件,能夠快速對周圍發生的火災、警報聲、尖叫聲、流水聲等危險環境作出反應。
嬰幼兒父母可以通過聲音識別服務,隨時得知嬰幼兒狀態,當接收到手機應用關於嬰幼兒哭聲的通知后,可以短時間內到嬰幼兒身邊照料,不用時刻守在嬰幼兒身邊。
此外,我們還可以通過聲音識別服務,實時檢測記錄打鼾聲、噴嚏聲等數據,分析統計健康狀況。
華為聲音識別服務操作簡單,提供API接口和SDK包。開發者通過簡單調用接口,就可以進行后續開發。
開發步驟
1 配置AppGallery Connect。
在開發應用前,需要在AppGallery Connect中配置相關信息。
具體操作步驟,詳見下方鏈接:
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 onSoundSuccessResult(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