如何解决谷歌语音分类标签一直在变化
我正在构建一个使用 Google Speech-To-Text 并启用 speaker diarization 来转录实时音频流的应用程序(有关背景信息,请参阅之前的问题:1、2、{ {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 举报,一经查实,本站将立刻删除。