Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Промышленные технологии

Создание надежной системы распознавания голоса на Raspberry Pi – Руководство для начинающих

Распознавание голоса на Raspberry Pi

Создание надежной системы распознавания голоса на Raspberry Pi – Руководство для начинающих
Raspberry Pi

Система распознавания голоса слушает команды и выполняет действия: управление нагрузками (реле, лампы), запрос погоды, воспроизведение музыки. Raspberry Pi справляется локально — нужен только USB-микрофон.

Система работает постоянно, ожидая ключевое слово.

Как работает распознавание речи

  1. Голос создает звуковые волны → микрофон преобразует в аналоговый электрический сигнал.
  2. ADC (в микрофоне или звуковой карте) оцифровывает сигнал.
  3. Цифровой поток фильтруется (шумоподавление, нормализация).
  4. Речевой движок (Google Speech API, Vosk, PocketSphinx) преобразует в текст.
  5. NLP (обработка естественного языка) извлекает намерение (intent).
  6. Система выполняет действие и отвечает через TTS (eSpeak, festival, gTTS).

Построение системы: Google Speech API + eSpeak

Необходимые компоненты

Схема подключения

Создание надежной системы распознавания голоса на Raspberry Pi – Руководство для начинающих
Схема подключения
Создание надежной системы распознавания голоса на Raspberry Pi – Руководство для начинающих
Динамик

Подключение простое:

  1. USB-микрофон → USB порт Pi.
  2. Динамик → 3.5 мм jack (включите аудио через raspi-config).
  3. Реле → GPIO (например, GPIO17) + GND, нагрузка через реле.
  4. Питание Pi → USB-C.

Программная настройка

Шаг 1: Проверка микрофона

Создание надежной системы распознавания голоса на Raspberry Pi – Руководство для начинающих
USB-микрофон

В терминале:

alsamixer

Тест записи:

arecord -D plughw:1,0 -d 5 -f cd test.wav
aplay test.wav
Создание надежной системы распознавания голоса на Raspberry Pi – Руководство для начинающих
Создание надежной системы распознавания голоса на Raspberry Pi – Руководство для начинающих
Создание надежной системы распознавания голоса на Raspberry Pi – Руководство для начинающих

Если звук есть — микрофон работает. Нет устройства — проверьте lsusb, dmesg. Плохой звук — смените микрофон или кабель.

Шаг 2: Установка библиотек

sudo apt update && sudo apt install -y python3-pip espeak libespeak-dev portaudio19-dev
pip3 install SpeechRecognition pyaudio
Создание надежной системы распознавания голоса на Raspberry Pi – Руководство для начинающих

Тест eSpeak:

espeak "Hello world"
Создание надежной системы распознавания голоса на Raspberry Pi – Руководство для начинающих

Шаг 3: Код программы

Создание надежной системы распознавания голоса на Raspberry Pi – Руководство для начинающих
Создание надежной системы распознавания голоса на Raspberry Pi – Руководство для начинающих
Создание надежной системы распознавания голоса на Raspberry Pi – Руководство для начинающих
Полный код скрипта
import speech_recognition as sr
import pyttsx3
import RPi.GPIO as GPIO
import time

RELAY_PIN = 17
GPIO.setmode(GPIO.BCM)
GPIO.setup(RELAY_PIN, GPIO.OUT)
GPIO.output(RELAY_PIN, GPIO.HIGH)  # реле активно по LOW

engine = pyttsx3.init()
engine.setProperty('rate', 150)

r = sr.Recognizer()
mic = sr.Microphone(device_index=1)  # проверьте индекс: arecord -l

def speak(text):
    print(f"Pi: {text}")
    engine.say(text)
    engine.runAndWait()

def listen():
    with mic as source:
        r.adjust_for_ambient_noise(source, duration=0.5)
        print("Слушаю...")
        audio = r.listen(source, phrase_time_limit=5)
    try:
        text = r.recognize_google(audio, language='ru-RU').lower()
        print(f"Вы: {text}")
        return text
    except sr.UnknownValueError:
        return ""
    except sr.RequestError:
        speak("Нет интернета")
        return ""

WAKE_WORD = "привет"

speak("Система готова. Скажите '" + WAKE_WORD + "'")

while True:
    text = listen()
    if WAKE_WORD in text:
        speak("Команда принята")
        if "включи" in text or "on" in text:
            GPIO.output(RELAY_PIN, GPIO.LOW)
            speak("Лампа включена")
        elif "выключи" in text or "off" in text:
            GPIO.output(RELAY_PIN, GPIO.HIGH)
            speak("Лампа выключена")
        else:
            speak("Не поняла команду")
    time.sleep(0.5)

Примечание: нужен интернет для Google Speech API. Для офлайн используйте Vosk.

Как цепь управляет нагрузкой голосом

Создание надежной системы распознавания голоса на Raspberry Pi – Руководство для начинающих
Задачи распознавания речи

Pi ждет ключевое слово («Привет»). При обнаружении активируется распознавание команды («включи», «выключи»). Реле переключает нагрузку. Pi озвучивает результат и возвращается в ожидание. Код легко расширяется: добавьте датчики, MQTT, Home Assistant, другие триггеры.

Итог

Создание надежной системы распознавания голоса на Raspberry Pi – Руководство для начинающих
Голосовые ассистенты: от DIY до Alexa

Самодельная система не заменит Alexa/Google, но отличный старт для умного дома. Минимум проводов, понятный Python-код, расширяемость. Собирайте, экспериментируйте, делитесь результатами! Вопросы — в комментариях или на почту.

Промышленные технологии

  1. Сборка станции качества воздуха и погоды на Raspberry Pi с InfluxDB и Grafana
  2. Бесшовный мониторинг температуры и влажности на Raspberry Pi с EzTemp
  3. Учебник для начинающих по IoT: стриминг данных температуры с Raspberry Pi
  4. Создание бюджетного детектора плача ребенка на Raspberry Pi — DIY-руководство
  5. Установка Google Assistant на MATRIX Voice Raspberry Pi — пошаговое руководство
  6. Подключение Raspberry Pi 3 к датчику DHT11 и загрузка данных в облако ThingsIo.ai
  7. Распознавание лиц в реальном времени на Raspberry Pi — полное руководство
  8. Создание безопасной двери с распознаванием лиц на Windows IoT и Raspberry Pi
  9. Сборка параллельного C++17 SYCL кода на Raspberry Pi 4B+ IoT платах
  10. Построение ровера на Windows IoT Core с Raspberry Pi 2 — Руководство от новичка к профи