IOError: [Errno 输入溢出] -9981

2023-12-10

我试图在 Raspberry Pi B 型板上的 Raspbian 上执行 PyAudio python 捕获程序,但出现错误:

Traceback (most recent call last):
  File "/home/pi/pythonsound/record.py", line 35, in <module>
    data = stream.read(CHUNK)
  File "/usr/local/lib/python2.7/dist-packages/pyaudio.py", line 605, in read
    return pa.read_stream(self._stream, num_frames)
IOError: [Errno Input overflowed] -9981

还有一些其他建议,但效果不佳 这是我尝试过的, 这是代码

import pyaudio
import wave
import sys
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
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()

这是我的 USB 声卡设备信息,

{'defaultSampleRate': 44100.0, 
'defaultLowOutputLatency': 0.011609977324263039, 
'defaultLowInputLatency': 0.011609977324263039, 
'maxInputChannels': 1L, 
'structVersion': 2L, 
'hostApi': 0L, 
'index': 0, 
'defaultHighOutputLatency': 0.046439909297052155, 
'maxOutputChannels': 2L, 
'name': u
'USB PnP Sound Device: USB Audio (hw:0,0)', 
'defaultHighInputLatency': 0.046439909297052155}

你能指导我解决这个问题吗?


在阅读了不同用户的经验和他们的修正后,只需更改参数值即可。

正如上述专家所描述的,实际原因

IOError: [Errno Input overflowed] -9981

所以我也开始增加 CHUNK 的值,最后我也成功克服了这个错误。 现在我修正后的编码是:

import pyaudio, wave, time, sys
from datetime import datetime

CHUNK = 8192
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 5

current_time = str(datetime.now())  #"Date/Time for File Name"
current_time = "_".join(current_time.split()).replace(":","-")
current_time = current_time[:-7]
WAVE_OUTPUT_FILENAME = 'Audio_'+current_time+'.wav'

p = pyaudio.PyAudio()

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

print("* recording")

frames = []
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
    print i
    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()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IOError: [Errno 输入溢出] -9981 的相关文章

随机推荐

  • 从 1:n 表中的单个查询中检索最新注释(按时间戳)

    假设我有两个表 用户和注释 假设架构如下所示 users id name field2 field3 notes id user id subject heading body timestamp 我想要做的是选择每个用户 以及每个用户根据
  • 如何避免在 .NET Windows 窗体中重复创建表单?

    我正在使用 NET Windows 窗体 我的 MDI 父窗体包含菜单 如果单击菜单 将显示表单 到现在为止没有问题 UserForm uf new UserForm uf Show uf MdiParent this 如果我再次单击菜单
  • Paho MQTT 客户端在设备锁定后断开连接

    我目前正在开发一个小型 紧急按钮 应用程序 该应用程序应该在医疗机构中运行 由于该项目的假设之一是独立于 Internet 因此我决定采用 MQTT 并在本地 WLAN 中设置服务器 我已经实现了 Paho Android 服务 效果非常好
  • 在同一函数中多次使用 self

    我与借用检查员发生争执 我的问题有点复杂 但对于这种情况 我使用类似缓冲区的结构 我的缓冲区有一个功能safe write to slot首先检索第一个空元素 返回 Ok 位置 或 Err 错误消息 结果 然后将值写入该检索到的位置 然而问
  • 显示主机的自定义名称

    我有一本用于使用 EC2 实例的 Ansible 手册 我正在使用动态库存 ec2 py 获取我想要使用的实例组 hosts tag Service Foo 当我运行它时 它会产生如下输出 GATHERING FACTS ok 54 149
  • 为什么 tf.assign() 会减慢执行时间?

    今天 我在 Tensorflow 中为 LSTM 添加了学习率衰减 I change train op tf train RMSPropOptimizer lr rate minimize loss to lr tf Variable 0
  • Clickhouse 不返回列标题

    我正在尝试从 clickhouse 获取一些关系数据并在 pandas 中使用 它有效 但 pd read sql query 返回数据帧 其中列名是第一行的值 相反 我希望看到关系表中命名的列名称 我用 Postgres 做了同样的尝试
  • 如何将 wchar_t 复制到 NSString 中?

    我使用 stringWithFormat ls 来执行此操作 但我只看到复制的第一个字符 这让我认为它仍然假设它是单字节字符 有任何想法吗 Use initWithBytes length encoding 你必须知道编码wchar t使用
  • 如何在R中编写OR条件

    我不知道我该怎么写或条件 inside which在 R 中 这个说法是行不通的 which value gt 100 value lt 200 我知道这是非常基本的事情 但我无法找到正确的解决方案 每个值要么大于 100 要么小于或等于
  • MySQL 使用 LIKE 搜索带空格的字符串

    我正在我的网站上建立一个搜索 我注意到当您在搜索中输入多个单词时它不起作用 这是查询的要点 SELECT FROM blog WHERE content LIKE keyword OR title LIKE keyword ORDER BY
  • 如何用 C# 制作字体组合框?

    我想在 c NET 4 5 Windows 窗体应用程序 注意 不是 WPF 中创建一个组合框 它显示系统上所有 truetype 安装的字体 并且每个字体都使用它所代表的字体进行格式化 Times 使用 Times 进行格式化 Arial
  • Visual C++:将int转换为字符串指针

    如何在 Visual C 中将整数转换为字符串指针 使用字符串流 include
  • 从 TSQL 调用 Web 服务的最佳方式

    从 TSQL 调用 Web 服务的最佳方式是什么 我想编写一些调用网络服务的触发器 有没有普遍使用的最佳实践 需要在 SQL Server 2005 和 2008 中处理实现 从我所听到的一切来看 从数 据库 内 的任何地方进行网站调用都不
  • 当位置为负数时如何有滚动条?

    当位置为正时 滚动条可以正常工作 但当 left 为负数时 滚动条不会出现 当元素位于左侧或右侧时 如何才能有滚动条 样本在这里 container position relative width 350px height 250px ba
  • 多维数组差异

    我有 2 个数组 big array array array array correct gt FALSE answer gt false answer1 array correct gt FALSE
  • 序列A中的A代表什么?

    什么是sequenceATraversable 代表什么 为什么最后是大写A 我已经学习 Haskell 几个月了 这是困扰我一段时间的事情之一 A 代表Applicative 如在约束中sequenceA s type sequenceA
  • 字符串资源换行 /n 不可能吗?

    似乎无法添加新行 n到 XML 资源字符串 还有另一种方法可以做到这一点吗 使用反斜杠而不是正斜杠 n
  • Flutter:使用凭据发布请求

    如何从 flutter 发出发布请求 我需要使用用户的电子邮件地址和密码对用户进行身份验证 请帮忙 尝试使用以下代码 http post url body email email password password then respons
  • 使用按位运算符更改符号

    如何使用按位运算符更改 int 的符号 显然我们可以使用x 1 or x 1 有没有最快的方法来做到这一点 我做了一个小测试 如下所示 只是为了好奇 public class ChangeSign public static void ma
  • IOError: [Errno 输入溢出] -9981

    我试图在 Raspberry Pi B 型板上的 Raspbian 上执行 PyAudio python 捕获程序 但出现错误 Traceback most recent call last File home pi pythonsound