Як створити AI голосового асистента 2026

Як створити AI голосового асистента на Python за 2 години. Покроковий гайд для новачків з безкоштовними інструментами.




Як створити 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-дайджест

Найкращі статті про ШІ та автоматизацію — без спаму, лише суть

Без спаму · Відписатись будь-коли

Telegram