微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在音频文件语音到文本 microsoft sdk

如何解决在音频文件语音到文本 microsoft sdk

我正在使用 Speech-To-Text Microsoft SDK for Javascript 创建 VTT 文件SpeechRecognizer 类有一个名为 recognized方法,它有一个 JSON,其中包含单词的偏移量和持续时间,如果在音频文件

例如,如果有 3 分钟的音频并且在前 10 秒内有人说话,这意味着这些第一个识别的单词将有适当的偏移,但如果在 1.5 分钟内没有人说话,然后是直线在这个间隙之后有人开始说话,那么下一个识别的单词将有一个无效的偏移量(而不是 90 秒的偏移量,而是 1.8 秒的偏移量)。

有没有办法解决这个问题?

这是正在使用的代码

    const sdk = require("microsoft-cognitiveservices-speech-sdk");
    
    let recognizer = new sdk.SpeechRecognizer(speechConfig,audioConfig);
    
    recognizer.recognized = (s,e) => {
      if (e.result.reason == sdk.ResultReason.RecognizedSpeech) {
        const resultJSON = JSON.parse(e.result.json);
        const offset = resultJSON.Offset * Math.pow(10,-7);
        console.log('recognized! offset: ',offset);
        console.log('event! offset: ',e.offset);
        console.log('event! offset: ',resultJSON['NBest'][0]['Words']);
        const duration = offset + resultJSON.Duration * Math.pow(10,-7);
        const displayText = resultJSON.displayText;
        vttInstance.add(offset,duration,displayText);
      } else if (e.result.reason == sdk.ResultReason.NoMatch) {
        console.log("NOMATCH: Speech Could not be recognized.");
      }
    };

    recognizer.startContinuousRecognitionAsync();

下图是具有上述确切示例场景的示例输出。 第二个单词数组应包含从 103.65 秒开始的偏移量。 (注意:值以第 100 纳秒为单位)。

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。