所以我试图在我的树莓派上运行以下脚本:
"""PyAudio Example: Play a wave file."""
import pyaudio
import wave
import sys
CHUNK = 1024
if len(sys.argv) < 2:
print("Plays a wave file.\n\nUsage: %s filename.wav" % sys.argv[0])
sys.exit(-1)
wf = wave.open(sys.argv[1], 'rb')
# instantiate PyAudio (1)
p = pyaudio.PyAudio()
# open stream (2)
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
channels=wf.getnchannels(),
rate=wf.getframerate(),
output=True)
# read data
data = wf.readframes(CHUNK)
# play stream (3)
while data != '':
stream.write(data)
data = wf.readframes(CHUNK)
# stop stream (4)
stream.stop_stream()
stream.close()
# close PyAudio (5)
p.terminate()
我使用以下文件创建了WAV文件:
arecord -D plughw:1 --duration=5 -f cd -vv ~/rectest.wav
当我像
aplay ~/rectest.wav
一样播放时,它播放效果很好,声音又大又清晰。当我使用脚本(运行python play.py〜/ rectest.wav)时,声音质量很差。我也注意到录音是5秒,但是当我使用脚本播放时,大约需要8-9秒才能完成播放(似乎失真会使播放时间变长)。
这里发生了什么?我如何解决它?
最佳答案
我也遇到了这个问题,但是我只是通过使增益控制静音并降低扬声器和MIC的音量直到达到白电平而摆脱了它。
之后,我的音质变得更加清晰,意味着更好。
所以只要用这个命令打开声音 Controller
alsamixer
然后使用箭头键切换黑白选项,将
increase/decrease
的音量Speaker/MIC
切换为SPACEBAR
,然后使用mute/unmute
对其进行Control Gain
。