0

我正在使用 AudioRecorder 类在 android 上进行语音录制应用程序,并且使用了不同的采样率 44100、32000、24000、16000 和 8000。采样率 44100 提供了高质量的音频,但它需要非常大的尺寸,但其他采样率给出了不好和非常文件大小可接受的质量差的音频。

在你说可能重复的问题之前,我已经看到了以下链接:

链接1

链接2

但是提到的链接与问题不同。

我的问题是如何为 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();
.....

我已经提到了链接。

请帮我。

4

2 回答 2

0

您确实意识到,当您提高采样率时,您每秒会获得更多样本,这有效地增加了文件的大小。方法是质量更高,数据更多。

一些压缩参考:


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-06T13:10:56.450 回答
0

WAV 是纯未压缩的音频数据,因此在不牺牲质量的情况下,文件大小会非常大。您可以使用 MediaRecorder 和 setOutputFormat() 录制到 MPEG4

看着:

媒体记录器

输出格式 MPEG4

希望有帮助

于 2012-08-06T13:19:39.927 回答