WAV 文件 (.wav) 和 WAVE 音频文件 (.wave) 有啥区别?
Posted
技术标签:
【中文标题】WAV 文件 (.wav) 和 WAVE 音频文件 (.wave) 有啥区别?【英文标题】:What are the differences between a WAV file (.wav) and a WAVE audio file (.wave)?WAV 文件 (.wav) 和 WAVE 音频文件 (.wave) 有什么区别? 【发布时间】:2020-06-01 15:14:56 【问题描述】:我正在尝试使用 PyAudio 库通过我的 USB 音频接口在 python 项目中录制吉他音频。当我使用 Audacity 等音频应用程序保存音频时,我会得到一个 WAV (.wav) 文件,可以使用 Groove 音乐、Windows 媒体播放器等应用程序播放该文件,并且我可以根据需要操作这些文件。
但是,现在我需要在项目中实现录音,当我使用 PyAudio 录制吉他输入时,它将音频保存为 WAVE 音频文件 (.wave) 文件,该文件无法在程序中进行操作,也无法使用播放声音库。当我尝试从我的文件管理器播放它时,它只会使用 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)
【问题讨论】:
尝试重命名文件.wav 【参考方案1】:正如 O.P. 所指出的,“wave”和“wav”是一回事。但文件管理器应用程序无法识别波形扩展名。解决方法就是将“file.wave”重命名为“file.wav”。
【讨论】:
感谢您的帮助!以上是关于WAV 文件 (.wav) 和 WAVE 音频文件 (.wave) 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章