Whisper + ChatGPT + ElevenLabs: распознавание речи, AI-ответ, синтез голоса. Собери голосового ассистента за вечер.
Голосовой AI-ассистент — это конвейер из 4 модулей: запись аудио (PyAudio/sounddevice), распознавание речи (Whisper), обработка (GPT-4o/Claude), синтез голоса (ElevenLabs/OpenAI TTS). Все компоненты работают через API — никакого локального GPU не нужно. Стоимость одного разговора: ~0.02$ (Whisper) + ~0.01$ (GPT) + ~0.05$ (TTS) = ~0.08$ за минуту диалога.
Whisper от OpenAI — лучшая модель для распознавания русской речи. Whisper API: $0.006/минута. Альтернатива — faster-whisper (локально, бесплатно, требует GPU).
import sounddevice as sd import numpy as np import wave from openai import OpenAI client = OpenAI() # Запись аудио с микрофона def record_audio(duration=5, sample_rate=16000): print("🎤 Говорите...") audio = sd.rec(int(duration * sample_rate), samplerate=sample_rate, channels=1) sd.wait() print("✅ Записано") # Сохраняем во временный WAV with wave.open("/tmp/audio.wav", "wb") as wf: wf.setnchannels(1) wf.setsampwidth(2) wf.setframerate(sample_rate) wf.writeframes((audio * 32767).astype(np.int16).tobytes()) return "/tmp/audio.wav" # Распознавание через Whisper API def speech_to_text(audio_path): with open(audio_path, "rb") as f: transcript = client.audio.transcriptions.create( model="whisper-1", file=f, language="ru" ) return transcript.text
После распознавания текста отправляем его в LLM. Системный промпт задаёт личность ассистента. Для голосового режима важно: короткие ответы (не больше 3-4 предложений), разговорный стиль, без маркдауна.
VOICE_SYSTEM_PROMPT = """ Ты — голосовой AI-ассистент «Арго». Отвечай коротко, не больше 3 предложений. Без маркдауна, без эмодзи, без списков. Разговорный тон, как при живом общении. Если не знаешь ответа — скажи честно. """ def process_with_ai(text): response = client.chat.completions.create( model="gpt-4o", messages=[ {"role": "system", "content": VOICE_SYSTEM_PROMPT}, {"role": "user", "content": text} ], max_tokens=150 ) return response.choices[0].message.content
OpenAI TTS ($0.015/1K символов) — бюджетно и качественно. ElevenLabs ($5/мес старт) — лучшие голоса с эмоциями. Для русского: OpenAI TTS голос «nova» или ElevenLabs с клонированием голоса.
Объединяем модули в единый цикл: запись → распознавание → AI-ответ → озвучка. Для непрерывного диалога используем VAD (Voice Activity Detection) через Silero VAD — модель определяет, когда пользователь закончил говорить, и только тогда отправляет аудио на обработку.
# Главный цикл голосового ассистента while True: audio_path = record_audio(duration=10) # запись до 10 сек user_text = speech_to_text(audio_path) if not user_text.strip(): continue print(f"👤 Вы: {user_text}") ai_response = process_with_ai(user_text) print(f"🤖 Ассистент: {ai_response}") # text_to_speech(ai_response) # раскомментировать для озвучки if "пока" in user_text.lower() or "стоп" in user_text.lower(): print("👋 До свидания!") break
Голосовой AI-ассистент на Python — это 150 строк кода и 3 API-ключа. Стек: sounddevice + Whisper API + GPT-4o + OpenAI TTS. Затраты: ~$0.08/минута диалога. Продакшн-совет: для низкой задержки используйте streaming mode Whisper и TTS — ответ начнёт озвучиваться до того, как LLM допишет весь текст. Самый простой хостинг: заверните в FastAPI и деплойте на VPS за 500 ₽/мес.