Воробьев В.В. Скрипт распознавания голоса googlesp

advertisement
Воробьев В.В.
Скрипт распознавания голоса 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
Download