音频出
发送处理过的音频样本到音频设备
- 库:
嵌入式编码器支持包的STMic金宝approelectronics发现板/STM32F4-Discovery
描述
此块将处理过的音频数据写入连接到STM32F4-Discovery™板上处理器的音频设备。您可以以不同的速率发送音频样本,如16kHz, 32kHz等,具有不同的帧大小。
您可以在此块上播放单声道([1xN]或[Nx1])或立体声[Nx2]音频帧。
在配置参数对话框中,在编码器目标下,您可以选择“音频输出”块DMA中断
随着调度器中断源.这确保了处理算法与音频输出块中断同步。
选择此选项时,请确保以基本速率调度音频输出块。
请注意
您不能在此块上播放[1x1]音频样本,因为帧至少需要两个样本。
使用双缓冲发送处理过的音频样本
音频输出块使用双缓冲机制将数据发送到音频设备。
使用双缓冲,DMA使用一个缓冲区将音频帧从处理器传输到音频设备,而另一个缓冲区用于从音频算法接收处理过的音频帧。这样做有助于防止在将数据发送到音频设备时覆盖缓冲区。
当您发送长度的音频帧时N样品
,块创建两个长度相同的缓冲区N
样本。
下面介绍Audio Out块中的双缓冲机制。
在第一次迭代中,当处理过的音频信号从' audio out buffer1 '发送到音频设备时,' audio out buffer0 '被来自音频处理算法的音频信号填充。
在第一次迭代中,' Audio out buffer1 '不包含音频样本。因此,来自音频输出块的音频样本被延迟了一个音频帧。如果你的模型有麦克风输入和音频输出块,那么有两个音频帧的时间延迟,因为麦克风输入块也使用相同的双缓冲技术。
DMA完成从' Audio out buffer1 '发送处理过的数据后,会生成一个中断。
在第二次迭代中,当处理过的音频信号从audio out buffer0发送到音频设备时,' audio out buffer1 '被来自音频处理算法的音频数据填充。