Як створити AI голосового асистента: повний покроковий гайд
Цей туторіал вирішує конкретну задачу — побудувати власного голосового AI-асистента, який слухає вас через мікрофон, розуміє мову та відповідає голосом. Ми використаємо Python і безкоштовні або умовно безкоштовні інструменти, доступні у 2026 році. На реалізацію базової версії піде від 1 до 2 годин, якщо Python вже встановлений. Жодних глибоких знань програмування не потрібно — достатньо вміти копіювати команди та розуміти логіку кроків.
🛠️ Що знадобиться
- Python 3.11+ — основна мова проєкту; безкоштовний, завантажити на python.org
- OpenAI API (GPT-4o-mini) — мозок асистента, обробляє запити; є безкоштовний тестовий кредит $5 при реєстрації
- Whisper (OpenAI) — розпізнавання мови з мікрофона; безкоштовна локальна модель
- ElevenLabs або Edge-TTS — синтез голосу для відповідей; Edge-TTS повністю безкоштовний, ElevenLabs має безкоштовний тариф
- VS Code або PyCharm — редактор коду; обидва безкоштовні для особистого використання
- Мікрофон — вбудований у ноутбук або зовнішній USB-мікрофон підійде
📋 Покрокова інструкція
Крок 1: Підготовка середовища та встановлення бібліотек
Відкрийте термінал (у Windows — PowerShell або CMD, у macOS/Linux — Terminal) і створіть окрему папку для проєкту командою mkdir voice-assistant && cd voice-assistant. Далі створіть віртуальне середовище: python -m venv venv, після чого активуйте його — на Windows: venv\Scripts\activate, на macOS/Linux: source venv/bin/activate. Тепер встановіть усі потрібні пакети однією командою: pip install openai SpeechRecognition pyaudio openai-whisper edge-tts pygame python-dotenv. Якщо PyAudio не встановлюється на Windows — завантажте відповідний .whl файл з сайту lfd.uci.edu/~gohlke/pythonlibs і встановіть через pip install назва_файлу.whl.

Крок 2: Отримання API-ключів та налаштування .env файлу
Зайдіть на platform.openai.com → увійдіть або зареєструйтесь → у лівому меню натисніть “API Keys” → кнопка “Create new secret key” → скопіюйте ключ одразу, бо потім він не відображається. У папці проєкту створіть файл з назвою .env (саме так, з крапкою на початку) і вставте туди: OPENAI_API_KEY=sk-ваш_ключ_тут. Якщо хочете якісніший голос через ElevenLabs — зайдіть на elevenlabs.io, зареєструйтесь, перейдіть у Profile → API Key і додайте в .env другий рядок: ELEVENLABS_API_KEY=ваш_ключ. Якщо обираєте безкоштовний варіант — ElevenLabs пропускаємо, використаємо Edge-TTS.
Крок 3: Написання коду — модуль розпізнавання мови
Відкрийте VS Code у папці проєкту командою code . і створіть файл assistant.py. Вставте наступний код для блоку розпізнавання мови через Whisper:
import whisper
import sounddevice as sd
import numpy as np
import scipy.io.wavfile as wav
import tempfile, os
model = whisper.load_model("base") # або "small" для кращої точності
def listen_and_transcribe():
print("🎤 Слухаю... (говоріть 5 секунд)")
duration = 5 # секунди запису
fs = 16000
recording = sd.rec(int(duration * fs), samplerate=fs, channels=1, dtype='int16')
sd.wait()
with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as f:
wav.write(f.name, fs, recording)
result = model.transcribe(f.name, language="uk")
os.unlink(f.name)
return result["text"].strip()
Зверніть увагу: параметр language="uk" задає українську мову для розпізнавання — без нього Whisper може переплутати мову.
Крок 4: Підключення GPT та синтез голосу
Нижче в тому ж файлі додайте код для звернення до GPT-4o-mini та озвучення відповіді через Edge-TTS:
from openai import OpenAI
import asyncio, edge_tts, pygame
client = OpenAI() # автоматично читає OPENAI_API_KEY з .env
def ask_gpt(user_text, history):
history.append({"role": "user", "content": user_text})
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "system", "content": "Ти корисний голосовий асистент. Відповідай коротко і чітко українською."}] + history
)
answer = response.choices[0].message.content
history.append({"role": "assistant", "content": answer})
return answer, history
async def speak_async(text):
voice = "uk-UA-PolinaNeural" # українська жіночий голос
communicate = edge_tts.Communicate(text, voice)
await communicate.save("response.mp3")
def speak(text):
asyncio.run(speak_async(text))
pygame.mixer.init()
pygame.mixer.music.load("response.mp3")
pygame.mixer.music.play()
while pygame.mixer.music.get_busy():
pygame.time.Clock().tick(10)
pygame.mixer.quit()
Крок 5: Збірка головного циклу та запуск асистента
Додайте фінальний блок коду, який об’єднує всі модулі в робочий цикл:
from dotenv import load_dotenv
load_dotenv()
if __name__ == "__main__":
print("✅ Асистент запущено! Натисніть Ctrl+C щоб зупинити.")
conversation_history = []
while True:
try:
user_input = listen_and_transcribe()
if not user_input:
continue
print(f"Ви: {user_input}")
if any(word in user_input.lower() for word in ["стоп", "вихід", "до побачення"]):
speak("До побачення!")
break
response, conversation_history = ask_gpt(user_input, conversation_history)
print(f"Асистент: {response}")
speak(response)
except KeyboardInterrupt:
print("\nЗупинено.")
break
Запустіть командою python assistant.py — асистент завантажить Whisper-модель (перший запуск займе хвилину), після чого почне слухати мікрофон і відповідати голосом українською мовою. Фінальний результат: повністю функціональний голосовий AI-асистент із пам’яттю розмови.
⚠️ Типові помилки та як їх уникнути
- PyAudio не встановлюється на Windows — замініть його на
sounddeviceіsoundfile, які встановлюються без проблем:pip install sounddevice soundfile, і оновіть код запису відповідно - Whisper розпізнає не ту мову — завжди передавайте явний параметр
language="uk"у функцію transcribe(), інакше модель auto-detect може обрати польську або російську - GPT відповідає довго і голос запізнюється — використовуйте стрімінг: додайте
stream=Trueу виклик API і озвучуйте відповідь по реченнях, не чекаючи повного тексту - Файл .env не читається — переконайтесь що викликаєте
load_dotenv()до ініціалізації OpenAI клієнта, і що файл .env знаходиться в кореневій папці проєкту, а не в підпапці - Мікрофон записує тишу або шум — перевірте індекс пристрою через
sd.query_devices()і передайте правильнийdevice=Nу функціюsd.rec()
💡 Поради для кращого результату
Використовуйте модель Whisper small замість base — вона дає на 15-20% кращу точність для української мови при прийнятній швидкості. Додайте до системного промпту інструкцію “відповідай не більше ніж 2-3 речення” — голосові відповіді понад 30 секунд сприймаються погано. Якщо хочете голос реального диктора — на ElevenLabs безкоштовний план дає 10 000 символів на місяць: клонуйте голос завантаживши 1 хвилину запису свого голосу, і асистент говоритиме “вашим” голосом. Зберігайте conversation_history у JSON-файл між сесіями — так асистент пам’ятатиме контекст з попередніх розмов навіть після перезапуску.

