Skip to main content

stt-ru

stt-ru

Speech-to-Text Russian - распознавание русской речи: библиотека Python, команда, веб-сервис и Docker-образ

Документация · PyPI · Docker · English

Версия Поддерживаемые версии Python Сборка Ruff Лицензия Open in Colab


stt-ru распознает русскую речь в записях разговоров, лекций и диктовки. Речь распознает модель GigaAM-v3 через onnx-asr: текст получается с пунктуацией и числами, каналы стереозаписи распознаются как отдельные говорящие, результат сохраняется в субтитры и таблицы. Модель работает на CPU без PyTorch, на GPU NVIDIA - через ONNX Runtime.

  • Команда transcribe - файлы и каталоги, результаты каждого файла и общий файл на пакет, мониторинг папки с новыми записями
  • Форматы результата - TXT, JSON, JSONL, SRT, VTT, ASS для Aegisub и CSV для таблиц
  • Библиотека Python - распознавание файлов и записей в памяти, экспорт результата
  • Модели - любая модель onnx-asr: GigaAM, T-one, Vosk, Whisper и другие; устройства и параметры поиска речи
  • Оценка качества - WER, CER и скорость моделей на своей разметке
  • Веб-сервис - веб-интерфейс с формой волны и переходом по фрагментам, REST API, очередь и токен доступа
  • Docker - образы для CPU и GPU NVIDIA с моделью внутри

Установка

Требуется Python 3.11 или новее.

pip install stt-ru

Или с помощью uv:

uv add stt-ru

Дополнения: ffmpeg - форматы M4A, AAC, звук из видео без установленного ffmpeg; service - веб-интерфейс и REST API; eval - оценка качества. Все сразу:

pip install "stt-ru[ffmpeg,service,eval]"

Модель (около 230 МБ) скачивается с Hugging Face при первом запуске. GPU и работа без интернета - на странице Установка.

Быстрый старт

stt-ru transcribe call.wav                                       # текст в консоль
stt-ru transcribe calls/ -o out/ -f srt,ass,csv --summary out/all.csv
stt-ru transcribe calls/ -o out/ --watch                         # мониторинг папки
stt-ru evaluate eval.csv -m gigaam-v3-e2e-rnnt -m t-tech/t-one   # сравнение моделей
stt-ru serve                                                     # http://127.0.0.1:8000
>>> from stt_ru import Transcriber

>>> result = Transcriber().transcribe("call.wav")
>>> for segment in result.segments:
...     print(segment.speaker, segment.start, segment.end, segment.text)
Канал 1 0.994 9.054 Наталья, благодарю вас за ожидание. По данному вопросу я сейчас ваш звонок переведу на специалиста профильного подразделения. Оставайтесь, пожалуйста, на линии.
Канал 0 3.49 3.934 Угу
Канал 0 7.682 8.222 Угу
Канал 1 9.634 12.638 Я в свою очередь с вами прощаюсь. Всего доброго, до свидания.
Канал 0 12.994 13.662 До свидания.

>>> result.save("call.srt")
PosixPath('call.srt')

Ноутбуки с примерами - в каталоге notebooks/: быстрый старт, аналитика звонка, длинная запись и субтитры, оценка моделей, веб-сервис из Python. Каждый открывается в Colab, описания - на странице Примеры.

Docker

docker run -d -p 8000:8000 -e STT_RU_TOKEN=my-secret-token ghcr.io/sergeyshk/stt-ru          # веб-сервис
docker run --rm -v "$PWD:/data" ghcr.io/sergeyshk/stt-ru transcribe call.wav         # один файл
docker run -d --gpus all -p 8000:8000 -e STT_RU_TOKEN=my-secret-token ghcr.io/sergeyshk/stt-ru:latest-gpu

Модель по умолчанию уже в образе: контейнер распознает без сети. Тома, права на запись, Compose и требования GPU-образа - на странице Docker.

Разработка

Проект использует uv для управления зависимостями и ruff для линтинга и форматирования.

git clone https://github.com/SergeyShk/Speech-to-Text-Russian.git
cd Speech-to-Text-Russian

make deps        # создать окружение и установить зависимости
make test        # запустить тесты и примеры из докстрингов (doctest)
make lint        # ruff + mypy
make docker      # собрать Docker-образ

Полный список команд - make help. Документация двуязычная: русские страницы docs/*.md, английские - docs/*.en.md рядом с ними; при правке страницы обновляйте обе версии.

Перед отправкой изменений стоит установить хуки, которые прогонят линтеры на коммите и тесты на пуше:

uv run pre-commit install

Участие в проекте

Баг-репорты, идеи и пул-реквесты приветствуются - issues открыты. Как устроен процесс и что проверить перед отправкой пул-реквеста - в CONTRIBUTING.md; правила общения - в кодексе поведения.

Структура проекта
  • docs - документация MkDocs на русском и английском
  • docker - Docker-образы для CPU и GPU NVIDIA, файлы Docker Compose
  • src/stt_ru:
    • pipeline.py - распознавание файлов и записей в памяти
    • result.py - результат распознавания: фрагменты и сведения о записи
    • batch.py - пакетное распознавание файлов и мониторинг каталогов
    • cli.py - команда stt-ru
    • exceptions.py - исключения библиотеки
    • audio - чтение аудио через soundfile и ffmpeg
    • asr - распознавание моделью onnx-asr
    • vad - параметры поиска речи Silero VAD
    • export - форматы результата
    • evaluation - оценка качества на разметке
    • service - веб-интерфейс, REST API и очередь задач
  • tests - тесты, повторяющие структуру пакета

Авторы

Лицензия

Код распространяется под лицензией MIT. Модель GigaAM-v3 распространяется под лицензией MIT; у других моделей onnx-asr - свои лицензии.

Metadata

Release files for stt-ru 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for stt-ru 0.3.0
File Size Uploaded Provenance
stt_ru-0.3.0.tar.gz 63.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for stt-ru 0.3.0
File Interpreter ABI Platform
stt_ru-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 139.7 kB

Release files / stt_ru-0.3.0.tar.gz

Download URL stt_ru-0.3.0.tar.gz
Size 63.7 kB
Tags Source
SHA-256 checksum
How to use checksums
65d867e8a6fa4017e8273fb69877875b64f3c5efcfde5f0363200ef6aff76eee
BLAKE2b-256 checksum
How to use checksums
6dba626f7b2464894d60c05fdc9abfb93e74222f5d7f991a028aaa8630d1701d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / stt_ru-0.3.0-py3-none-any.whl

Download URL stt_ru-0.3.0-py3-none-any.whl
Size 76.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ea7769a5a743f3f60976576a6322097a8f790c07e316338a949f5157361eb485
BLAKE2b-256 checksum
How to use checksums
c85f4aed1a4183dd41587659d2d879d5d8784faea8263d1080be2059d37637d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for stt-ru 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page