繁体   English   中英

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

[英]What are the differences between a WAV file (.wav) and a WAVE audio file (.wave)?

我正在尝试使用 PyAudio 库通过 python 项目中的 USB 音频接口录制吉他音频。 当我使用 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)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM