chenkui164
chenkui164
在 Tensor.h 有个方法是dump(), 将需要观察的数据导出到tmp.bin文件。然后用matlab或者python,比对两个版本之间的差异。这个只能逐一排查,并没有好的办法。
> > ab或者python,比对两个版本之间的差异。这个只能逐一排查,并没有好的办法。 > > 这个是 transducer 还是 ctc? 是transducer的,decode method直接用的gready search。
问题找到了,find_max函数没有对max_at初始化。 void findmax(value_t *din, size_t len, value_t *max_value, size_t *max_at) { assert(len > 0); *max_value = din[0]; *max_at = 0; for (size_t index = 1; index < len; ++index) if...
对实数做fft,它的结果是共轭对称的,所以fftw只给出了前面0-256的结果,后面的数是随机的。可以参考官方的解释。http://www.fftw.org/doc/The-1d-Real_002ddata-DFT.html#The-1d-Real_002ddata-DFT
在cmd中输入CHCP 65001即可解决
好的,感谢。我先测试和评估一下
要是噪声大的话,是不是可以先将原始音频过一组低通滤波,滤除高频的噪声?
多线程完全是由openblas管理的可以通过环境变量指定 export OPENBLAS_NUM_THREADS=4 这个领域的问题太专业了,我回答不了。。。。 ~~还有一个因素是内存的频率,机器B显然是台服务器,它每个核心的主频是在2.4G,所以我怀疑他的内存频率也不是很高。 30分钟的语音经过VAD大概有几十句话,或者100多句话,就说明需要将800M的模型从内存搬移到CPU几十次或者100多次,可能性能瓶颈在这里。可能性能是卡在IO上了。但我也是猜的,没有啥证据。。。。~~
fastasr代码里有部分是未进行多线程并行化的。 因为OpenBLAS有pthread版本和OpenMP两个版本。pthread版本性能会比OpenMP版本高一些。使用pthread版本的OpenBLAS,如果fastasr使用OpenMP优化,这两者会产生冲突,反而变的更慢了。
感谢,默认OpenBLAS是pthread版本的