# #python #speech-recognition #speech-to-text #google-api-python-client #google-cloud-speech
Вопрос:
Я пытаюсь создать приложение на Python для транскрипции аудиозаписей с помощью API преобразования речи в текст Google Cloud. Поскольку это касается разговоров между несколькими ораторами, я хотел бы реализовать диаризацию динамиков. Однако, похоже, что STT предлагает диаризацию только на уровне слов:
Результат транскрипции помечает каждое слово номером, присвоенным отдельным говорящим. Слова, произнесенные одним и тем же оратором, имеют одинаковый номер.
Поскольку я хочу записывать разговоры, я предпочитаю, чтобы запись велась на уровне предложений. Я пробовал что-то подобное (на основе этого примера):
# Handling audio stream happens before this
transcript = ''
tag = 1
speaker = ''
for word_info in words_info:
if word_info.speaker_tag == tag:
speaker = speaker ' ' word_info.word
else:
transcript = 'speaker {}: {}'.format(tag, speaker) 'n'
tag = word_info.speaker_tag
speaker = ' ' word_info.word
transcript = 'speaker {}: {}'.format(tag, speaker)
Однако такой подход затрудняет определение того, когда один оратор заканчивает, а другой начинает. Единственный способ определить это основан на изменении между динамиками. Это может привести к некоторым проблемам в будущем. Это также затрудняет использование некоторых функций SDK, таких как автоматическое добавление знаков препинания.
Есть ли лучший способ подойти к этому?