Tele-AI / TeleSpeech-ASR

388 stars 37 forks source link

提供一个不依赖fairseq和kaldi的runtime #19

Open lovemefan opened 1 month ago

lovemefan commented 1 month ago

https://github.com/lovemefan/telespeech-asr-python

感谢官方团队开源,如果可以的话,希望能够后续能够pr合并

csukuangfj commented 1 month ago

@lovemefan 👍

请问是否支持 torchscript 导出? 如果能的话,我们可以在 https://github.com/k2-fsa/sherpa 提供c++ 的 runtime.

lovemefan commented 1 month ago

@lovemefan 👍

请问是否支持 torchscript 导出? 如果能的话,我们可以在 https://github.com/k2-fsa/sherpa 提供c++ 的 runtime.

好呀好呀,应该是可以的,军哥

csukuangfj commented 1 month ago

@lovemefan 👍

请问是否支持 torchscript 导出? 如果能的话,我们可以在 https://github.com/k2-fsa/sherpa 提供c++ 的 runtime.

好呀好呀,应该是可以的,军哥

太厉害啦!期待torchscript模型的导出脚本

dfengpo commented 1 month ago

非常期待啊

lovemefan commented 1 month ago

@lovemefan 👍 请问是否支持 torchscript 导出? 如果能的话,我们可以在 https://github.com/k2-fsa/sherpa 提供c++ 的 runtime.

好呀好呀,应该是可以的,军哥

太厉害啦!期待torchscript模型的导出脚本

现已支持torchscript导出和onnx导出, 原模型大小约1.2G, onnx int8 导出约326M

csukuangfj commented 1 month ago

太棒啦!

你还写了一个 https://github.com/lovemefan/telespeech-asr-python/blob/main/telespeechasr/onnx/onnx_infer.py 根据这个脚本,要在 sherpa-onnx 里支持它,简直是 a piece of cake. (主要的工作量,就是修改 kaldi-native-fbank, 支持 mfcc)

https://github.com/lovemefan/telespeech-asr-python/blob/main/telespeechasr/onnx/onnx_export.py#L72

            quantize_dynamic(
                model_input=model_path,
                model_output=quant_model_path,
                op_types_to_quantize=["MatMul"],
                per_channel=True,
                reduce_range=False,
                weight_type=QuantType.QUInt8,
            )

有试过 QInt8 么? 根据以往的经验, QUInt8, 在 x86_64 的 cpu 上, 比较慢。

csukuangfj commented 1 month ago

能否把 --vocab_path 这个文件,也传一份到 huggingface? @lovemefan

lovemefan commented 1 month ago

太棒啦!

你还写了一个 https://github.com/lovemefan/telespeech-asr-python/blob/main/telespeechasr/onnx/onnx_infer.py 根据这个脚本,要在 sherpa-onnx 里支持它,简直是 a piece of cake. (主要的工作量,就是修改 kaldi-native-fbank, 支持 mfcc)

https://github.com/lovemefan/telespeech-asr-python/blob/main/telespeechasr/onnx/onnx_export.py#L72

            quantize_dynamic(
                model_input=model_path,
                model_output=quant_model_path,
                op_types_to_quantize=["MatMul"],
                per_channel=True,
                reduce_range=False,
                weight_type=QuantType.QUInt8,
            )

有试过 QInt8 么? 根据以往的经验, QUInt8, 在 x86_64 的 cpu 上, 比较慢。

int8要更慢,我在mac M1的cpu上测试了一个21s的音频,供参考

模型 时间
torch动态图(cpu) 0.7s
torch动态图(mps) 0.46s
torch静态图 (cpu) 1.14s
onnx 1.64s
onnx int8 2.01s
lovemefan commented 1 month ago

能否把 --vocab_path 这个文件,也传一份到 huggingface? @lovemefan

好的军哥,上传了

TTTdas commented 1 month ago

多谢大佬们!后面会进行合并

csukuangfj commented 1 month ago

@TTTdas

期待出流式的模型

csukuangfj commented 1 month ago

https://k2-fsa.github.io/sherpa/onnx/vad/apk-asr-cn.html

这里有 TeleSpeech ASR 模型的 Android 支持。完全本地处理,不要访问网络。

vad + TeleSpeech-ASR

可以直接在手机上安装。

Screenshot 2024-06-04 at 18 18 43

csukuangfj commented 1 month ago

@lovemefan 👍 请问是否支持 torchscript 导出? 如果能的话,我们可以在 https://github.com/k2-fsa/sherpa 提供c++ 的 runtime.

好呀好呀,应该是可以的,军哥

太厉害啦!期待torchscript模型的导出脚本

现已支持torchscript导出和onnx导出, 原模型大小约1.2G, onnx int8 导出约326M

@lovemefan onnx 推理代码,建议用 kaldi-native-fbank 替换掉 kaldifeat. 这样,整个推理代码,就不需要依赖 pytorch 了。

lovemefan commented 1 month ago

@lovemefan 👍 请问是否支持 torchscript 导出? 如果能的话,我们可以在 https://github.com/k2-fsa/sherpa 提供c++ 的 runtime.

好呀好呀,应该是可以的,军哥

太厉害啦!期待torchscript模型的导出脚本

现已支持torchscript导出和onnx导出, 原模型大小约1.2G, onnx int8 导出约326M

@lovemefan onnx 推理代码,建议用 kaldi-native-fbank 替换掉 kaldifeat. 这样,整个推理代码,就不需要依赖 pytorch 了。

好嘞军哥,已经替换掉了

dfengpo commented 1 month ago

后面可以提供dotnet 使用demo吗?

csukuangfj commented 1 month ago

后面可以提供dotnet 使用demo吗?

已经提供了.

请参考 https://github.com/k2-fsa/sherpa-onnx/blob/master/dotnet-examples/offline-decode-files/run-telespeech-ctc.sh

dfengpo commented 1 month ago

太好了