我正在运行启用了差异化功能的google cloud语音文本API,请参见以下链接中的示例:
请注意,我正在使用此函数来调用API:
def transcribe_audio(uri):
print(f'transcribing {uri}...')
client = speech.SpeechClient()
audio = speech.types.RecognitionAudio(uri=uri)
config = speech.types.RecognitionConfig(
encoding=speech.enums.RecognitionConfig.AudioEncoding.FLAC,
language_code='en-US',
enable_speaker_diarization=True,
diarization_speaker_count=2)
response = client.long_running_recognize(config, audio)
return list(response.result().results)
解析输出时,扬声器标签应该出现在结果列表的最后一个元素中。我已经用一个音频文件确认了这一点,但是当我尝试将其与其他音频文件一起运行时,结果中没有扬声器标签。实际上,当我尝试使用其他文件的API时,结果列表中的最后一个结果并不包含整个文件的记录,而只是一个片段。 我的问题是为什么会发生这种情况,我该如何纠正?
请注意,我的文件是大型(〜1 GB)flac文件,其中包含几个小时的音频。还需要注意的是,它们都是使用相同的预处理脚本编写的,并且尚不清楚它们可能以什么方式差异大到足以从API中获得不同的结果(即有些人获得了演讲者标签,而另一些人没有获得演讲者标签)