我正在使用AudioRecorder类在安卓上做语音记录应用程序,并与不同的采样率44100,32000,24000,16000和8000工作。采样率44100给出高质量的音频,但它占用非常大的大小,而其它采样率给出具有可接受文件大小的差的和非常差的质量音频。
在你说重复问题的可能性之前,我已经看到了以下链接:
但引用的链接与问题不同。
我的问题是如何在32000、24000和8000采样率下获得文件大小较小的高质量音频?
或者有没有办法把wav文件从大的压缩成小的?
我的代码示例:
tempbufferSize = AudioRecord.getMinBufferSize(16000,AudioFormat.CHANNEL_CONFIGURATION_MONO,AudioFormat.ENCODING_PCM_16BIT);
........
mAudioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,16000, AudioFormat.CHANNEL_CONFIGURATION_MONO,AudioFormat.ENCODING_PCM_16BIT,tempbufferSize);
mAudioRecord.startRecording();
.....我已经参考了Link.
请帮帮我。
发布于 2012-08-06 21:10:56
您确实意识到,当您提高采样率时,每秒会获得更多样本,这实际上会增加文件的大小。方法是更高质量,更多数据。
有关压缩的一些参考资料:
http://www.eetimes.com/design/analog-design/4017792/Audio-Compression-Algorithm-Overview
http://jspeex.sourceforge.net/index.php
http://flac.sourceforge.net/license.html <-- BSD许可证/无损
http://jflac.sourceforge.net/ << Apache许可证/无损
发布于 2012-08-06 21:19:40
WAV是纯未压缩的音频数据,因此在不牺牲质量的情况下,文件大小将相当大。您可以使用MediaRecorder和setOutputFormat()记录到MPEG4
请看:
MediaRecorder
OutputFormat MPEG4
希望这能有所帮助
https://stackoverflow.com/questions/11828816
复制相似问题