•••
Как я уже писал, голосовые сообщения — это зло. К несчастью, зла в мире довольно много, искоренить вполне его вряд ли возможно, поэтому приходится как-то с ним жить. К счастью, прогресс неостановим, и новые инструменты способны делать эту жизнь чуть комфортнее.
Мне вчера пришло в голову, что на современном телефоне whisper.cpp должен бегать достаточно уверенно, и наверняка можно организовать удобную локальную распознавалку голосовых сообщений. Да, я знаю, что в том же Телеграме это встроено, но ради одного этого покупать платную версию лень, да и сообщения голосовые валятся не только в Телеграм. А если есть локальное приложение, можно в него из любого мессенджера пересылать голосовые сообщения (все мессенджеры, которыми я пользуюсь, позволяют голосовым сообщением «поделиться» как звуковым файлом).
Беглый поиск по аппсторам и гитхабу показал, что идея запускать whisper.cpp на телефоне пришла в голову не только мне, но приложения, в которых это реализовано, не готовы принимать аудио-файлы через стандартный API Андроида (то самое «поделиться»). В общем, как всегда всё приходится делать самому.
Отправной точкой послужил прошлогодний пост Джейведа Алама с подробным рассказом о том, как, собственно, запускать whisper.cpp в Termux. Дальше пришлось немного поразбираться с дополнительными функциями самого Termux, и в итоге у меня в ~/bin/ появился исполняемый файлик вот такого содержания:
|
|
Само собой, в директорию ~/whisper.cpp склонирован репозиторий, там собран исполняемый файл и скачаны модельки (по инструкции от Джейведа). Я остановился на small, хотя она на моём телефоне и заметно медленнее, чем base (та отрабатывает почти мгновенно, эту приходится ждать несколько секунд), но с русским языком работает сильно лучше.
Собственно вот этот скрипт — самая магия и есть. Если он в ~/bin/ существует, Termux сообщает системе, что умеет принимать файлы — и появляется в том самом меню «поделиться». И туда можно послать эти самые голосовые сообщения, файликами, хоть из Телеграма, хоть из WhatsApp, хоть откуда. И ffmpeg их перекодирует в нужный формат, а whisper.cpp распознает и покажет по-человечески, текстом.
Проблему поиска потом в чате информации из таких сообщений это не решает, конечно. Ну и в целом — костыль костылём. Но, по крайней мере, можно понять, о чём речь, в условиях, когда послушать сообщение не можешь или не хочешь — уже хорошо.
Теперь думаю: так оставить, или сделать прям полноценным приложением? Приложением будет красивее и удобнее, но я ведь под Android не разрабатывал никогда — куча токенов уйдёт…
Реакции