Преобразование речи в текст с помощью Cloud Speech-to-Text API

Cloud Speech API позволяет преобразовывать речь в текст из аудиофайлов на более чем 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 ) и создайте новый проект:

Скриншот от 10 февраля 2016 г., 12:45:26.png

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

Затем вам нужно включить выставление счетов в облачной консоли, чтобы использовать ресурсы Google Cloud.

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

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

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

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

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

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

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

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

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

Чтобы начать работу с Cloud Shell, нажмите «Активировать Google Cloud Shell». Снимок экрана 08.06.2015, 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 мы сообщаем Speech API, как обрабатывать запрос. Параметр 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 в нашем запросе выше. Speech API поддерживает как синхронную, так и асинхронную транскрипцию речи в текст. В этом примере мы отправили полный аудиофайл, но вы также можете использовать метод longrunningrecognize для выполнения потоковой транскрипции речи в текст, пока пользователь все еще говорит.

Вы многоязычны? Speech API поддерживает преобразование речи в текст на более чем 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
        }
      ]
    }
  ]
}

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

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

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

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

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