- PVSM.RU - https://www.pvsm.ru -
Нельзя просто так взять и транскрибировать аудио-файл
В 23м году я поступил на онлайн-магистратуру ВШЭ "Управление организациями и проектами". Онлайн-магистратура - это лекции онлайн и записи для тех, кто не может присутствовать. Мой опыт говорил о том, что не только многие вещи требуют повторного изучения, но и видео - не мой любимый формат потребления информации.
Поэтому было принято решение транскрибировать записи лекций и делать очищенный текст с помощью LLM.
Пайплайн выглядел примерно так:
транскрибировать текст лекции
очистить от технических моментов
выделить ключевые темы
реструктурировать текст в более последовательный формат с полным сохранением информации по ключевым темам
Изначально я использовал локальную библиотеку OpenAI Whisper, но мой не самый мощный компьютер распознавал 3х-часовое видео в текст за 8 часов(модель large v3).
С ростом частоты лекций стало понятно, что такой подход не масштабируется, и необходимо иметь возможность ускориться с транскрибацией - привет платные сервисы!
Сервис OpenAI требует приседаний с картами зарубежных банков. Я знал о Yandex SpeechKit, но когда-то API оставил не лучшее впечатление. Решил попробовать Sber SaluteSpeech — на тот момент была серия публикаций о сервисе, и он показался достаточно адекватным.
Когда я открыл документацию и GitHub-репозиторий SaluteSpeech [1], понял, что скучно не будет: множество деталей протокола, асинхронные пайплайны, работа с сертификатами Минцифры.
Умный в гору не пойдёт, но в наших краях ценится слабоумие и отвага. Я взял за пример API Whisper, где транскрибация выглядит максимально просто, и за один вечер написал свою библиотеку, которая:
упрощает процесс транскрибации,
прячет сертификаты внутри пакета,
делает использование сервиса доступным для простых людей.
Теперь весь процесс — «передал аудио → получил текст (или сегменты текста)» — стал проще.
salute_speech — это лёгкий клиент для Sber SaluteSpeech с асинхронным API, CLI и готовыми настройками по умолчанию. Он избавляет от сложностей с сертификатами, токенами авторизации и пошаговым процессом транскрибации аудио. Библиотека особенно полезна, если:
нужно быстро интегрировать транскрибацию в сервис,
вам лень вы хотите простой интерфейс в духе сервисов OpenAI.
Простой API, знакомый по Whisper:
client.audio.transcriptions.create(file=..., language="ru-RU")
Асинхронность — сознательное отступление от API OpenAI, продиктованное особенностями моего восприятия.
CLI из коробки — транскрибация подготовленного аудио одной командой.
Сертификаты Минцифры — «под капотом», без ручной возни.
Токены авторизации — запрашиваются и продляются без вашего участия.
pip install salute_speech
Каждый канал транскрибируется API SaluteSpeech отдельно, поэтому для своих целей я конвертировал звук в моно 16 кГц, что рекомендую и вам.
Для работы с сервисом вам понадобится Ключ Авторизации. Официальная документация безупречна [2], у меня проблем с получением ключа не возникло.
export SBER_SPEECH_API_KEY=ваш_ключ
ffmpeg -i лекция.mp4 -ac 1 -ar 16000 lecture.wav
# Получаем текст
salute_speech transcribe-audio lecture.wav -o transcript.txt
# WebVTT субтитры
salute_speech transcribe-audio lecture.wav -o subtitles.vtt
# SRT субтитры
salute_speech transcribe-audio lecture.wav -o subtitles.srt
# JSON с сегментами
salute_speech transcribe-audio lecture.wav -o transcript.js
import asyncio, os
from salute_speech.speech_recognition import SaluteSpeechClient
async def main():
client = SaluteSpeechClient(client_credentials=os.getenv("SBER_SPEECH_API_KEY"))
with open("meeting.mp3", "rb") as f:
result = await client.audio.transcriptions.create(file=f, language="ru-RU")
print(result.text)
asyncio.run(main()
Субтитры для видео (VTT/SRT) и сегменты для ручного редактирования.
Конспект лекций и встреч, далее — генерация заметок с помощью LLM.
Интеграция в сервисы — простой асинхронный интерфейс.
Официальный SDK мощный, но слишком детализированный для простых задач.
Сертификаты Минцифры не поддерживаются в основных дистрибутивах Linux — библиотека маскирует эту сложность.
Работа с временными токенами авторизации требуется для безопасности, но не интересна в бизнес-сценариях — я реализовал её за вас и спрятал «под капотом».
Когда вам нужен полный контроль, используйте официальный репозиторий [3]. Когда хочется просто сделать задачу и не тратить день на интеграцию — попробуйте salute_speech [4].
SaluteSpeech ежемесячно предоставляет 100 бесплатных минут распознавания аудио. Этого достаточно для простых задач и экспериментов, но дальше становится больно.
Как я говорил, я использовал распознавание речи для обработки лекций - 5-6 дней в неделю по 3 часа очень быстро исчерпывают пакеты из 1000 минут за 1200 рублей.
Что вызывает пролетарский гнев - для организаций ценник вдвое ниже. Для сравнения у Яндекса цены сопоставимы [5] с ценником для организаций.
Автор: maximua
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/speechkit/430154
Ссылки в тексте:
[1] GitHub-репозиторий SaluteSpeech: https://github.com/salute-developers/salute-speech/tree/master/recognition
[2] Официальная документация безупречна: https://developers.sber.ru/docs/ru/salutespeech/api/authentication
[3] официальный репозиторий: https://github.com/salute-developers/salute-speech
[4] salute_speech: https://github.com/mmua/salute%5C_speech
[5] цены сопоставимы: https://yandex.cloud/ru/docs/speechkit/pricing
[6] Источник: https://habr.com/ru/articles/945480/?utm_source=habrahabr&utm_medium=rss&utm_campaign=945480
Нажмите здесь для печати.