chenkui164 / FastASR

这是一个用C++实现ASR推理的项目,它依赖很少,安装也很简单,推理速度很快,在树莓派4B等ARM平台也可以流畅的运行。 支持的模型是由Google的Transformer模型中优化而来,数据集是开源wenetspeech(10000+小时)或阿里私有数据集(60000+小时), 所以识别效果也很好,可以媲美许多商用的ASR软件。
Apache License 2.0
482 stars 74 forks source link

Segmentation fault #49

Closed ben-8878 closed 1 year ago

ben-8878 commented 1 year ago

使用fastasr python包,测试 python examples/k2_rnnt2_cli.py models/k2_rnnt2_cli/ test.wav 第一次运行报错: “Audio time is 201.13125s. len is 3218100. Model initialization takes 7.2s. Segmentation fault (core dumped)” 第二次运行,没有改任何东西,正常输出结果。

chenkui164 commented 1 year ago

是这样的Python的里面没有做vad,所以输入太长会导致内存溢出,从而模型崩溃

ben-8878 commented 1 year ago

是这样的Python的里面没有做vad,所以输入太长会导致内存溢出,从而模型崩溃

那我自己加一个,对c++,不太熟悉,不知道你C++是怎么加的VAD,是音整个音频做了VAD之后 for循环送入解码吗?

chenkui164 commented 1 year ago

是的。先对整段音频做,然后每一句分别送入模型,每句话调用前,模型需要reset一下,然后在调用forward

p.reset() result = p.forward(data)

chenkui164 commented 1 year ago

我今天看资料发现,在编译的时候使用-march=core-avx2优化,推理速度可以加倍。目前仅支持x64 Linux环境,感兴趣可以试一下

cmake -DCMAKE_BUILD_TYPE=Release .. -DCMAKE_CXX_FLAGS_RELEASE="-march=core-avx2 -O3"

ben-8878 commented 1 year ago

我今天看资料发现,在编译的时候使用-march=core-avx2优化,推理速度可以加倍。目前仅支持x64 Linux环境,感兴趣可以试一下

cmake -DCMAKE_BUILD_TYPE=Release .. -DCMAKE_CXX_FLAGS_RELEASE="-march=core-avx2 -O3"

好的

chenkui164 commented 1 year ago

我今天看资料发现,在编译的时候使用-march=core-avx2优化,推理速度可以加倍。目前仅支持x64 Linux环境,感兴趣可以试一下 cmake -DCMAKE_BUILD_TYPE=Release .. -DCMAKE_CXX_FLAGS_RELEASE="-march=core-avx2 -O3"

好的

不用试了,好像是我搞错了。。。

ben-8878 commented 1 year ago

是的。先对整段音频做,然后每一句分别送入模型,每句话调用前,模型需要reset一下,然后在调用forward

p.reset() result = p.forward(data)

我调试这个

ben-8878 commented 1 year ago

@chenkui164 这块只能输入numpy类型的吗,p.forward(partdata),webrtc vad输入的是字节,字节再转成numpy,识别效果下降了。。。。

ben-8878 commented 1 year ago

@chenkui164 这块只能输入numpy类型的吗,p.forward(partdata),webrtc vad输入的是字节,字节再转成numpy,识别效果下降了。。。。

搞定了,有时间我提个PR。