作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 pyAudioAnalysis 从 HTTP 流中实时分析音频流。我的目标是使用这个库中的过零率 (ZCR) 和其他方法来识别流中的事件。
pyAudioAnalysis 仅支持来自文件的输入,但将 http 流转换为 .wav 会产生很大的开销和我想避免的临时文件管理。
我的方法如下:
使用 ffmpeg,我能够将原始音频字节放入子进程管道。
try:
song = subprocess.Popen(["ffmpeg", "-i", "https://media-url/example", "-acodec", "pcm_s16le", "-ac", "1", "-f", "wav", "pipe:1"],
stdout=subprocess.PIPE)
然后我使用 pyAudio 缓冲了这些数据,希望能够使用 pyAudioAnalysis 中的字节
CHUNK = 65536
p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paInt16,
channels=1,
rate=44100,
output=True)
data = song.stdout.read(CHUNK)
while len(data) > 0:
stream.write(data)
data = song.stdout.read(CHUNK)
但是,将此数据输出输入 AudioBasicIO.read_audio_generic() 会产生一个空的 numpy 数组。
最佳答案
你可以试试我的 ffmpegio
包裹:
pip install ffmpegio
import ffmpegio
# read entire stream
fs, x = ffmpegio.audio.read("https://media-url/example", ac=1, sample_fmt='s16')
# fs - sampling rate
# x - [nx1] numpy array
# or read a block at a time:
with ffmpegio.open(["https://media-url/example", "ra", blocksize=1024, ac=1, sample_fmt='s16') as f:
fs = f.rate
for x in f:
# x: [1024x1] numpy array (or shorter for the last block)
process_data(x)
注意,如果需要归一化样本,可以设置
sample_fmt
至
'flt'
'dbl'
.
import subprocess as sp
import numpy as np
song = sp.Popen(["ffmpeg", "-i", "https://media-url/example", "-f", "s16le","-c:a", "pcm_s16le", "-ac", "1", "pipe:1"], stdout=sp.PIPE)
CHUNK = 65536
n = CHUNK/2 # 2 bytes/sample
data = np.frombuffer(song.stdout.read(CHUNK),np.int16)
while len(data) > 0:
data = np.frombuffer(song.stdout.read(CHUNK),np.int16)
我不能说
pyAudioAnalysis
但我怀疑它需要样本而不是字节。
关于python - pyAudioAnalysis 可以用于实时 http 音频流吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71669701/
因此,我尝试使用pyAudioAnalysis library做一个基本的情绪分类器,并且我已经收集了一个小的数据样本来测试它是否有效。我的代码如下: from pyAudioAnalysis imp
我正在尝试使用 pyAudioAnalysis 从 HTTP 流中实时分析音频流。我的目标是使用这个库中的过零率 (ZCR) 和其他方法来识别流中的事件。 pyAudioAnalysis 仅支持来自文
我正在尝试提取 wav 文件的一些特征,我有这个: https://s3-us-west-2.amazonaws.com/music-emotions/ambient/13+Clock+in+the+
我是一名优秀的程序员,十分优秀!