gpt4 book ai didi

audio - 录制的 USB 音频信号中出现奇怪的音频信号

转载 作者:行者123 更新时间:2023-12-01 06:15:56 29 4
gpt4 key购买 nike

可能是错误的地方问这个问题,但我需要帮助找出真正的问题是什么......

基本上,我正在对微 Controller 进行编程以进行 USB 音频录制(使用 USB 音频类 2.0/高速 USB)。看起来我已经非常接近“正确”了,但是当我在 audacity 中录制一个叽叽喳喳的声音时,我得到了这个[下面是摘录]:

chirp excerpt

我想我要问的是为什么我在录音过程中会遇到这些奇怪的中断和跳跃?是因为我读取编解码器输入缓冲区的速度不够快,还是帧长度设置不正确?

我如何计算从 Apple 的 USB 音频指南获得的帧长度(使用 44.1kHz 采样率和 16 比特率):

#define AUDIO_POLL_INT     4
#define FRAME_BYTES (BIT_RATE_16 / 8)
#define NUM_CHANNELS STEREO

uint16_t frame_len = 44 (44.1kHz/1000 samples) * NUM_CHANNELS * FRAME_BYTES;
if (!(frame_pos % 9)) frame_len += (1 * NUM_CHANNELS * FRAME_BYTES)
frame_len = (frame_len / 8) * (2 << (AUDIO_POLL_INT-1));
// 10 ms frames
frame_pos = (((frame_pos + 1) / 8) * (2 << (AUDIO_POLL_INT-1))) % 10;

这也是读取编解码器输入的过程:

1) 读取编解码器输入;将样本加载到临时缓冲区(从编解码器外设传输到内存外设)

2) 当传输完成时(缓冲区已满;frame_len 容量已满),内存外设中断发生,将缓冲区样本发送到 USB。然后,再次读取编解码器输入

希望这不会太令人困惑...让我知道,我可以添加更多信息/清理问题。谢谢!

最佳答案

(在我看来)你并没有丢包,只是误排序了它们。

看看你的每一个“亮点”。很明显,每个“blip”实际上是一段音频,适合时间上大约 1/3 的波形。

您可能有一个循环缓冲区,并且您的读/写指针或使用管理器丢失并迟迟发送缓冲区,从而出现问题。

我不认为它与采样率转换或类似的东西(无论如何直接相关)。

关于audio - 录制的 USB 音频信号中出现奇怪的音频信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42078675/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com