Распознавание речи в ROS с Google Speech API

    Я уже рассказывал об использовании pocketsphinx для распознавания речи в ROS. В этой статье я хочу рассказать об использовании gspeech для распознавания речи. gspeech — это пакет ROS, который использует Google Speech API: wiki.ros.org/gspeech.


    Получение ключа Google API


    Итак, начнем. Для начала вам потребуется ключ Google API. Для его получения вам, во-первых, нужно иметь учетную запись Google. Во-вторых, вам нужно подписаться на chromium-dev@chromium.org (подписаться нужно здесь).
    Теперь вы можете получить свой Google API ключ. Для этого зайдите в Google developer console: cloud.google.com/console. Здесь вам нужно создать проект. После создания проекта нужно активировать Speech API в секции APIs под пунктом APIs & auth в левом меню. Будьте внимательны: этот пункт может отсутствовать в списке, как это случилось со мной. Если вы не видите Speech API, то проверьте, что вы подписались на chromium-dev и что вы сейчас авторизованы под той учетной записью Google, почтовый адрес которой вы указывали при подписке на chromium-dev.
    Ключ Google API можно получить в разделе Credentials под тим же пунктом APIs & auth. Здесь нужно создать ключ нажатием на кнопку Create new Key в секции Public API access.

    Установка gspeech


    Теперь осталось дело за малым — установить пакет gspeech. Для этого клонируйте gspeech со страницы Github: github.com/kusha/gspeech. Для работы gspeech требует установки sox:

    sudo apt-get install sox
    

    Также вам необходимо вставить ваш ключ Google API в скрипт gspeech.py в строке:

    api_key = "" # PASTE HERE YOUR GOOGLE API KEY
    

    Запуск gspeech


    Все готово и можно запустить узел ROS gspeech:

    rosrun gspeech gspeech.py
    

    Распознавание в gspeech


    В процессе распознавания gspeech публикует распознанные фразы в тему /speech в формате String и степень “уверенности” распознавания в тему /confidence в формате Int8.
    Процесс распознавания фразы может занять некоторое время, поскольку gspeech выполняет запросы к серверам Google. Тем не менее gspeech имеет довольно высокую точность распознавания, gspeech распознает фразы значительно лучше чем пакет pocketsphinx. При тестировании gspeech разпознавал фразы с «уверенностью» 70-80. В некоторых случаях распознает с «уверенностью» до 94.

    Желаю вам удачи в распознавании речи с Google Speech API.
    • +3
    • 24,1k
    • 6
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 6
    • +1
      Текст под ключевые слова?

      Ну установили мы пакет, а дальше что?
      • +1
        Совсем не применимое к практике решение:
        1) Ограничение 50 запросов в день, по крайней мере еще два месяца назад так было;
        2) Постоянное распознавание, даже уровень шумов не учитывается, при котором запись прекращается;
        3) Со скоростью распознавания действительно проблемы, особенно если имеется только GSM соединение.

        Мы делали также примерно, только вместо гугла был яндек, и распознавание через яндекс велось только при определенных командах распознанных через сфинкс.
        • 0
          ага, тоже сфинкс для кольцевого поиска «ключевого слова» использовал :)
        • 0
          Русскую речь распознаёт?
        • 0
          Полгода назад как-то проще подключиться было. Ключ возвращался после запроса к серверу. Выше хорошо сказали — сейчас можно Яндекс подцепить.

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.