所以我在做一个用python编程的需要音频输出的项目。它产生方波音频,因此当声音从高变低或反之亦然时,你可以听到扬声器的咔嗒声。我在Windows中用PyAudio测试了这个概念,它很管用,但是当我在Ubuntu中使用Python AlsaAudio时,我听不到咔嚓声。奇怪的是,如果我将音频输出设置为正弦波,那么我可以听到音调。因此,我很困惑为什么我能听到正弦波,但听不到方波。在
下面是我能够复制问题的代码示例:
import math
import alsaaudio as aa
#set up audio
dev = aa.PCM(aa.PCM_PLAYBACK, aa.PCM_NONBLOCK)
RATE = 8000
dev.setchannels(1)
dev.setrate(RATE)
on = ''.join(chr(255) for x in range(RATE/10))
off = ''.join(chr(0) for x in range(RATE/10))
data = ''
for x in range(100): data += on+off #create the square wave
#uncomment the below line to hear the sine tone
#data = ''.join([chr(int(math.sin(x)*127+128)) for x in range(RATE)]) #create the sine wave
dev.write(data) #output audio
正弦波的频率是8000。Ubuntu不能在另一台电脑上运行。如果你在数据行下面的地方取消注释,那么它将播放正弦波,我可以听到。在
如果有人知道出了什么问题和/或如何解决它,我将不胜感激。谢谢。在
---编辑---
通过安装和使用PyAudio,我设法解决了这个问题。现在它完美地工作了。在
目前没有回答
相关问题 更多 >
编程相关推荐