Транскрипция речи в текст с помощью API Cloud Speech-to-Text

API Cloud Speech позволяет вам преобразовывать речь в текст из аудиофайлов на более чем 80 языках.

В этой лабораторной работе мы запишем аудиофайл и отправим его в Cloud Speech API для транскрипции.

Чему вы научитесь

  • Создание запроса Speech API и вызов API с помощью curl
  • Вызов Speech API с аудиофайлами на разных языках

Что вам понадобится

  • Проект облачной платформы Google
  • Браузер, например Chrome или Firefox

Как вы будете использовать это руководство?

Прочитайте это только до конца Прочитайте и выполните упражнения.

Как бы вы оценили свой опыт использования Google Cloud Platform?

Новичок Средний Опытный

Настройка среды для самостоятельного обучения

Если у вас ещё нет учётной записи Google (Gmail или Google Apps), необходимо её создать . Войдите в консоль Google Cloud Platform ( console.cloud.google.com ) и создайте новый проект:

Скриншот от 2016-02-10 12:45:26.png

Запомните идентификатор проекта — уникальное имя для всех проектов Google Cloud (имя, указанное выше, уже занято и не будет вам работать, извините!). Далее в этой практической работе он будет обозначаться как PROJECT_ID .

Далее вам необходимо включить биллинг в Cloud Console, чтобы использовать ресурсы Google Cloud.

Выполнение этой лабораторной работы не должно обойтись вам дороже нескольких долларов, но может обойтись дороже, если вы решите использовать больше ресурсов или оставите их запущенными (см. раздел «Очистка» в конце этого документа).

Новые пользователи Google Cloud Platform имеют право на бесплатную пробную версию стоимостью 300 долларов США .

Нажмите на значок меню в левом верхнем углу экрана.

В раскрывающемся списке выберите панель API и служб .

Нажмите «Включить API и службы» .

Затем введите «речь» в поле поиска. Нажмите на Google Cloud Speech API :

Нажмите «Включить» , чтобы включить API Cloud Speech:

Подождите несколько секунд, пока он включится. После включения вы увидите следующее:

Google Cloud Shell — это среда командной строки, работающая в облаке . Эта виртуальная машина на базе Debian оснащена всеми необходимыми инструментами разработки ( gcloud , bq , git и другими) и предлагает постоянный домашний каталог объёмом 5 ГБ. Мы будем использовать Cloud Shell для создания запроса к Speech API.

Чтобы начать работу с Cloud Shell, нажмите «Активировать Google Cloud Shell». Скриншот 2015-06-08 в 17:30:32.png значок в правом верхнем углу панели заголовка

Сеанс Cloud Shell откроется в новом фрейме в нижней части консоли и отобразит приглашение командной строки. Дождитесь появления приглашения user@project:~$.

Поскольку мы будем использовать curl для отправки запроса к Speech API, нам потребуется сгенерировать API-ключ для передачи URL-адреса запроса. Чтобы создать API-ключ, перейдите в раздел «API и сервисы» > «Учётные данные» на панели управления проектом:

Затем нажмите «Создать учетные данные» :

В выпадающем меню выберите API-ключ :

Затем скопируйте только что сгенерированный ключ и выберите «Закрыть (не ограничивать ключ)».

Теперь, когда у вас есть ключ API, сохраните его в переменной окружения, чтобы не вставлять значение ключа API в каждый запрос. Это можно сделать в Cloud Shell. Не забудьте заменить <your_api_key> на только что скопированный вами ключ.

export API_KEY=<YOUR_API_KEY>

Вы можете создать запрос к речевому API в файле request.json . Для создания и редактирования этого файла вы можете использовать один из предпочитаемых вами редакторов командной строки (nano, vim, emacs) или встроенный веб-редактор Cloud Shell:

Создайте файл в своем домашнем каталоге, чтобы иметь возможность легко ссылаться на него, и добавьте следующее в файл request.json :

запрос.json

{
  "config": {
      "encoding":"FLAC",
      "languageCode": "en-US"
  },
  "audio": {
      "uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
  }
}

Тело запроса содержит объекты config и audio . В config мы сообщаем API Speech, как обрабатывать запрос. Параметр encoding сообщает API, какой тип аудиокодирования вы используете для отправляемого в API аудиофайла. FLAC — это тип кодирования для файлов .raw (подробнее см. в документации по типу кодирования). В объект config можно добавить и другие параметры, но encoding — единственный обязательный. Если languageCode не указан в запросе, по умолчанию будет использоваться английский язык.

В audio вы можете передать API либо URI нашего аудиофайла в облачном хранилище, либо аудиофайл в кодировке Base64 в виде строки. Здесь мы используем URL-адреса облачного хранилища. Следующий шаг — вызов Speech API!

Теперь вы можете передать тело запроса вместе с переменной среды ключа API, которую вы сохранили ранее, в Speech API с помощью следующей команды curl (все в одной командной строке):

curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json "https://speech.googleapis.com/v1/speech:recognize?key=${API_KEY}"

Ответ, возвращаемый этой командой curl , должен выглядеть примерно так:

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "how old is the Brooklyn Bridge",
          "confidence": 0.98267895
        }
      ]
    }
  ]
}

Значение transcript вернет текстовую транскрипцию вашего аудиофайла, выполненную API речи, а значение confidence показывает, насколько API уверен в том, что он точно расшифровал ваш аудиофайл.

Обратите внимание, что мы вызвали метод recognize в нашем запросе выше. API Speech поддерживает как синхронную, так и асинхронную транскрипцию речи в текст. В этом примере мы отправили ему полный аудиофайл, но вы также можете использовать метод longrunningrecognize для потоковой транскрипции речи в текст, пока пользователь продолжает говорить.

Вы владеете несколькими языками? API Speech поддерживает преобразование речи в текст на более чем 100 языках! Вы можете изменить параметр languageCode в request.json . Список поддерживаемых языков можно найти здесь .

Давайте попробуем аудиофайл на французском языке (прослушать его можно здесь, если хотите). Измените файл request.json следующим образом:

запрос.json

 {
  "config": {
      "encoding":"FLAC",
      "languageCode": "fr"
  },
  "audio": {
      "uri":"gs://speech-language-samples/fr-sample.flac"
  }
}

Вы должны увидеть следующий ответ:

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "maître corbeau sur un arbre perché tenait en son bec un fromage",
          "confidence": 0.9710122
        }
      ]
    }
  ]
}

Это предложение из популярной французской детской сказки . Если у вас есть аудиофайлы на другом языке, попробуйте добавить их в облачное хранилище и изменить параметр languageCode в запросе.

Вы узнали, как преобразовывать речь в текст с помощью Speech API. В этом примере вы передали API URI вашего аудиофайла в Google Cloud Storage. Кроме того, вы можете передать строку аудиоконтента в кодировке Base64.

Что мы рассмотрели

  • Передача Speech API URI аудиофайла из Google Cloud Storage
  • Создание запроса Speech API и вызов API с помощью curl
  • Вызов Speech API с аудиофайлами на разных языках

Следующие шаги