0

我正在尝试使用 PyAudio 库通过我的 USB 音频接口在 python 项目中录制吉他音频。当我使用 Audacity 等音频应用程序保存音频时,我会得到一个 WAV (.wav) 文件,可以使用 Groove 音乐、Windows 媒体播放器等应用程序播放该文件,并且我可以根据需要操作这些文件。

但是,现在我需要在项目中实现录音,当我使用 PyAudio 录制吉他输入时,它将音频保存为 WAVE 音频文件 (.wave) 文件,该文件无法在程序中进行操作,也无法使用 playsound 库播放. 当我尝试从我的文件管理器播放它时,它只会使用 Itunes 播放,而 Groove 音乐和 windows 媒体播放器不支持它。

我在网上查看的任何地方都将 WAVE 和 WAV 文件描述为同一个东西,所以我不确定我为什么会遇到这个问题。我的代码如下所示。任何帮助或建议将不胜感激!

import pyaudio
import wave
from playsound import playsound


CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "live_guitar_input.wave"

p = pyaudio.PyAudio()

stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK)

print("NOW RECORDING")

frames = []
for i in range(0, int(RATE/CHUNK*RECORD_SECONDS)):
    data = stream.read(CHUNK)
    frames.append(data)

print("Finished Recording")

stream.stop_stream()
stream.close()
p.terminate()

wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()
playsound(WAVE_OUTPUT_FILENAME)
4

1 回答 1

0

正如OP所指出的,“wave”和“wav”是一回事。但文件管理器应用程序无法识别波形扩展名。解决方案就是将“file.wave”重命名为“file.wav”。

于 2020-06-02T09:34:31.703 回答