首页 > 解决方案 > 将音频流切割成话语

问题描述

我想用我的烧瓶后端中的 python 将我的前端音频流拆分为话语。在烧瓶后端,我使用webrtcvad python 模块来执行此操作,但显然我的帧长度不是正确的大小。我需要一个 10ms、20ms 或 30ms 的帧大小,采样率为 8k、16k 或 32k。

我认为这是问题所在,但我不确定。

在前端,我使用它navigator.getUserMedia作为源并从中获取音频audioContext.createMediaStreamSource(navigator.getUserMedia)。我将音频输入分析器,采样大小为每块 2048 个样本。

analyserNode = audioContext.createAnalyser();
analyserNode.fftSize = 2048;
inputPoint.connect( analyserNode );

使用 16k 的采样率和 20ms(每秒 50 个块)的所需帧大小,我的块大小应该是 320。分析器使用快速傅立叶变换,块大小只能是 2^x,这意味着它不能320。

有人知道如何解决我的问题吗?

标签: pythonaudiofftaudiocontext

解决方案


推荐阅读