You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SOX检测静音启停录制:命令行正常但Python脚本无输出问题

解决SOX录制功能在Python脚本中失效的问题

命令行中rec命令能正常实现"声启停录"功能,但用sox库调用时无反应,核心原因是**rec是SOX专用录制入口,而sox.core.sox()调用的是通用sox命令,参数结构不匹配**。以下是两种解决方法:

方案1:直接调用系统rec命令(推荐,和命令行逻辑完全一致)

用subprocess直接执行已验证的命令,绕过sox库的参数适配问题:

import subprocess

cmd = ['rec', 'recording.wav', 'rate', '32k', 'silence', '1', '0.1', '2%', '1', '3.0', '2%']
subprocess.run(cmd, check=True)

方案2:调整sox库的参数适配sox命令

如果坚持用sox库,需修正参数结构:

  • 移除多余的-t wav(输出文件后缀已指定格式,SOX会自动识别)
  • 调整参数顺序,确保输入设备(-d)、输出文件在前,效果参数在后

修改后的代码:

import sox

args = ['-d', 'recording.wav', 'rate', '32k', 'silence', '1', '0.1', '2%', '1', '3.0', '2%']
sox.core.sox(args)

额外检查项:

  • 确认sox库已正确安装(pip install sox)
  • 确保脚本有麦克风/音频设备访问权限(比如Linux下需加入audio用户组,Windows下需授权麦克风权限)

内容的提问来源于stack exchange,提问作者Hankp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 08:35:02