核心音频录制的声音失真且有噪音

时间:2015-12-11 17:18:53

标签: c cocoa core-audio

我一直试图在Mac OS X上使用音频队列录制声音。现在,我的代码可以工作,我可以将录制的声音存储在文件中,但是当我播放声音时,它会失真,嘈杂而且几乎没用。我已经从Apple发布的官方代码(SpeakHere)中调整了我的代码,但它似乎不起作用。我不知道问题出在哪里,但我想也许这就是格式的设置,它就像:

  AudioStreamBasicDescription recordFormat;
memset(&recordFormat, 0, sizeof(recordFormat));

recordFormat.mFormatFlags =         kAudioFormatFlagIsPacked | kAudioFormatFlagIsSignedInteger;
recordFormat.mFormatID         = kAudioFormatALaw; // 2
recordFormat.mSampleRate       = 16000.0;               // 3
recordFormat.mChannelsPerFrame = 1;                     // 4
recordFormat.mBitsPerChannel   = 16;                    // 5
recordFormat.mBytesPerPacket   = recordFormat.mChannelsPerFrame * sizeof (SInt16);                       // 6
recordFormat.mBytesPerFrame =
recordFormat.mChannelsPerFrame * sizeof (SInt16);
recordFormat.mFramesPerPacket  = 1;                     // 7
recordFormat.mReserved = 0;

有关此主题的任何线索(录制难以理解,失真和嘈杂的原因)的声音值得赞赏。

修改

我使用CoolEdit Pro打开了文件。它看起来像这样:

WAVE file form

1 个答案:

答案 0 :(得分:0)

CoolEdit快照看起来像是在读取具有44.1 kHz采样率线性PCM格式的文​​件。您似乎将16 kHz ALaw格式数据存储到该文件中,这可能是数据或文件的格式错误。