tochilkinva / tg_bot_stt_tts

Telegram bot with voice message recognition and generation. Speech to Text and Text to Speech
MIT License
53 stars 8 forks source link
aiogram ffmpeg num2words silero speech-to-text text-to-speech torch vosk

tg_bot_stt_tts

Telegram bot with voice message recognition and generation. Speech to Text and Text to Speech.

Описание

Telegram-бот с распознаванием и генерацией голосовых сообщений. Пока протестирован и работает под Windows!

Технологии

aiogram, torch, vosk, silero, num2words, ffmpeg

Алгоритм работы

Команды

Запуск проекта

Клонируйте репозиторий и перейдите в него в командной строке:

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 и Silero, а также FFmpeg

Vosk - оффлайн-распознавание аудио и получение из него текста. Модели доступны на сайте проекта. Скачайте модель, разархивируйте и поместите папку model с файлами в папку models/vosk.

Silero - оффлайн-создание аудио сообщения из текста. В классе TTS проекта указана модель Silero v3.1 ru - 60 Мб, которая сама скачается при первом запуске проекта. Остальные модели можно скачать тут или на сайте проекта.

FFmpeg - набор open-source библиотек для конвертирования аудио- и видео в различных форматах. Скачайте набор exe файлов с сайта проекта и поместите файл ffmpeg.exe в папки models/vosk и models/silero.

Автор

Валентин