我正在开展语音识别项目,我的程序可以识别音频文件中的单词。现在我需要处理来自麦克风的音频流。我正在使用QAudio从麦克风获取声音数据,QAudio具有启动过程的功能。此start(* QBuffer)函数将数据写入QBuffer(继承自QByteArray)对象。当我不处理连续流时,我可以随时停止从麦克风录音并将整个数据从QBuffer复制到QByteArray中,我可以做任何我想做的事情。但在连续流中,QBuffer的大小随时间增加,并在15分钟内变为100Mb。 所以我需要使用某种循环缓冲区,但我无法弄清楚如何使用这个启动(* QBuffer)函数。我还避免在语音继续的时刻切断流声音。
处理语音识别的流式音频数据的基本方法是什么? 是否可以将start(* QBuffer)函数更改为start(* QByteArray)并使该函数覆盖该QByteArray以构建和循环缓冲区?
提前致谢
答案 0 :(得分:0)
boost.com提供循环缓冲区
http://www.boost.org/doc/libs/1_37_0/libs/circular_buffer/doc/circular_buffer.html#briefexample
它应该满足你的需要
阿兰