❓ Часті запитання (FAQ)
1. Чи можна запустити асистента повністю без інтернету?
Частково — так. Whisper працює локально без інтернету. Але GPT потребує підключення. Альтернатива: встановіть Ollama і запустіть локальну модель llama3 або mistral замість OpenAI API — тоді все працюватиме офлайн.
2. Скільки коштуватиме використання OpenAI API щомісяця?
GPT-4o-mini дуже дешевий — приблизно $0.15 за мільйон вхідних токенів. Для звичайного використання (50-100 запитів на день) виходить менше $1 на місяць. Початкового кредиту $5 вистачить на кілька місяців тестування.
3. Як додати активаційне слово типу “Гей, Асистенте”?
Встановіть бібліотеку pvporcupine від Picovoice — вона слухає тригерне слово у фоні з мінімальним навантаженням на CPU. Безкоштовний план дозволяє одне кастомне wake-word. Додайте її перевірку перед викликом функції listen_and_transcribe().
4. Чи підтримується українська мова в Edge-TTS?
Так, і досить якісно. Голос uk-UA-PolinaNeural — жіночий, uk-UA-OstapNeural — чоловічий. Обидва звучать природно і є повністю безкоштовними без обмежень на кількість символів.
5. Як розгорнути асистента на Raspberry Pi для постійної роботи?
Raspberry Pi 4 або 5 впорається із завданням. Встановіть Raspberry Pi OS, повторіть усі кроки туторіалу, а потім додайте скрипт у автозапуск через systemd — створіть service-файл у /etc/systemd/system/ і активуйте командою sudo systemctl enable assistant.
🏁 Підсумок
Ти щойно побудував повноцінного AI голосового асистента: він слухає мікрофон через Whisper, розуміє українську мову, обробляє запити через GPT-4o-mini і відповідає природним голосом через Edge-TTS. Система підтримує контекст розмови і легко розширюється новими функціями.
Прямо зараз відкрий термінал, виконай mkdir voice-assistant && cd voice-assistant && python -m venv venv — і через годину матимеш працюючого асистента. Наступний крок після базової версії — додати інтеграцію з календарем або розумним будинком через додаткові функції GPT Function Calling.
🎙️ Спробуй ElevenLabs безкоштовно
Найреалістичніший AI-голос для відео, подкастів і реклами. Понад 1000 голосів, українська мова, клонування голосу.
РОЗСИЛКА
📬 Щотижневий AI-дайджест
Найкращі статті про ШІ та автоматизацію — без спаму, лише суть
Без спаму · Відписатись будь-коли

