tgoop.com/vibe_coding_channel/263
Last Update:
Вайб-кодим сервис транскрибации аудио на базе Whisper под Apple Silicon.
Как вы помните, я недавно снял видео, в котором сравнивал UX n8n и langflow. Перед публикацией в Telegram мне нужно было наложить на видео субтитры. Я загуглил, что сейчас можно использовать для таких целей и нашел следующие варианты:
veed.io - крутой инструмент, но очень дорогой, к тому же я не так часто делаю видео, чтобы платить 20$ за это дело.
clideo.com - я не пожалел денег и оплатил его, просто потому, что он обошелся в 9$, и я как фронтендер в анамнезе, ценю минималистичные и простые интерфейсы. А там интерфейсы делал какой-то Конфуций, на столько просто, чисто, изящно, я прям получил удовольствие.
Но потом я подумал, что субтитры не такая уж и сложная вещь, чтобы за нее платить, и вспоминил что gladia.com дает 10 часов в месяц бесплатно на транскрибации, и у них есть возможность их скачивать в формате .srt. Я залил свое видео на YouTube, и закинул ссылку на Gladia, он сделал мне .srt. Я открыл бесплатную программу для сжатия видео HandBrake, и там вставил полученный .srt во вкладке Subtitles. Вот такой бесплатный способ я нашел.
Но я подумал, Gladia - это внешний зарубежный сервис, лимиты могут меняться (привет Cursor), а Handbrake вообще десктопное приложение. Значит такой способ не подходит для интеграций в n8n. Тогда я решил сделать то, что давно хотел на своем домашнем сервере MacStudio, а именно поднять свой Whisper как веб-сервис на FastApi.
Начал я с whisper-cli. Поднял его с помощью Brew. Скачал сначала Base модель, но качество мне не понравилось. Когда попробовал Large модель, ощутил как продакшен уровень вошел в мой дом.
Я попросил Kiro написать мне микросервис с одним ендпоинтом POST /srt, который бы дергал whisper-cli. Он сначала начал делать все правильно, а потом начал путаться, и использовать Python библиотеку whisper,  которая работает на базе Torch. В процессе работы с ней, я узнал что Torch еще не работает нормально с Apple Silicon Metal GPU. А запускать транскрибацию на Large модели на CPU, ну прям больно.
Попросил выпилить Torch версию Whisper, и использовать whisper-cli. Потом пошел гуглить, какие еще есть альтернативы, и обнаружил крутой репозиторий с примерами портирования разных ML моделей под MLX. MLX - это фреймворк для машинного обучения, специально разработанный для эффективной работы на чипах Apple Silicon.
И среди примеров оказался Whisper MLX который отлично запускается на Apple Silicon, через Python библиотеку, а не через CLI. Kiro быстро сориентировался в документации, выпилил whisper-cli, и переписал все на whisper-mlx. Заработало как по маслу, GPU очень эффективно использовал, транскрибировал 18 минутную запись на Large модели за 1-2 минуты. Но мне показалось, что качество Large модели под MLX ниже, чем под whisper-cli, но об этом я напишу в другой раз.
@vibe_coding_channel
@vibe_coding_community
BY Вайб-кодинг по Чуйкову | Ментор

Share with your friend now:
tgoop.com/vibe_coding_channel/263
