将音调发生器连接到aplay()

时间:2017-11-21 20:18:03

标签: audio pipe

我认为这将是一项简单的任务...... - 平台:笔记本电脑上的linux - 语言:python
- 对象:产生在扬声器或耳机上听到的音调。音调将实时修改,每秒多次(想想金属探测器)

最初的设计是在python中生成一个音调并将其传递给aplay()。 由于 aplay 以已知速率(采样率)消耗数据,我认为如果在正常采样率(零幅度)下产生的静音(音调之间),我的音调发生器将不必关心定时。

第一个结果显示了一个重要的时滞(很多秒)。我发现默认情况下管道相当长(64KB)。这是8秒的样本(8Khz) 我找到了一种方法来减小4KB的管道尺寸,但它仍然太长(0.5s滞后)。

以非常高的频率进行采样可以减少延迟,但我不喜欢这种解决方案。

第二种方法是在沉默期间产生真正的沉默(无样本),并且在静默期间发生器将睡眠()。 结果是 aplay 抱怨欠载,并且由于某种原因,音调被截断并处理不当(渲染不良)。

所以,我的问题是:
没有管道将音调发送到音频堆栈的最佳方法是什么?

0 个答案:

没有答案