日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android音频杂音问题_Android 音视频去回声、降噪(Android音频采集及回音消除)(转)...

發布時間:2023/12/10 Android 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android音频杂音问题_Android 音视频去回声、降噪(Android音频采集及回音消除)(转)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

好久沒寫文章了,其實是想記錄一下自己在Android開發的成長歷程。談到音視頻這塊,對于新手來說剛接觸到這一塊,那是非常非常的惡心~我自己弄這一塊也是從頭開始,在 網上也翻閱了無數的資料、瀏覽了無數的博客,嘗試了多種方法,網上大致方法是采用第三方的,如webRtc、speex等。甚至花錢買積分去下demo,也發現了好多demo就是 ? ?騙積分的,呵呵~好氣~ 不談了。成長的過程也是比較艱辛的,最后也還是自己解決了這個問題~~也希望這篇文章能幫助處在當時的我的一樣的情況下

1.Android聲音錄制

1. Android中使用AudioRecord錄制聲音,在Android中錄制聲音需要相應的權限,注意動態申請權限的問題(6.0以上)。

//處理權限申請回調

@Override

public?void?onRequestPermissionsResult(int?requestCode,?String[]?permissions,?int[]?grantResults)?{

Log.v(TAG,?"處理權限申請回調");

PermissionUtils.requestPermissionsResult(ActivityCameraLiveView.this,?requestCode,?permissions,?grantResults,?mPermissionGrant);

}

private?PermissionUtils.PermissionGrant?mPermissionGrant?=?new?PermissionUtils.PermissionGrant()?{

@Override

public?void?onPermissionGranted(int?requestCode)?{

switch?(requestCode)?{

case?PermissionUtils.CODE_RECORD_AUDIO:

Log.v(TAG,?"PermissionGrant:?CODE_RECORD_AUDIO?audio?=?true");

audio?=?true;

break;

case?PermissionUtils.CODE_READ_EXTERNAL_STORAGE:

WRITE_EXTERNAL_STORAGE_PERMISSION?=?true;

Log.v(TAG,?"PermissionGrant:?WRITE_EXTERNAL_STORAGE_PERMISSION?=?true");

break;

case?PermissionUtils.CODE_STOP_CAMERA:

Log.v(TAG,?"PermissionUtils.CODE_STOP_CAMERA");

break;

case?PermissionUtils.CODE_WRITE_EXTERNAL_STORAGE:

break;

case?PermissionUtils.CODE_ACCESS_COARSE_LOCATION:

break;

}

}

};

2.對AudioRecord進行錄音前需要對采樣率進行設置

nMinBufSize?=?AudioRecord.getMinBufferSize(8000,

AudioFormat.CHANNEL_IN_MONO,

AudioFormat.ENCODING_PCM_16BIT);

2.Android回聲消除

網上回音消除方式大概有兩種 :1.通過安卓自帶的?VOICE_COMMUNICATION模式進行錄音,自動消除回音。2.使用第三方庫進行消除(webRtc、Speex..),消除回音。

用第三方的話,比較麻煩,而且不好實現,用起來效果不是很明顯,試了一下Speex的,感覺手機端與手機端語音還可以,但是如果是手機端(APP)和硬件語音的話,就要考慮到碼流格式的問題,因為我們公司采用的是G711格式的音頻流,所以就必須要先轉pcm格式然后再轉speex格式,最后轉711格式的。實在不行,還有一種就是在錄音的時候強制關閉揚聲器,在錄音的時候就只錄到手機的聲音隔斷了揚聲器的聲音,不過效果不是很明顯,還是會有滋滋的噪聲。

關閉揚聲器

audioManager?=?(AudioManager)?mcontext.getSystemService(Context.AUDIO_SERVICE);

audioManager.setSpeakerphoneOn(false);

audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL,?0,

AudioManager.STREAM_VOICE_CALL);

audioManager.setMode(AudioManager.MODE_IN_CALL);

這里我推薦第一種方法,不僅考慮到了手機機型的適配,還比較簡單就改變一個參數:

audioRecord?=?new?AudioRecord(MediaRecorder.AudioSource.VOICE_COMMUNICATION,?8000,

AudioFormat.CHANNEL_IN_MONO,?AudioFormat.ENCODING_PCM_16BIT,?nMinBufSize);

audioRecord.startRecording();

寫到這里基本上回聲和噪聲就沒有了~

http://blog.csdn.net/wl532882877/article/details/78296662?locationNum=5&fps=1

總結

以上是生活随笔為你收集整理的android音频杂音问题_Android 音视频去回声、降噪(Android音频采集及回音消除)(转)...的全部內容,希望文章能夠幫你解決所遇到的問題。

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