auto_speech_recognition 如何处理识别 bytes 数据

我在使用modelscope 处理音频数据并识别为文字,遇到了以下情况:
文档中说audio_in 可以输入 wav的bytes数据,我测试了一下,使用这种方式输入,识别的结果完全不对。示例代码如下:

from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks

inference_pipeline = pipeline(
    task=Tasks.auto_speech_recognition,
    model='damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch')


with open('temp/recorded_audio.wav','rb') as wav_file:
    wav_bytes = wav_file.read()
rec_result = inference_pipeline(audio_in=wav_bytes)
print(rec_result)

如果audio_in 使用本地文件路径,则识别的结果是正确的,请问出现这种情况是哪里设置或者代码有问题吗

展开
收起
游客csyitfsagto56 2023-08-18 16:36:08 409 分享 版权
1 条回答
写回答
取消 提交回答
  • auto_speech_recognition 可以识别 bytes 数据,但是需要设置 audio_format 参数为 bytes。

    设置之后,可以通过传入 bytes 数据来进行识别。

    from auto_speech_recognition import AutoSpeechRecognition

    创建 AutoSpeechRecognition 对象

    asr = AutoSpeechRecognition()

    设置 audio_format 参数为 bytes

    asr.audio_format = 'bytes'

    读取 bytes 数据

    with open('some_audio.bytes', 'rb') as f:
    audio = f.read()

    进行识别

    result = asr.recognize(audio)

    打印结果

    print(result)
    得到的结果为字符串,表示识别到的文本。

    2023-09-21 10:31:00
    赞同 展开评论

包括语音识别、语音合成、语音唤醒、声学设计及信号处理、声纹识别、音频事件检测等多个领域

热门讨论

热门文章

还有其他疑问?
咨询AI助理