создай голосового ассистента на Python
Créé le : 28 février 2025
Créé le : 28 février 2025
создай голосового ассистента на Python
Ниже приведён пример простого голосового ассистента на Python, который распознаёт речь пользователя (с помощью библиотеки SpeechRecognition) и отвечает голосом (с помощью pyttsx3).
Этот ассистент будет:
Вам потребуются следующие библиотеки:
Установите их командой:
bashpip install SpeechRecognition pyttsx3 pyaudio
Обратите внимание:
- Для Windows иногда вместо
pip
стоит использоватьpip3
.- С PyAudio могут быть сложности при установке на Windows. Рекомендуется скачать готовый
whl
-файл на https://www.lfd.uci.edu/~gohlke/pythonlibs/ или установить через пакетный менеджер (например, на Linux:sudo apt-get install python3-pyaudio
).- Если вы используете macOS, может потребоваться установить порт
portaudio
через Homebrew:brew install portaudio
, а затем заново установить PyAudio:pip install pyaudio
.
pythonimport speech_recognition as sr import pyttsx3 import time def speak(text): """Озвучивает заданный текст.""" engine.say(text) engine.runAndWait() def listen(): """ Слушает микрофон и распознаёт речь. Возвращает распознанный текст или None, если ничего не удалось распознать. """ with sr.Microphone() as source: print("Говорите что-нибудь...") # Можно немного подождать, чтобы «поймать» фоновый шум r.adjust_for_ambient_noise(source, duration=1) audio = r.listen(source) try: # Указываем язык распознавания как русский query = r.recognize_google(audio, language="ru-RU") print(f"Вы сказали: {query}") return query.lower() # возвращаем в нижнем регистре для удобства except sr.UnknownValueError: print("Извините, я не расслышал. Повторите, пожалуйста.") return None except sr.RequestError: print("Ошибка сервиса распознавания речи. Проверьте интернет-соединение.") return None def process_command(command): """ Обрабатывает голосовую команду. Добавляйте здесь любые ваши действия в зависимости от потребностей. """ if command is None: return if "привет" in command: speak("Здравствуйте! Чем могу помочь?") elif "как тебя зовут" in command: speak("Меня зовут Голосовой Ассистент.") elif "время" in command: current_time = time.strftime("%H:%M", time.localtime()) speak(f"Сейчас {current_time}") elif "стоп" in command or "выход" in command: speak("До свидания!") global running running = False else: speak("Я не знаю, как на это ответить. Попробуйте спросить что-нибудь ещё.") if __name__ == "__main__": # Инициализация распознавания речи и движка синтеза r = sr.Recognizer() engine = pyttsx3.init() # Настройка голоса (если есть несколько голосов, можно перебрать и выбрать) # voices = engine.getProperty('voices') # for i, v in enumerate(voices): # print(i, v.name, v.languages) # # Пример: выбрать голос по индексу # engine.setProperty('voice', voices[0].id) rate = engine.getProperty('rate') engine.setProperty('rate', 180) # скорость речи (при необходимости) # Основной цикл ассистента running = True speak("Здравствуйте! Я готов к работе.") while running: command = listen() process_command(command)
Чтобы сделать ассистента более умным и полезным, вы можете:
process_command()
:
requests
, json
, а также публичные API разных сервисов).recognize_google
не может подключиться к сервису Google.pyttsx3
.tkinter
, PyQt
, или использовать в Telegram/Discord боте.Таким образом, вы можете создавать собственных голосовых помощников с более сложным функционалом: запуск программ, работа с файлами, общение с веб-сервисами и пр. Всё ограничивается только вашими идеями и возможностями Python.
Надеюсь, этот пример поможет вам начать разработку своего голосового ассистента!