管道从python到aplay

时间:2016-05-02 12:40:46

标签: python audio raw-data

我正在尝试通过将python的输出传递到这样的播放来生成声音:

for i in range (0, 1000):
    for j in range (0, 256):
        print(chr(j), end="")

我的python代码如下所示:

var id_from = 19;
var id_to = 19;
$.get("save.php",{id_from:id_from,id_to:id_to }, function(){

 console.log(result)
 });

因为aplay的工作方式(将原始数据转换为无符号8位,8000Hz音频)我认为它会在(8000/256 =)31.25 Mhz上播放1000个周期的锯齿波。
然而,当我用一个曲调测量输出频率时,它给了我大约20Mhz,我完全不知道我在哪里出错。

1 个答案:

答案 0 :(得分:0)

你肯定是在正确的轨道上。该代码应该创建一个31.25赫兹基频的锯齿波。我可以想到一些事情可能会消失。

一:你的调谐器可能听错频率;锯齿的频率较高,pretty loud,因此您的调谐器可能会错误识别并报告听到更高的音调。尝试在Audacity中生成正确频率的锯齿,并使用相同的调谐器进行测量。您可能会看到相同的结果?

二:表现。如果你的for循环运行速度足够慢以至于无法以8000样本/秒的速度输出,那么aplay仍然可以接受你的数据并播放它,但它会比你预期的要慢,因为样本不是没有快速地将它发送到您的扬声器。这可能不是正在发生的事情 - 我认为大多数计算机都足够快,但我不确定。