Расшифровка голосовых для CRM на двух ядрах без видеокарты: faster-whisper, ffmpeg и cron
katebased 46 минут назад Краткое содержание статьи Расшифровка голосовых для CRM на двух ядрах без видеокарты: faster-whisper, ffmpeg и cron Средний 3 мин 925 Python * Машинное обучение * Natural Language Processing *...
Will Anthropic be the #3 AI Lab at the end of November 2026 (Style Control On)?
Вот важная новость с фронта ИИ: katebased 46 минут назад Краткое содержание статьи Расшифровка голосовых для CRM на двух ядрах без видеокарты: faster-whisper, ffmpeg и cron Средний 3 мин 925 Python * Машинное обучение * Natural Language Processing * CRM-системы * Кейс Из песочницы Мы делаем CRM для продаж в переписке. Клиенты наших магазинов любят голосовые: «Здравствуйте, а вот этот набор ещё есть, и сколько доставка до Самары? » Менеджеру такое сообщение нужно прослушать, а в шумном цеху или на созвоне это неудобно.
Плюс по списку диалогов не понять, о чём голосовое, пока его не откроешь. Решение очевидное — показывать под плеером текст. Расскажу, как мы это сделали без облачных API распознавания, на маленьком сервере в России, и на какие грабли наступили.
Технические детали
Почему не взять расшифровку из мессенджераВКонтакте умеет расшифровывать голосовые сам: у вложения audio_message в ответе API есть поле с текстом. Но для сообщений сообщества оно у нас оставалось пустым даже спустя несколько дней. У MAX, Telegram и WhatsApp, которые приходят через сервис-посредник, расшифровки нет совсем.
Облачные сервисы распознавания отпали по другой причине: голосовое клиента — это персональные данные. Отправлять их на чужие серверы за границу мы не хотели, поэтому всё должно работать на наших серверах в России, а файлы — не сохраняться. Модель и железоВзяли faster-whisper — реализацию Whisper на CTranslate2, которая заметно быстрее оригинала на CPU.
Модель small с квантованием int8: на русской разговорной речи она ошибается в отдельных словах, но смысл передаёт уверенно, а большего менеджеру и не надо. Сервер — облачный, 2 ядра, без видеокарты. Распознавание вынесли на отдельную машину, чтобы не отнимать процессор у самой CRM.
Отраслевые последствия
На ней голосовое длиной 35 секунд расшифровывается примерно за 9 секунд. Настройки, которые дали этот результат:compute_type="int8" — квантование весов, главный выигрыш по скорости на CPU;beam_size=1 — жадное декодирование вместо поиска по лучу, на коротких фразах качество почти не меняется;vad_filter=True — детектор голоса вырезает тишину и паузы, которых в голосовых много;language="ru" — без автоопределения языка, это и быстрее, и меньше ошибок на коротких записях. Грабли: декодирование звукаfaster-whisper умеет сам открывать файл через PyAV.
На голосовых из мессенджеров это ломалось: на части файлов PyAV падал с ошибкой чтения метаданных, а голосовые приходят в разных форматах: ogg, m4a, mp3. Проще оказалось отдать декодирование ffmpeg и передать модели уже готовый массив: моно, 16 кГц, float32 от −1 до 1. Тогда формат исходного файла перестаёт иметь значение.
Скрипт распознаванияВот весь скрипт целиком. Звук приходит на stdin, текст уходит в stdout:#! /opt/stt/bin/python import subprocess, sys import numpy as np from faster_whisper import WhisperModel # ffmpeg переводит любой формат в сырой PCM: 16 бит, моно, 16 кГц raw = subprocess.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.



