Skip to content

Распознавание речи для голосовых и кружочков в Telegram

License

Notifications You must be signed in to change notification settings

destraty/TGVoice2Text

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TGVoice2Text - бот для голосовых и кружочков

Logo

С помощью данного бота вам больше не придется часами слушать голосовые и смотреть кружочки в телеграмме. Благодаря нейросетям можно быстро бесплатно перевести голосовые и кружочки в текст.

Содержание

  1. Как это работает?
  2. Минимальные системные требования
  3. Установка на Windows
  4. Установка на Linux
  5. Материалы для изучения

Как это работает?

Файлы форматов .mp4(кружочки) или .oga(голосовые) поступаю в бота и преобразовываются в формат .wav с моно звуковой дорожкой. Далее этот файл поступает на вход Vosk модели, которая преобразует голос в текст. Затем при помощи уже второй Vosk модели добавляется пунктуация в сообщение.

Системные требования

Только x64 архитектура

Более 4GB RAM

От 10GB свободного пространства на диске

Установка

Windows

  1. Скачайте и установите Python 3.11.7, если у вас все еще его нет отсюда.

  2. Установите FFMpeg отсюда. Он нужен для распознавания речи.

  3. Добавьте FFMpeg в PATH:

    Свойства системы > Переменные среды > Переменные среды пользователя > PATH > Например: C:\Program Files\ffmpeg-2024-05-27-git-01c7f68f7a-full_build\bin\

    Перезагрузите компьютер

  4. Клонируйте репозиторий командой:

git clone https://github.com/destraty/TGVoice2Text
  1. Перейдтие в папку и установите все зависимости
cd TGVoice2Text
pip install -r requirements.txt
  1. Скачайте модели распознавания речи и пунктуации
  2. Распакуйте их в любое удобное место.
  3. Сконфиругируйте файл .env и укажите пути для обоих моделей по своему желанию. Хранить их на рабочем столе настоятельно НЕ РЕКОМЕНДУЕТСЯ!
  • Для TOKEN укажите токен вашего бота телеграмм. Получить его можно у BotFather. Текствая/видео инструкция тут
  • Для SPEECH_MODEL_PATH укажите путь к папке с моделью.
  • Для PUNC_MODEL_PATH укажите путь к файлу checkpoint.
  1. Запустите бота
python bot.py

Дождитесь вывода DONE и пользуйтесь своим ботом)

Linux

  1. Установите Python 3.11 из гайда
  2. Установите FFMpeg и HDF5
sudo apt update
sudo apt install ffmpeg libhdf5-dev -y
ffmpeg -version
  1. Клонируйте репозиторий командой:
git clone https://github.com/destraty/TGVoice2Text
  1. Перейдтие в папку и создайте виртуальное окружение
cd TGVoice2Text
python -m venv env
source env/bin/activate
  1. Установите зависисмости. Установка h5py может занять продолжительное время, так и должно быть. Если на этом этапе возникают ошибки, проверьте наличие libhdf5-dev.
pip install -r requirements.txt
  1. Создайте папку для моделей и скачайте их:
mkdir models && cd models
wget https://alphacephei.com/vosk/models/vosk-model-ru-0.10.zip
wget https://alphacephei.com/vosk/models/vosk-recasepunc-ru-0.22.zip
  1. В этой же папке распаковываем модели. Процесс тоже может быть достаточно длительным, общий вес моделей порядка 6ГБ.
unzip unzip vosk-model-ru-0.10.zip
rm vosk-model-ru-0.10.zip

unzip vosk-recasepunc-ru-0.22.zip
rm vosk-recasepunc-ru-0.22.zip
  1. Отредактируем файл nano .env в папке TGVoice2Text на что-то подобное:
TOKEN = 'ВАШ ТОКЕН ТГ БОТА'
DOWNLOAD_DIR = './downloads'
SPEECH_MODEL_PATH = "./models/vosk-model-ru-0.10"
PUNC_MODEL_PATH = "./models/vosk-recasepunc-ru-0.22/checkpoint"
  1. Создадим демон .service для хостинга бота:
sudo nano /etc/systemd/system/v2t_bot.service
[Unit]
Description=v2t
After=network.target

[Service]
Type=simple
User=ПОЛЬЗОВАТЕЛЬ
WorkingDirectory=/home/ПОЛЬЗОВАТЕЛЬ/TGVoice2Text/
ExecStart=/usr/bin/python3.11 /path/to/TGVoice2Text/bot.py

[Install]
WantedBy=multi-user.target
  1. Запустим бота
sudo systemctl daemon-reload
sudo systemctl enable v2t_bot.service
sudo systemctl start v2t_bot.service

Проверьте правильность запуска используя:

sudo systemctl status v2t_bot.service

P.S В случае вылета из-за нехватки ОЗУ, добавьте в v2t_bot.service в раздел [Service] данную строку. Значение 2G можно заменить на свое.

MemoryLimit=2G

Не забудьте выполнить после созранения:

sudo systemctl daemon-reload

Теория и материалы

About

Распознавание речи для голосовых и кружочков в Telegram

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages