0

我正在做一个语音识别项目,我的程序可以识别音频文件中的单词。现在我需要处理来自麦克风的音频流。我正在使用 QAudio 从麦克风获取声音数据,并且 QAudio 具有启动该过程的功能。此 start(* QBuffer) 函数将数据写入 QBuffer(继承自 QByteArray)对象。当我不处理连续流时,我可以随时停止从麦克风录制并将整个数据从 QBuffer 复制到 QByteArray 中,我可以对数据做任何我想做的事情。但在连续流中,QBuffer 的大小随时间增加,并在 15 分钟内变为 100Mb。所以我需要使用某种循环缓冲区,但我不知道如何做到这一点,尤其是使用这个 start(*QBuffer) 函数。

处理流式音频数据以进行语音识别的基本方法是什么?是否可以将 start(*QBuffer) 函数更改为 start(*QByteArray) 并使该函数覆盖该 QByteArray 以构建和循环缓冲区?

提前致谢

4

1 回答 1

0

boost.com 正在提供一个循环缓冲区

http://www.boost.org/doc/libs/1_37_0/libs/circular_buffer/doc/circular_buffer.html#briefexample

它应该满足你的需要

阿兰

于 2013-09-09T14:52:34.927 回答