WAV文件(.wav)和WAVE音频文件(.wave)之间有什么区别?

问题描述 投票:1回答:1

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

但是,现在我需要将录音实现到项目中,当我使用PyAudio录制吉他输入时,它将音频保存为WAVE音频文件(.wave)文件,该文件无法在程序中操作并且无法使用播放库。当我尝试从文件管理器播放它时,它将仅使用Itunes播放,而Groove音乐和Windows Media Player不支持它。

我在线检查的任何地方都将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)
python wav pyaudio wave playsound
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.