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

谷歌语音分类标签一直在变化

如何解决谷歌语音分类标签一直在变化

我正在构建一个使用 Google Speech-To-Text 并启用 speaker diarization 来转录实时音频流的应用程序(有关背景信息,请参阅之前的问题:12、{ {3}})。理想情况下,输出应如下所示:

00:00,speaker 1: 'Hello Peter,how old are you?'
00:08,speaker 2: 'Hello Mary,I am 20 years old.'
00:14,speaker 1: 'Where do you live?'
00:19,speaker 2: 'I live in New York.'

虽然我当前的 Google STT 设置相对较好地转录了输入音频,但扬声器分类并没有像我预期的那样工作。 Google 会在每个回复中发送完整的成绩单,但每次演讲者标签演讲者 1 和演讲者 2)都会针对先前识别的文本进行更改。我已经实现了 Google 的示例 Python 脚本:

    # google speech client is configured and instantiated before this

    response = client.recognize(config=config,audio=audio)
        
        result = response.results[-1]
        
        words_info = result.alternatives[0].words
        
        for word_info in words_info:
            print(
                u"word: '{}',speaker_tag: {}".format(word_info.word,word_info.speaker_tag)
            )

这是第一个响应的示例输出

word: 'hey',speaker_tag: 1
word: 'Peter',speaker_tag: 1
word: 'hello',speaker_tag: 2
word: 'Mary',speaker_tag: 2

但下一个回复给出:

word: 'hey',speaker_tag: 1
word: 'Mary',speaker_tag: 1
word: 'how',speaker_tag: 2
word: 'are',speaker_tag: 2
word: 'you',speaker_tag: 2
word: 'doing',speaker_tag: 2

当新音频作为输入到达时,模型是否不断更新?如果是这样,在一个音频流中创建具有多个扬声器的转录服务的好方法是什么?

我不指望有灵丹妙药,但希望有人能指出我正确的方向。

解决方法

你应该添加这个 ::: enable_word_time_offsets=True

    encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16,sample_rate_hertz=44100,language_code="en-US",enable_speaker_diarization=True,enable_word_time_offsets=True,diarization_speaker_count=2,)

for word_info in words_info:
    print(
        u"word: '{}',speaker_tag: '{}',start_time: '{}','end_time: '{}'".format(word_info.word,word_info.speaker_tag,word_info.start_time,word_info.end_time)
    )

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