python - 使用 Wavefile 读取 .wav 文件时出现 Python 3.7 错误
问题描述
我对使用 python 很陌生,在尝试解决我的一些代码问题时遇到了错误。该代码分析声音的频率并将其与枪声进行比较,但我不断收到错误消息。不幸的是,我无法自己修复它,尽管我花了几个小时试图修复它。
这是我的代码有问题的部分:
import wave
from wave import *
import scipy
from scipy import *
from scipy.io import wavfile as wav
import os
from os import *
os.path.join('/Users/TheBigApple/Downloads/make_call.py', '/Users/TheBigApple/Downloads/gun-gunshot-01.wav')
os.path.join('/Users/TheBigApple/Downloads/make_call.py', '/Users/TheBigApple/Downloads/machine-gun-02.wav')
os.path.join('/Users/TheBigApple/Downloads/make_call.py', '/Users/TheBigApple/Downloads/machine-gun-01.wav')
os.path.join('/Users/TheBigApple/Downloads/make_call.py', '/Users/TheBigApple/Downloads/Prepared SFX Library/1911/A_34P.wav')
os.path.join('/Users/TheBigApple/Downloads/make_call.py', '/Users/TheBigApple/output.wav')
CHUNK = 1087
FORMAT = pyaudio.paInt16
CHANNELS = 1
WAVE_OUTPUT_FILENAME = "output.wav"
RATE = 2000
RECORD_SECONDS = 10
p = pyaudio.PyAudio()
wf = wave.open("output.wav", 'wb')
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK,
output=True)
frames = []
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
data = scipy.io.wavfile.read("output.wav")
wf.setnchannels(1)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.close()
在这条线上:
data = scipy.io.wavfile.read('output.wav'):
我收到以下错误:
/Users/TheBigApple/PycharmProjects/untitled1/venv/bin/python /Users/TheBigApple/Downloads/make_call.py
Traceback (most recent call last):
File "/Users/TheBigApple/Downloads/make_call.py", line 206, in <module>
data = scipy.io.wavfile.read("output.wav")
File "/Users/TheBigApple/PycharmProjects/untitled1/venv/lib/python3.7/site-packages/scipy/io/wavfile.py", line 236, in read
file_size, is_big_endian = _read_riff_chunk(fid)
File "/Users/TheBigApple/PycharmProjects/untitled1/venv/lib/python3.7/site-packages/scipy/io/wavfile.py", line 168, in _read_riff_chunk
"understood.".format(repr(str1)))
ValueError: File format b''... not understood.
Process finished with exit code 1
解决方案
推荐阅读
- rust - 如何在 Rust 中正确表示基于堆栈的语言?
- ruby-on-rails - Rails 生成器不会在销毁时删除新创建的文件夹
- java - 如何使用 CompletableFuture 异步发送多个请求并返回成功?
- ruby-on-rails - Rails Sunspot Solr reindex 仅在 prod 上缓慢,但在 staging 和 local
- python - Julia - python pickle - cifar-10 数据
- php - 将json转换为symfony php
- visual-studio-code - VS Code 提示错误的代码段
- python - 迭代多索引行和列DataFrame
- php - 在wordpress中重写URL 2次
- wpf - 如何让很少发生的 WPF 异常更频繁地重现?