Используя Google-Speech-to-Text, я могу транскрибировать аудиоклип с параметрами по умолчанию.Тем не менее, я получаю сообщение об ошибке при использовании тега enable_speaker_diarization для профилирования отдельных динамиков в аудиоклипе.Google документирует это здесь Это длинный аудиоклип, поэтому я использую асинхронный запрос, который Google рекомендует здесь
Мой код -
def transcribe_gcs(gcs_uri):
from google.cloud import speech
from google.cloud import speech_v1 as speech
from google.cloud.speech import enums
from google.cloud.speech import types
client = speech.SpeechClient()
audio = types.RecognitionAudio(uri = gcs_uri)
config = speech.types.RecognitionConfig(encoding=speech.enums.RecognitionConfig.AudioEncoding.FLAC,
sample_rate_hertz= 16000,
language_code = 'en-US',
enable_speaker_diarization=True,
diarization_speaker_count=2)
operation = client.long_running_recognize(config, audio)
print('Waiting for operation to complete...')
response = operation.result(timeout=3000)
result = response.results[-1]
words_info = result.alternatives[0].words
for word_info in words_info:
print("word: '{}', speaker_tag: {}".format(word_info.word, word_info.speaker_tag))
После использования -
transcribe_gcs('gs://bucket_name/filename.flac')
Я получаю сообщение об ошибке
ValueError: Protocol message RecognitionConfig has no "enable_speaker_diarization" field.
Я уверен, что это как-то связано с библиотеками, я использовал все варианты, которые мог найти, например
from google.cloud import speech_v1p1beta1 as speech
from google.cloud import speech
Но я продолжаю получать ту же ошибку.Примечание. Я уже прошел аутентификацию с использованием файла JSON до запуска этого кода.