Распознавание голоса с помощью Python

Распознавание голоса с помощью Python

Привет всем! Сегодня мы разберемся с вопросом, который звучит как: распознавание голоса с помощью Python. Так ли сложна эта задача, как звучит? На самом деле — все достаточно просто, ведь у нас есть связка из Python и библиотеки Speech_recognition, полная документация по которой доступна по ссылке. Поехали!

  1. import speech_recognition as sr #Подключили библиотеку
  2.  
  3. def command(): #Создаем функцию, которая будет отвечать за распознавание голоса
  4.     r = sr.Recognizer() #Обозначили библиотеку как символ (меньше писанины)
  5.     with sr.Microphone() as sourse: #Пока микрофон работает
  6.         print('Говорите: ') #выводим сообщение, что бы пользователь понимал что делать
  7.         r.pause_threshold = 1 #Даем ему время на подумать
  8.         r.adjust_for_ambient_noise(sourse, duration=1) #очищаем полученный звук
  9.         audio = r.listen(sourse) #создаем переменную с итоговым звуком
  10.         try:
  11.             task = r.recognize_google(audio, language='ru-RU').lower() #подсказываем, какой язык нужно распознавать, и распознаем
  12.             print('Вы сказали: \n' + task) #выводим на экран то, что распознали
  13.         except:
  14.             task = command()
  15.         return task
  16.  
  17. def makeSomething(task): #Создаем функцию, которая будет завершать программу по ключевому слову
  18.     if 'выход' in task: #Если у нас имеется слово "выход"
  19.         print('Exit') #выводим к консоль "Exit"
  20.         quit() #Завершаем работу программы
  21.  
  22. while True:
  23.     makeSomething(command()) #Создаем бесконечный цикл, который будет слушать микрофон

Как применять данную технологию? Решать вам, и только вам — я вот, например, загорелся идеей запилить голосового бота, который будет вычленять ключевые слова и делать то, что нужно. Ну, например:
1. По таймеру включается приложение, активирующее голосового бота
2. Даешь ему приказ: «Погода», например, или «Новости» — и он голосом (вопрос, касающийся получения аудиопотока из текста я рассматривал тут) выдает тебе всю нужную информацию.
Но это, понятно, самое простое применение, да и сама реализация достаточно тривиальна 🙂

Как всегда — в случае возникновения вопросов пишите на почту, или в Telegram.