关于audiorecord 噪音问题

sibylslove 2010-07-19 11:35:26
录出来之后全是噪音

int frequency = 8000;
int channelConfiguration = AudioFormat.CHANNEL_CONFIGURATION_MONO;
int audioEncoding = AudioFormat.ENCODING_PCM_16BIT;
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/reverseme.pcm");
....

OutputStream os = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(os);
DataOutputStream dos = new DataOutputStream(bos);

// Create a new AudioRecord object to record the audio.
int bufferSize = AudioRecord.getMinBufferSize(frequency, channelConfiguration, audioEncoding);
AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, frequency, channelConfiguration, audioEncoding, bufferSize);

short[] buffer = new short[bufferSize];
audioRecord.startRecording();
int nCount = 1;

while(nCount<21)
{
int bufferReadResult = audioRecord.read(buffer, 0, bufferSize);
Log.i("550", Integer.toString(bufferReadResult));

for (int i = 0; i < bufferReadResult; i++)
{
dos.writeShort(buffer[i]);
Log.i("540", "123");
}
nCount++;
}
audioRecord.stop();
dos.close();
...全文
2692 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
private static int[] mSampleRates = new int[] { 8000, 11025, 22050, 44100 }; public static final String TAG = "find"; public AudioRecord findAudioRecord() { for (int rate : mSampleRates) { for (short audioFormat : new short[] { AudioFormat.ENCODING_PCM_8BIT, AudioFormat.ENCODING_PCM_16BIT }) { for (short channelConfig : new short[] { AudioFormat.CHANNEL_IN_MONO, AudioFormat.CHANNEL_IN_STEREO }) { try { Log.d(TAG, "Attempting rate " + rate + "Hz, bits: " + audioFormat + ", channel: " + channelConfig); int bufferSize = AudioRecord.getMinBufferSize(rate, channelConfig, audioFormat); if (bufferSize != AudioRecord.ERROR_BAD_VALUE) { // check if we can instantiate and have a success AudioRecord recorder = new AudioRecord(AudioSource.DEFAULT, rate, channelConfig, audioFormat, bufferSize); if (recorder.getState() == AudioRecord.STATE_INITIALIZED) return recorder; } } catch (Exception e) { Log.e(TAG, rate + "Exception, keep trying.",e); } } } } return null; }
Gongqingshuai 2012-08-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

1. 参数没对
2. 要看机器的,有的机器不支持某些参数
以前在WM上面做了一个mp3编码的程序就是,通过麦克风录音,同一份代码设置相同的码率,比特率,单双声道在不同的机器上面表现完全不一样,其中一台录制出来效果非常好,另外一个就全是杂音.
[/Quote]
如果不同机器参数还不一样,那怎么能让做出来的东西,在所有机器上运行呢,毕竟我们不是会专门一台或一个品牌的机子做开发的
qq343931720 2011-12-21
  • 打赏
  • 举报
回复
求楼主给个解决方案呐
ylgiii 2010-08-19
  • 打赏
  • 举报
回复
这是我写的,可用,你试一下吧
private Runnable threadStartRec = new Runnable()
{

public void run() {
// TODO Auto-generated method stub


//start record
int minBuffSize = AudioRecord.getMinBufferSize(8000,
AudioFormat.CHANNEL_CONFIGURATION_MONO,AudioFormat.ENCODING_PCM_16BIT);
AudioRecord mAudioRecorder = new AudioRecord(MediaRecorder.AudioSource.MIC, 8000,
// AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT, minBuffSize*3);
mAudioRecorder.startRecording();

byte[] mBuffer = new byte[minBuffSize*3];

int len = 0;
File fw = new File ( strFileName );
FileOutputStream fisWriter = null;

try {
fw.createNewFile();
fisWriter = new FileOutputStream (fw);
//FileInputStream fisReader = new FileInputStream (fw);

}
catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

while(bRecording)
{
len = 0;
len = mAudioRecorder.read(mBuffer, 0, minBuffSize);
//write into file
// if(len>0&&len<=minBuffSize)
{
//
try {
fisWriter.write(mBuffer);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block

e.printStackTrace();
}
}//end of while
try {
fisWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}//end of Run
};
Hinagi 2010-07-20
  • 打赏
  • 举报
回复
我建议你用你的程序录一首歌
然后去下一个声音分析软件,看一下你录制出来的这个歌的波形和源文件那首歌的波形差别是不是很大,如果你参数设置的比较大,大概在32000hz, 16bit, 双声道的话,波形应该差不多的,如果你参数设错了,波形相差很大,一眼就看出来了
Hinagi 2010-07-20
  • 打赏
  • 举报
回复
1. 参数没对
2. 要看机器的,有的机器不支持某些参数
以前在WM上面做了一个mp3编码的程序就是,通过麦克风录音,同一份代码设置相同的码率,比特率,单双声道在不同的机器上面表现完全不一样,其中一台录制出来效果非常好,另外一个就全是杂音.
sibylslove 2010-07-20
  • 打赏
  • 举报
回复
是真机,HTC的Desire G7的一个机子
chenzhp 2010-07-19
  • 打赏
  • 举报
回复
sibylslove 2010-07-19
  • 打赏
  • 举报
回复
各位帮帮忙啊~
yihua0001 2010-07-19
  • 打赏
  • 举报
回复
我遇到的问题要么就是录不到声音,要么就是语速变慢,声音失真的,噪音的现象真没遇到过。楼主用的是真机吗,什么型号的?
ccll_4177 2010-07-19
  • 打赏
  • 举报
回复
我先MARK过,回头也学习
vclongking 2010-07-19
  • 打赏
  • 举报
回复
越来越厉害了 , 帮顶一下。
关注 , 学习
AudioLab - 您唯一需要的音频编辑器应用程序 AudioLab是最先进,现代,快速,专业的音频编辑器,具有您想要的所有功能。 音频修剪(剪切/裁剪/复制/粘贴/添加静音/撤消/重做),音频混合(混合四音频,改变速度(速度)/音高,具有所有DJ效果选项和滤波器),详细标签编辑,音频等功能合并,录音,音频格式转换器和更多功能......使用Instant Preview监控修改的每一步,使AudioLab与其他步骤不同 ➜想要一个音频切割器切割音乐的最佳部分并将其保存为铃声/闹钟/音乐文件/通知音/指定铃声到联系人? ➜想要像专业桌面混音那样混合音频? ➜想要录制高质量的音频? ➜厌倦了错误的专辑艺术,歌曲艺术和不准确的音频标签? 使用AudioLab音频编辑器,您可以完成所有这些以及更多...... ♪音频切割器/音频微调器 简单,现代且易于使用的用户界面可精确剪切音频的最佳部分(最长100毫秒)用于音乐文件,移动铃声,通知,警报或联系人音调的歌曲。 添加静音,删除部分音频,使用编辑堆栈复制粘贴音频的任何部分,轻松导航您完成编辑并帮助您轻松撤消或重做您的工作。 支持您可以想象的每种文件格式(mp3,wav,flac,m4a,aac,ogg等......) ♪音频混音 将您的音频与三种不同的音轨混合以创建混音。 可以混合相同或任何格式的歌曲。 添加很多效果,如Echo,Whoosh,Reverb,3d Audio Spatializer等等......为你的音频DJ提供类似的效果 你还可以改变音频(速度)和音频音高 ♪合并音频 合并两个或多个音频并使用合并音频创建单个音频。您可以合并不同格式的音频文件,而不会损失音频质量 ♪标签编辑器和元数据更换器 纠正错误的专辑/歌曲艺术和不准确的音频标签(编辑所有最知名的标签信息) ♪音频转换器和Mp3转换器 将任何音频文件从一种格式转换为另一种格式。从以下音频格式中选择 - MP3,WAV,AAC,MP4,FLAC,OGG,OPUS,具有不同的通道,采样和比特率 ♪音频录制/ 录音带有所需音源,声道,采样率,音频格式以及噪音抑制器,自动增益和撇去沉默等高级选项的录音 ♪分割音频和反向音频将 任何音频文件分成两部分,并使用即时预览反转任何音频文件 ♪文本到语音 AudioLab帮助您使用手机内置的文本到语音引擎将文本转换为语音 它还支持音高和速度更改选项 ♪设备编解码器信息 一个简单而方便的工具,可让您检测Android设备上可用的多媒体编码器和解码器(编解码器) ♪音频播放器 播放每个输出与美丽的音频播放器与均衡器,内部和外部歌词支持 ♪语音转换器 改变你的声音/音频,用你修改后的声音玩得开心 将氦气,醉酒,花栗鼠和许多其他有趣的效果应用于你的声音 ♪声音去除器/卡拉OK效果 从您的音频中删除人声并在卡拉OK之夜使用它 ♪视频到音频转换器 将视频转换为音频文件。提取任何视频的音频并保存。在“音频”中选择要转换的视频部分 AudioLab在LGPL的许可下使用FFmpeg并使用Superpowered SDK进行超级动力 AudioLab是功能最强大的音频编辑器,包含所有音频编辑功能。 它可用于创建最佳歌曲曲目,MP3切割器,铃声切割器,MP3转换器,MP3铃声,混音器,语音转换器,标签编辑器等等... 什么是新的: 语音转换器中 添加了15个新语音离线卡拉OK中添加了音乐效果和录制效果 添加了罗马尼亚语言添加了 许多新的音频效果 在编辑多个音频中一次混合或转换多个音频 现在您可以在设置中选择默认音频格式 现在您可以删除宽带,剪辑,冲动的噪音 现在修剪,合并您的录音录音音频 自动调音添加到录音音频(实验) 卡拉OK离线优化低耳机时使用耳机 这个程序没有广告

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