Google Cloud Speaker Diarization无法处理某些文件

时间:2019-02-17 17:04:42

标签: google-cloud-platform speech-to-text

我正在运行启用了差异化功能的google cloud语音文本API,请参见以下链接中的示例:

https://cloud.google.com/speech-to-text/docs/multiple-voices#enabling_speaker_diarization_in_a_request

请注意,我正在使用此函数来调用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中获得不同的结果(即有些人获得了演讲者标签,而另一些人没有获得演讲者标签)

0 个答案:

没有答案