播放文件时的Pyaudio音质

时间:2014-02-20 09:31:32

标签: python audio pyaudio

所以我试图在我的树莓派上运行以下脚本:

"""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()

我使用:arecord -D plughw:1 --duration=5 -f cd -vv ~/rectest.wav

创建了一个WAV文件

当我演奏时:aplay ~/rectest.wav播放效果很好,声音响亮而清晰。

当我使用脚本(运行python play.py~ / rectest.wav)时,声音质量非常糟糕。我也注意到录音是5秒,但是当我使用脚本播放时,它需要大约8-9秒才能完成播放(似乎失真使它更长)。

这里发生了什么?我该如何解决?

1 个答案:

答案 0 :(得分:0)

我也遇到了这个问题,但是我只是通过将增益控制静音并将扬声器和MIC的音量降低到白色水平来摆脱它。

enter image description here

之后我的音质变得清晰,意味着更好。

所以只需通过此命令打开声音控制器

alsamixer

然后使用箭头键切换b {w选项,increase/decrease的{​​{1}}卷,并使用Speaker/MIC SPACEBAR mute/unmute