Я использую API преобразования речи в текст в облаке Google с включенной диаризацией, см. Пример по ссылке ниже:
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 ГБ) файлы flac, которые содержат несколько часов аудио.Также важно отметить, что все они подготовлены с использованием одного и того же сценария предварительной обработки, и неясно, каким образом они могут отличаться, чтобы получить разные результаты от API (то есть тот факт, что некоторые получают метки докладчиков, а другие нет).