语音识别LinuxSDK(C++)识别越来越慢
happierb 发布于2018-01 浏览:2347 回复:6
0
收藏

问题:

使用linux-cpp-sdk.3.0.1.tar.gz中的 asrDemo 对语音流进行识别测试时,会有一个奇怪的现象——识别开始时间会越来越晚。当连续使用1-2分钟后,当一句话说完后好几秒钟了,识别竟然还没开始。

好像语音或识别由于某种原因后延了,而且这个后延时间越来越大。

-------------------------------------------------

测试环境:

ubuntu 16.04 , g++4.9

-------------------------------------------------

重现步骤:

1,修改 recog_one_file() 文件中 string filename = "../pcm/test.pcm";

2,打开终端,sample/asrDemo/run 文件夹下执行(建立管道文件,并录音):

mkfifo ../pcm/test.pcm ; arecord -f S16_LE -r 16000 > ../pcm/test.pcm

3,打开另一个终端,sample/asrDemo/run 文件夹下执行识别任务:

bash build_and_run.sh

收藏
点赞
0
个赞
共6条回复 最后由用户已被禁言回复于2022-04
#7ccccc2012ccccc回复于2019-05
#3 happierb回复
我们自己搞好了,虽然仍然不是很明白。 用实时音频流的话,需要将usleep禁用掉。 我们猜测这个usleep只是用于传输语音文件时候用的,可能是用来模拟实时音频流的。 [代码]
展开

你好,你通过管道方式解决语音实时传输,传输效率如何?

0
#6free小火苗回复于2019-05

禁用掉会有影响么?有usleep(sleep_ms * 1000);在的话,一个音频识别太慢了。

0
#5happierb回复于2018-05

整理后的声卡实时语音流识别方法如下,共各位参考:

1,修改 recog_one_file() 文件中

string filename = "/tmp/test.pcm";

2,禁用掉源码中的usleep

if (sleep_ms > 0) { //上次_post_data欠的sleep
                //cout << "sleep :"<

3,打开终端,执行(建立管道文件,对声卡进行音频采集,直接输出到管道文件):

mkfifo /tmp/test.pcm ; arecord -f S16_LE -r 16000 > /tmp/test.pcm

4,打开另一个终端,执行识别任务:

bash build_and_run.sh
0
#4happierb回复于2018-05

强烈要求技术团队出一个基于真实的音频流的demo。

0
#3happierb回复于2018-05

我们自己搞好了,虽然仍然不是很明白。

用实时音频流的话,需要将usleep禁用掉。

我们猜测这个usleep只是用于传输语音文件时候用的,可能是用来模拟实时音频流的。

            if (sleep_ms > 0) { //上次_post_data欠的sleep
                //cout << "sleep :"<
0
#2fujiayi1984回复于2018-01

看下代码中对于usleep的调用,打印下每次识别的sleep时间

0
TOP
切换版块