python 获取麦克风声音_如何在python和ffmpeg或类似的地方读取实时麦克风音量

我试图近乎实时地阅读

Python中USB麦克风音频的音量.

我有件,但无法弄清楚如何把它放在一起.

如果我已经有一个.wav文件,我可以简单地使用wavefile读取它:

from wavefile import WaveReader

with WaveReader("/Users/rmartin/audio.wav") as r:

for data in r.read_iter(size=512):

left_channel = data[0]

volume = np.linalg.norm(left_channel)

print volume

这很好用,但我想实时处理来自麦克风的音频,而不是文件.

所以我的想法是使用像ffmpeg这样的东西将实时输出PIPE到WaveReader,但我的Byte知识有点缺乏.

import subprocess

import numpy as np

command = ["/usr/local/bin/ffmpeg",

'-f', 'avfoundation',

'-i', ':2',

'-t', '5',

'-ar', '11025',

'-ac', '1',

'-acodec','aac', '-']

pipe = subprocess.Popen(command, stdout=subprocess.PIPE, bufsize=10**8)

stdout_data = pipe.stdout.read()

audio_array = np.fromstring(stdout_data, dtype="int16")

print audio_array

这看起来很漂亮,但它做的并不多.它失败并显示[NULL @ 0x7ff640016600]无法为’pipe:’错误找到合适的输出格式.

我认为这是一个相当简单的事情,因为我只需要检查音量的音量.

有人知道如何完成这个吗? FFMPEG不是必需的,但它确实需要在OSX& Linux操作系统.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值