Преобразование видео в текст (стенограмма) с помощью облачной речи Google в текст с помощью приложения Rails

Работа над WebAppon Ruby on Rails. Я хочу получить субтитры для предварительно записанного видео, а также для новых видео, которые собираются записать.

Я реализовал gem 'google-cloud-speech'.

Но теперь я не могу получить текст для своего видео. Я получил предложение из документа Google Cloud API добавить модель, но когда я добавляю model: 'video' в конфигурацию, он говорит, что такого поля model в записи карты инициализации нет.

Мой код без добавления модели приведен ниже.

speech_client = Google::Cloud::Speech.new
config ={ encoding: :LINEAR16,
          sample_rate_hertz: 16000,
          language_code: "en-US",
        }
audio = { uri: @uri }
response = speech.recognize config, audio

что дает мне сообщение об ошибке, как показано ниже.

Google::Gax::RetryError: GaxError Exception occurred in retry method that was not classified as transient, caused by 3:Request contains an invalid argument. from /Users/hiren/.rvm/gems/ruby-2.5.1@Snip/gems/google-gax-1.3.0/lib/google/gax/api_callable.rb:369:in `rescue in block in retryable'

Любая помощь приветствуется.

Спасибо


person Hiren Bhalani    schedule 23.08.2018    source источник


Ответы (1)


Что касается проблемы с моделью, это может быть связано с тем, что модель видео пока недоступен для версии Ruby V1 API, поскольку эта функция является частью версии v1p1beta1.

Что касается вашей проблемы с кодом, я только что сделал пример, показанный здесь успешно. Было бы полезно, если бы вы приложили свой полный код, так как документированный код работает хорошо.

person F10    schedule 23.08.2018
comment
Кажется, медиафайл должен быть в облаке Google? - person Hiren Bhalani; 24.08.2018
comment
Да, в настоящее время доступны только URI облачного хранилища. поддержанный - person F10; 24.08.2018
comment
Можно ли как-то добиться этого, например, напрямую вызывать API без использования Gem. - person Hiren Bhalani; 24.08.2018
comment
Если вы не хотите устанавливать клиентские библиотеки, вы можете создать HTTP-запрос POST. Например, вы можете использовать тело JSON, показанное в this документ. Однако для использования API вам потребуется выполнить аутентификацию. - person F10; 24.08.2018