Воробьев В.В. Скрипт распознавания голоса googlesp Рабочий отчет RWR-2014-06-24.1 Москва, 2014 г. RWR-2014-06-24.1 1 1 Аннотация Скрипт googlesp предназначен для распознавания речи. Принцип работы Данный скрипт была написана при помощи python версии 2.7. Распознавание речи осуществляется с помощью сервиса Google Speech. Скрип записывает речь, трансформирует запись в flac и отсылает его на Google Speech. Затем он получает ответ в виде JSON, выделяет первые две версии распознавания и вероятность того, что первая версия достоверна. Эти данные скрипт публикуется в соответствующий топик. Googlesp является узлом ROS и он отсылает данные в формате, описанном в msg_googlesp, в топик chatter. Для работы необходима библиотека pyaudio и flac конвертер. Библиотеку pyaudio можно найти на сайте http://people.csail.mit.edu/hubert/pyaudio/ (внизу страницы). Ее необходимо распаковать в рабочее окружение ROS. Flac конвертер устанавливается командой $ sudo apt-get install flac Входные и выходные данные Входные данные Данные с микрофона (Голос) Выходные данные Сообщение Speech Структура Speech: String First – первый распознанный вариант float32 Conf — вероятность, что первый распознанный вариант достоверен String Second – второй распознанный вариант Пример работы Для работы с сервером пятна необходима ОС Kubuntu версии 12.04 и система ROS с созданным рабочим окружением. Инструкция по установке и настройке ROS можно найти в DropBox'е. После создания рабочей среды ROS скопируйте в папку src проект googlsp и каталоги msg_googlesp. Затем: 1. Открываем консоль и из рабочего окружения запускаем команду catkin_make 2. Подключаем микрофон RWR-2014-06-24.1 2 2 3. Вводим команду roscore. 4. Не закрывая (!!!) предыдущую консоль открываем новую и вводим команду rosrun googlesp googlesp.py. 5. Говорим в микрофон Программные функции 1. audio_int(num_samples=50) — Получает среднюю интенсивность звука. 2. listen_for_speech(pub,threshold=THRESHOLD, num_phrases=-1) - Слушает микрофон и отправляет запись на сервис Google 3. save_speech(data, p)— записывает звук в файл 4. stt_google_wav(pub,audio_fname)- Конвертирует запись во flac и отправляет запрос Глобальные переменные CHUNK — Количество байт, записываемых с микрофона FORMAT — Формат записи (pyaudio.paInt16 по умолчанию) CHANNELS — Количество каналов RATE — Темп записи (Должен быть 16000) THRESHOLD — Порог интенсивности. Определяет что считать тишиной, а что звуком (Определяется в зависимости от уровня окружающего шума) 6. SILENCE_LIMIT — Лимит тишины (сек). После того, как это время пройдет запись звука завершится. 7. PREV_AUDIO — Определяет через сколько секунд после обнаружения шума начнется запись 1. 2. 3. 4. 5. Воробьев В.В. Скрипт распознавания голоса googlesp // Рабочий отчет RWR2014-06-24.1, -М.: Robofob Lab, 2014 RWR-2014-06-24.1 3 3