我正在尝试通过将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,我完全不知道我在哪里出错。
答案 0 :(得分:0)
你肯定是在正确的轨道上。该代码应该创建一个31.25赫兹基频的锯齿波。我可以想到一些事情可能会消失。
一:你的调谐器可能听错频率;锯齿的频率较高,pretty loud,因此您的调谐器可能会错误识别并报告听到更高的音调。尝试在Audacity中生成正确频率的锯齿,并使用相同的调谐器进行测量。您可能会看到相同的结果?
二:表现。如果你的for循环运行速度足够慢以至于无法以8000样本/秒的速度输出,那么aplay仍然可以接受你的数据并播放它,但它会比你预期的要慢,因为样本不是没有快速地将它发送到您的扬声器。这可能不是正在发生的事情 - 我认为大多数计算机都足够快,但我不确定。