Telegram bot with voice message recognition and generation. Speech to Text and Text to Speech.
Telegram-бот с распознаванием и генерацией голосовых сообщений. Пока протестирован и работает под Windows!
aiogram, torch, vosk, silero, num2words, ffmpeg
- Распознавание аудио и голосовых сообщений: кидаем боту аудио или голосовое сообщение, получаем текст.
- Генерация аудио сообщений: кидаем боту текст, получаем аудио сообщение.
- /start - Приветствие, появляется при первом старте бота
- /help - Повторяет сообщение при первом старте бота
- /test - Отвечает тестовым сообщением
Клонируйте репозиторий и перейдите в него в командной строке:
git clone https://github.com/tochilkinva/tg_bot_stt_tts.git
cd tg_bot_stt_tts
Cоздайте и активируйте виртуальное окружение:
python -m venv venv
. env/Scripts/activate
Установите зависимости из файла requirements.txt:
python -m pip install --upgrade pip
pip install -r requirements.txt
Создайте файл .env и укажите токен вашего бота. Пример есть в .env_example. Процесс создания телеграм бота и получения токена не описан.
Скачайте модели и поместите в необходимые папки. Где взять модели описано ниже.
После скачивания моделей запустите код bot.py в Python.
Vosk - оффлайн-распознавание аудио и получение из него текста. Модели доступны на сайте проекта. Скачайте модель, разархивируйте и поместите папку model с файлами в папку models/vosk.
- vosk-model-ru-0.22 - 1.5 Гб - лучше распознает, но дольше и весит много.
- vosk-model-small-ru-0.22 - 45 Мб - хуже распознает, но быстрее и весит мало.
Silero - оффлайн-создание аудио сообщения из текста. В классе TTS проекта указана модель Silero v3.1 ru - 60 Мб, которая сама скачается при первом запуске проекта. Остальные модели можно скачать тут или на сайте проекта.
FFmpeg - набор open-source библиотек для конвертирования аудио- и видео в различных форматах. Скачайте набор exe файлов с сайта проекта и поместите файл ffmpeg.exe в папки models/vosk и models/silero.
Валентин