首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pyaudio音频生成空白.wav文件

pyaudio音频生成空白.wav文件
EN

Stack Overflow用户
提问于 2019-10-03 10:01:55
回答 2查看 196关注 0票数 1
代码语言:javascript
运行
复制
import pyaudio
import wave

CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"

p = pyaudio.PyAudio()

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

print("* recording")

frames = []

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

print("* done 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()
# close PyAudio (7)
p.terminate()

已成功生成大小约为output.wav的文件。881KB。然而,当我播放它时,它是空白的。

目前,我正在尝试通过我的MacBook专业版的内置麦克风录制音频。

有人能帮我一下吗?

EN

回答 2

Stack Overflow用户

发布于 2019-10-03 12:54:27

事实证明,这与操作系统有关。我试着在一台Ubuntu机器上执行同样的事情,它起作用了。在macOS Catalina上,它生成空白文件。

我需要更深入地研究一下macOS来找出问题所在。

票数 0
EN

Stack Overflow用户

发布于 2020-05-14 06:01:35

我也有同样的问题,它将工作,如果您授予终端访问您的麦克风!

如果终端没有出现在麦克风权限的系统首选项列表中,并且它没有请求权限(Mojave/Catalina上的问题),请通过以下方式打开它:

代码语言:javascript
运行
复制
open /System/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal

然后运行一个使用麦克风的程序。

代码语言:javascript
运行
复制
sox -d -d 

(注意:您需要安装SoX。这个特定的命令可以让你听到你的麦克风输入。你也可以使用pyaudio,FFmpeg,ecasound等)

这应该会触发它的请求。如果这不起作用,请尝试在不同的命令行上运行该命令,例如iTerm2。这是一个非常类似于Catalina上Audacity的问题和解决方案。但我不确定确切的原因是什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58211407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档