Я пытаюсь извлечь текст из медиа-файла mp4, загруженного с YouTube.Поскольку я использую облачную платформу Google, я подумал, что стоит попробовать облачную речь Google.
После всех установок и настроек я скопировал следующий фрагмент кода, чтобы начать работу с:
with io.open(file_name, 'rb') as audio_file:
content = audio_file.read()
audio = types.RecognitionAudio(content=content)
config = types.RecognitionConfig(encoding=enums.RecognitionConfig.AudioEncoding.LINEAR16, sample_rate_hertz=16000, language_code='en-US')
response = client.long_running_recognize(config, audio)
Но я получил следующую ошибку относительно размера файла:
InvalidArgument: 400 Встроенное аудио превышает ограничение длительности.Пожалуйста, используйте GCS URI.
Затем я прочитал, что я должен использовать потоки для больших медиа-файлов.Итак, я попробовал следующий фрагмент кода:
with io.open(file_name, 'rb') as audio_file:
content = audio_file.read()
#In practice, stream should be a generator yielding chunks of audio data.
stream = [content]
requests = (types.StreamingRecognizeRequest(audio_content=chunk)for chunk in stream)
config = types.RecognitionConfig(encoding=enums.RecognitionConfig.AudioEncoding.LINEAR16,sample_rate_hertz=16000,language_code='en-US')
streaming_config = types.StreamingRecognitionConfig(config=config)
responses = client.streaming_recognize(streaming_config, requests)
Но все же я получил следующую ошибку:
InvalidArgument: 400 Неверный аудиоконтент: слишком длинный.
Итак, кто-нибудь может предложить способ расшифровки файла mp4 и извлечения текста.У меня нет сложных требований к очень большому медиафайлу.Медиа-файл может быть максимум 10-15 минут.Спасибо