Нейросеть для расшифровки аудио: локально, бесплатно и без облака
Короткий ответ: ставится Whisper, работает прямо на вашем компьютере, звук никуда не уходит и платить не за что. Час записи расшифровывается за единицы минут.
Этот текст я наговорил голосом. Как и большую часть того, что пишу в мессенджеры последние пять месяцев.
Дальше разберу свою сборку: что взял готового, что пришлось переделать, какие кодовые слова использую каждый день и как те же инструменты разбирают записи звонков отдела продаж.
Почему локально, а не облачным сервисом
Скажу прямо: я в этом вопросе параноик, и облачные программы для диктовки обходил специально.
Дело в буфере обмена. Любая программа, которая слушает микрофон и вставляет текст туда, где стоит курсор, по устройству своему умеет две вещи: перехватывать клавиши и управлять буфером. А в буфер обмена попадает всё подряд, включая пароли от сервисов - вы копируете их десятки раз в день, не задумываясь.
То есть любой такой софт технически способен работать как клавиатурный шпион. Не значит, что работает. Значит, что может, а проверить вы это не можете: код закрыт, и что именно разработчик делает с данными, знает только он.
Меня это напрягало годами - в том числе из-за переключателя раскладки, который у меня стоял и делал ровно то же самое. Компания за ним большая и брендом рисковать не станет, тут вопросов нет. Но утечки случаются и у больших, причём регулярно, и в тот день разбираться будет уже поздно.
Был случай, который хорошо это показывает. Знакомый написал такую программу сам и предложил пользоваться: подключаешь свой ключ, всё что наговорил улетает в облако, расшифровывается за секунду и вставляется в курсор. Удобно, быстро, человек проверенный.
Я отказался. Код закрытый, а значит я доверяю не программе, а человеку - и в тот момент, когда через неё поедут мои ключи и мой буфер обмена, личное знакомство перестанет что-либо значить. Лучше скачаю открытое и прочитаю сам.
Я придерживаюсь нулевого доверия: доступ даётся только туда, где он действительно нужен, и ровно в том объёме.
Про то же правило со стороны заказчика я писал в разборе что заказывают у меня и сколько это стоит - там про то, как не передавать доступы вообще.
Отсюда и остальные доводы, которые к паранойе отношения уже не имеют.
Звук не уходит наружу. В записи созвона лежит всё: цифры, имена клиентов, условия сделки, и отправить это в чужой сервис - решение, которое принимаешь один раз, а живёшь с ним долго.
Нет лимитов и подписки. Расшифровал час - расшифруй ещё сто, единственный расход тут это время процессора.
Работает без интернета - в самолёте, в дороге, при плохой связи.
Интернет всё-таки нужен в одном месте: если полученный текст вы отправляете в облачную модель на обработку. Но это уже текст, а не голос, и отправляете вы ровно то, что решили отправить.
Что я собрал
Начал не с нуля: взял готовый проект с GitHub - открытый, с кодом, который можно прочитать. Это и было главным условием после всего сказанного выше.
И сразу упёрся в конфликт: проект поссорился с переключателем раскладки, который стоял у меня годами, а нужны были обе функции.
- Удалил переключатель раскладки.Раз уж он конфликтует, держать два инструмента, которые дерутся за одни и те же горячие клавиши, бессмысленно.
- Переписал его функцию внутрь проекта.Переключение раскладки там, где и так перехватываются клавиши, оказалось несложным делом.
- Собрал в приложение.Чтобы запускалось само и не требовало терминала.
- Пользуюсь пятый месяц.Безотказно.
Готовый проект с GitHub редко подходит как есть. Но переделать чужое под себя почти всегда дешевле, чем писать своё.
Как это работает каждый день
Диктую вместо печати. Нажал горячую клавишу, сказал, отпустил - текст появился там, где стоял курсор. В любом приложении: мессенджер, почта, редактор кода.
Кидаю целые записи. После созвона беру файл и прошу расшифровать. Через несколько минут - текст, с которым уже можно работать: искать обещания, вынимать задачи.
Выбираю модель под задачу. Их несколько: мелкие работают быстрее и годятся для коротких реплик, крупные медленнее, но точнее - их беру на записи созвонов, где важно каждое слово.
Кодовые слова: главный приём
Вот то, из-за чего это перестало быть просто диктофоном.
К распознанному тексту можно применить обработку, и запускается она кодовой фразой. Говоришь обычным голосом, добавляешь фразу - и получаешь не сырую расшифровку, а готовый результат.
Фраза ловится только в начале или в конце. Сказанную в середине обработка не замечает, и это правильно: иначе она срабатывала бы каждый раз, когда вы просто упомянули английский в разговоре.
У меня таких два, и оба закрывают настоящую боль.
«Перепиши красиво»
Говорю и пишу я по-разному: устная речь это повторы, самоперебивания и отсутствие абзацев, и в переписке так выглядит плохо.
Поэтому я дообучил обработку своей письменной манере: где ставить абзацы, какая пунктуация моя, а какая нет. Длинных тире она не ставит - я их не использую, а модели обожают. Двоеточий с перечислениями тоже избегает.
Было
Наговорил сообщение, потом десять минут руками расставлял абзацы и убирал «вот», «короче», «ну».
Стало
Наговорил, сказал кодовое слово, вставил готовый текст. Он выглядит как написанный, а не надиктованный.
Про то, как вообще научить модель писать вашим голосом и почему промпт для этого не годится, у меня отдельный разбор: написать пост с помощью нейросети.
«Переведи на английский»
Английский я читаю свободно и понимаю всё, что отвечают, а вот написать длинное письмо без ошибок в пунктуации и орфографии для меня мучение.
Поэтому наговариваю на русском и в конце говорю кодовую фразу. В курсор вставляется английский текст. Поддержка сервиса, письмо партнёру, ответ в чужом чате - всё быстро и без стыда за орфографию.
Проверяйте фразу на самой себе: скажите её посреди обычной речи и убедитесь, что ничего не произошло. Если обработка цепляется за середину, вы будете долго гадать, почему текст иногда уезжает.
Второе применение: записи звонков
Здесь расшифровка перестаёт быть удобством и становится инструментом.
Нужно проверить, пользуется ли отдел продаж скриптами. Раньше это означало слушать звонки руками - то есть не делать этого вообще.
Теперь цепочка такая:
Выгружаю звонки из CRM за период, вместе со статусами сделок. Расшифровываю. Дальше агенты ищут в расшифровках конкретные фразы - те самые, которые должны были прозвучать.
Результат выводится в веб-интерфейс: где нашлось, на какой секунде, что было до и после, ссылка на сам звонок, чтобы переслушать. Ошибки вынесены отдельной группой, список фильтруется.
Агенты разбирают вслепую. Исход сделки им не показывают - иначе они начнут подгонять оценку под результат и найдут блестящую работу в каждом выигранном звонке. Сопоставление с продажами происходит уже после, на готовых отметках.
И вот что это даёт на самом деле. Можно сравнить конверсию там, где фраза прозвучала, и там, где нет. То есть провести настоящий сплит-тест скрипта: по менеджерам, по периодам, по источникам лидов, по тому, дошёл ли клиент до пробного занятия.
Вот пример из другого разбора, про скидки. Сто сорок девять продающих звонков, в пятидесяти четырёх цену действительно срезали.
Конверсия со срезом - тридцать три процента. Без среза - тридцать два. Разница в пределах погрешности, то есть скидка в среднем не продаёт. Она помогла там, где клиент сам возражал по цене: десять случаев из двадцати семи. В остальных менеджер отдавал маржу просто так.
Это тот разговор, который без цифр заканчивается ничем: все уверены, что без скидки не купят. А с цифрами он занимает минуту.
Это отдельный проект, и про него будет свой разбор. Здесь важно другое: всё начинается с локальной расшифровки, без которой звонки так и остались бы неразобранным архивом.
Где это ломается
Имена и термины. Крупная модель ошибается редко, но спотыкается именно на том, что для вас важно: фамилии, названия систем, профессиональный жаргон. Лечится словарём - списком своих слов, который заметно поднимает точность.
Плохая запись. Эхо в комнате, два человека говорят одновременно, микрофон в кармане - всё это модель не чинит. Расшифровка будет настолько хороша, насколько хороша запись.
Длинные файлы едят время. Час записи на крупной модели - это минуты ожидания, а не секунды. Для пакетной обработки это нормально, для разговора в реальном времени берите модель полегче.
Расшифровка созвона - это чужая речь. Прежде чем отправлять такой текст в облачную модель на обработку, подумайте, что именно в нём лежит. Локально он безопасен, дальше - уже ваша ответственность.
Кому не нужно
Тому, кто печатает быстро и мало. Если вы пишете короткие сообщения, выигрыш не окупит настройку.
Тому, у кого слабая машина. Крупные модели требуют памяти. На старом ноутбуке придётся брать мелкие, а они заметно хуже на русском.
Тому, кому нужна юридическая точность. Расшифровка это рабочий материал, а не протокол. Для документов её всё равно вычитывают.
Сколько это стоит
Нисколько: модели открытые, проект открытый, а расход только на электричество.
Из вложений - вечер на сборку и несколько дней на то, чтобы привыкнуть говорить вместо печати. Привычка ломается тяжелее, чем настраивается программа.
Расшифровка локально и разбор звонков отдела продаж
Собираем диктовку, которая работает без облака, и доводим её до дашборда: выгрузить звонки из CRM, расшифровать, найти нужные фразы и сравнить конверсию там, где они прозвучали.
Уроки выходят по одному, начиная с октября. Доступ к набору один раз, новые части приходят на ту же почту. Если передумаете, отпишетесь одной кнопкой.
Пишу про свои автоматизации в телеграм-канале: короткие заметки по ходу работы, без расписания и без рекламы.
Читать каналЕсли нужна не инструкция, а готовое решение под ваш бизнес — напишите мне, обсудим задачу.