MediaChef Голосовой ввод
Голосовой ввод, который не покидает компьютер
Нажмите правый ⌥ где угодно на маке, скажите фразу, нажмите ещё раз — и текст напечатается прямо в то поле, где стоит курсор: в терминале, в чате, в форме браузера. Распознаёт тот же самый Whisper, который MediaChef уже носит с собой, поэтому звук не уходит с диска и по минутам никто не считает. В нашем замере пятисекундная фраза вернулась за 780 миллисекунд.
- Статус
- В релизе с версии 0.8.0, пока только macOS
- Где считается
- Целиком на вашей машине, без аккаунта и загрузок
- Скорость
- 780 мс от клавиши до текста на пятисекундной фразе (замер)
- Сколько стоит
- Нисколько. Ни подписки, ни оплаты по минутам
- Платформа
- Сначала macOS, дальше Windows и Linux
- Разовая загрузка
- Речевая модель, 488 МБ у той, что по умолчанию
Бесплатно и с открытым кодом — код на GitHub Все файлы и заметки о релизе
Как устроен голосовой ввод
-
Один раз включить
На вкладке «Диктовка» — переключатель и выбор триггера: правый ⌥, правый ⌘ или одна из двух комбинаций. Пока не включите — MediaChef не регистрирует глобальный хоткей вообще: приложение, которое молча занимает системное сочетание, ломает чужие приложения.
-
Нажать хоткей где угодно
Работает, когда MediaChef в фоне или его окно закрыто. Два способа: держать клавишу, пока говорите, либо нажать один раз чтобы начать и второй чтобы закончить — смотря какой длины мысль.
-
Сказать
Микрофон открывается только на время диктовки, поэтому оранжевая точка в строке меню гаснет, как только вы закончили. Между нажатиями никто не слушает.
-
Текст появляется там, где курсор
Печатается прямо в активное поле и не трогает буфер обмена. Если удобнее наоборот, в буфер, — это соседняя настройка.
Насколько это быстро на самом деле
Замер сквозной, на ноутбуке с M5: от отпускания клавиши до доставленного текста. Первая строка — настоящая диктовка из живой сборки, остальные — фиксированная пятнадцатисекундная фраза через каждую модель.
| Что мерили | Модель | Время |
|---|---|---|
| Настоящая фраза на пять секунд, от клавиши до текста | small | 780 мс |
| Фраза на пятнадцать секунд | tiny | отдельно не мерили |
| Фраза на пятнадцать секунд | small | 0,66–0,75 с |
| Фраза на пятнадцать секунд | large-v3-turbo | 1,64–1,97 с |
Две вещи эти цифры скрывают, и обе стоит знать. Микрофон отдаёт первый сэмпл через 56 миллисекунд, поэтому слово, начатое одновременно с нажатием, может подрезаться — на практике говорить начинают после клавиши, и никто этого не замечает. И самая первая диктовка после выдачи разрешения на микрофон пропадает: система в это время около 1,8 секунды показывает свой диалог. Нажмите ещё раз — всё работает.
Какую модель брать
Те же четыре модели, что и у рецептов транскрибации, — поэтому если вы уже расшифровываете файлы в MediaChef, модель у вас на диске и голосовой ввод не стоит ни одной загрузки.
| Модель | Загрузка | Характер |
|---|---|---|
| tiny | 78 МБ | Самая быстрая, черновая — для заметки себе сойдёт |
| base | 148 МБ | Быстрая, приличная |
| small — по умолчанию | 488 МБ | Баланс, и её же используют рецепты |
| large-v3-turbo | 1,62 ГБ | Лучшее качество, ждать примерно вдвое дольше |
Начинайте с small. Она стоит по умолчанию по практической причине, а не по технической: это та же модель, что у рецептов, поэтому у действующего пользователя голосовой ввод заработает вообще без скачивания. Переходите на large-v3-turbo, если звук трудный — сильный акцент, шумная комната, два языка в одной фразе, — и примите примерно двукратное ожидание.
Как научить его вашим словам
В каждом деле есть слова, которые распознавание коверкает: названия продуктов, жаргон, фамилия коллеги. Список таких слов можно отдать модели, и она перестаёт гадать. Ниже одна и та же запись — без словаря и со словарём из сорока терминов.
| Без словаря | Со словарём |
|---|---|
| «медиашиф» | MediaChef |
| «ходкий» | хоткей |
| «виспер» | whisper |
| «распознаванию» | распознавание |
Стоило это 0,04 секунды: 0,87 против 0,83 на той же записи. Потолок — около 224 токенов, то есть примерно 400 знаков кириллицы или втрое больше латиницы; MediaChef считает за вас и обрезает сам, потому что Whisper слишком длинный список молча отрезает. Именно этого встроенная диктовка macOS не умеет: научить её вашему словарю нельзя.
Куда попадает текст
Два варианта, и разница между ними ощутимее, чем кажется, когда диктуешь несколько раз в час.
| Настройка | Что происходит | Что требуется |
|---|---|---|
| Печатать | Слова появляются в активном поле. Буфер обмена не тронут | Разрешение «Универсальный доступ», один раз |
| В буфер | Текст копируется, вставляете сами через ⌘V | Ничего, кроме микрофона |
Печать не трогает буфер, и ради этого её и стоит предпочесть: если бы каждая диктовка затирала буфер, держать в нём ссылку во время работы было бы нельзя. Печать в чужое окно macOS считает синтетическим вводом и просит разрешение «Универсальный доступ» — первая же попытка сама откроет нужный раздел системных настроек. Когда разрешения нет, текст всё равно оказывается в буфере: надиктованное не теряется никогда.
Зачем это делать именно локально
Голос никуда не загружается. Диктуют как раз то, что не станешь вставлять в веб-форму: недодуманные мысли, имена клиентов, фразу, которую сейчас отправишь. Облачная диктовка — это по определению копия всего этого на чужом сервере.
Нет счётчика по минутам. Сервисы расшифровки считают деньги по минутам, и это заставляет думать, прежде чем говорить. Здесь модель качается один раз, а сотая за день диктовка стоит ровно столько же, сколько первая.
Работает с выключенной сетью. В самолёте, на закрытой машине, в комнате, где вайфай — самая ненадёжная из присутствующих вещей. Как только модель на диске, интернет не нужен вовсе.
Знает ваши слова. Словарь — это просто список ваших терминов, и это единственное, чего встроенная в macOS диктовка не умеет.
Открытый код, без подписки. GPL-3.0, всё целиком читается на GitHub. Платные инструменты в этой нише берут помесячно за то, что внутри устроено на той же открытой модели.
Когда это не поможет
Говорим прямо, потому что узнать об этом потом хуже, чем прочитать сейчас.
-
У вас не мак.
macOS первым, потому что там всё писалось и проверялось. Windows и Linux следом: движок распознавания уже кроссплатформенный, доработки требуют хоткей и сама печать текста.
-
Нужно, чтобы печатало по ходу речи.
В поле текст приходит, когда вы закончили, а не по слову во время разговора: так фраза распознаётся целиком и точнее. Пока говорите, черновик распознавания виден в плашке под монобровью — но печатается один чистый итог, а не череда правок.
-
Нужно различать говорящих.
Пишется то, что сказано, а не кем. Для интервью на два голоса нужен инструмент расшифровки, сделанный под это, а не хоткей диктовки.
Вопросы
Мой голос куда-нибудь отправляется?
Нет. Звук распознаёт файл модели, лежащий на вашем же диске, и удаляется вместе с временной папкой, в которой жил. Через сеть проходит только разовая загрузка модели, а дальше голосовой ввод работает и с полностью выключенной сетью.
Насколько это быстро?
780 миллисекунд от отпускания клавиши до появления текста — замерено на настоящей пятисекундной фразе с моделью по умолчанию, ноутбук на M5. Пятнадцатисекундная фраза заняла 0,66–0,75 секунды. Тяжёлая large-v3-turbo — примерно вдвое дольше.
Работает ли в любом приложении?
Да: хоткей регистрируется на весь компьютер, поэтому срабатывает и в терминале, и в браузере, и в мессенджере, и в редакторе — при том что сам MediaChef в фоне или вообще с закрытым окном.
Какая комбинация используется?
По умолчанию правый ⌥ — одиночный модификатор: зажали и говорите, или нажали один раз — начать, ещё раз — закончить; вместе с Shift текст отправится Enter'ом. Одиночная клавиша-модификатор ничего не печатает и никем не занята. Сочетания вроде ⌥ Space в режиме удержания печатали пробел, если отпустить ⌥ раньше, — поэтому от них отказались; ⌃⌥ Space и ⌃⌥ D остались как запасные.
Зачем ему «Универсальный доступ»?
Для двух вещей. Услышать клавишу-триггер: одиночный модификатор нельзя зарегистрировать обычным хоткеем, поэтому MediaChef слушает клавиатуру сам, а это macOS разрешает только с «Универсальным доступом». И напечатать текст в окно чужого приложения — это система считает синтетическим вводом. Разрешение одно на оба, выдаётся один раз; после него приложение нужно перезапустить.
А если не выдать разрешение?
Текст уйдёт в буфер обмена, а уведомление скажет почему и откроет нужный раздел системных настроек. Из-за недостающего разрешения надиктованное не пропадает никогда.
Сколько нужно места на диске?
Приложение плюс одна речевая модель: 488 МБ у той, что по умолчанию, 78 МБ у самой маленькой, 1,62 ГБ у самой большой. Если вы уже расшифровываете файлы в MediaChef, модель у вас есть, и голосовой ввод не добавит ничего.
Русский понимает? А два языка вперемешку?
Whisper знает 99 языков, и вы можете либо назвать свой, либо позволить определить его самому. Смесь языков в одной фразе — как раз тот случай, где тяжёлая модель отрабатывает свой размер, а словарь помогает сильнее всего.
Какой длины может быть одна диктовка?
Пять минут, дальше запись останавливается сама и расшифровывает услышанное, а не выбрасывает. На практике диктуют фразами, а не монологами.
Можно отменить на середине?
Escape во время записи выбрасывает дубль и ничего не доставляет. Он перехватывается только пока вы диктуете, поэтому Escape во всех остальных местах работает как обычно.
Это замена встроенной диктовке macOS?
Та же работа с двумя значимыми отличиями: этой можно объяснить ваш словарь, и звук остаётся на вашей машине. Если ни то ни другое вам не важно, встроенная уже стоит в системе и тоже бесплатна.
Правда бесплатно?
Да. MediaChef открыт под GPL-3.0, платной версии и подписки нет — голосовой ввод в том числе. Текущий релиз — 0.8.5, голосовой ввод в нём есть.
Почему текст в плашке отличается от того, что напечаталось?
Это два разных прохода. Пока вы говорите, плашка показывает черновик — его делает лёгкая модель каждые полторы секунды, чтобы успевать за речью. Печатается итог основной модели по цельной записи, со словарём терминов. Обе модели выбираются на вкладке «Диктовка»: поставьте живому показу ту же, что основной, и расхождение исчезнет — ценой отставания плашки.
Почему после обновления снова просит разрешения?
macOS привязывает разрешение не к названию программы, а к её подписи. Сертификата Apple у MediaChef нет — платить за него мы не будем, — поэтому у каждой версии подпись своя, и система считает обновлённое приложение новым. Приложение само снимает устаревшую запись и просит разрешение заново: один переключатель и одно «Разрешить» на обновление.
Переключатель в системных настройках включён, а диктовка не работает.
Значит запись в списке относится к прежней копии приложения — после обновления так и бывает. Выключать и включать её обратно бесполезно, это проверено. MediaChef снимает такую запись сам и вызывает системный запрос: включите его в списке и перезапустите приложение.
Запись пустая, хотя микрофон исправен.
Чаще всего виновата гарнитура: AirPods в кейсе остаются подключёнными и входом по умолчанию, и macOS отдаёт с них ровные нули — любому приложению, не только нашему. Уведомление называет устройство, с которого пришла тишина. Наденьте гарнитуру или выберите микрофон явно на вкладке «Диктовка».
Можно выбрать конкретный микрофон?
Да, на вкладке «Диктовка» есть список устройств ввода. «Как в системе» — это последняя подключённая гарнитура, а не микрофон ноутбука, и именно поэтому явный выбор надёжнее.
Что будет, если нажать триггер и промолчать?
Ничего не вставится. Пустая запись до распознавания даже не доходит: Whisper на тишине не молчит, а выдумывает — русская модель печатала титры «Субтитры создавал DimaTorzok». Такие подписи субтитровщиков распознаются и считаются тишиной, а вы получаете «речи не слышно».
Почему первое нажатие после запуска срабатывает медленнее?
Просыпается аудиоподсистема macOS — до двух секунд на первое открытие микрофона за запуск. Плашка появляется сразу, ещё до того как пошла запись, поэтому держите клавишу, пока она не скажет «Слушаю». Дальше открытие занимает десятки миллисекунд.
Как отправить сообщение голосом, не нажимая Enter?
Нажмите триггер вместе с Shift: текст напечатается и Enter нажмётся сам. Пустая диктовка Enter не нажимает никогда — иначе молчание отправляло бы пустое сообщение или выполняло бы предыдущую команду в терминале.
Что произойдёт, если нажать другую клавишу, держа триггер?
Запись отменится и ничего не вставится. Правый ⌥ с буквой — это чужое сочетание клавиш, а не диктовка, и приложение трактует его именно так.
Надиктованное сохраняется на диск?
Нет. Запись живёт во временной папке и удаляется вместе с ней, а хранение расшифровок по умолчанию выключено. Программа обещает, что содержимое не покидает компьютер, и писать на него всё надиктованное открытым текстом было бы странно: диктуют пароли и куски переписки.
Работает ли поверх полноэкранных приложений?
Да. Плашка показывается над полноэкранными окнами и на всех рабочих столах — диктуют как раз в развёрнутых на весь экран редакторах и терминалах.
Триггер занят другим приложением. Что делать?
На вкладке «Диктовка» есть правый ⌘ — второй одиночный модификатор, у которого у системы тоже нет своих действий, — и две обычные комбинации, ⌃⌥ Space и ⌃⌥ D, на случай если оба модификатора уже кем-то заняты.
MediaChef сегодня
Версия 0.8.5 — бесплатно, открытый код, macOS · Windows · Linux. Голосовой ввод уже внутри.
Бесплатно и с открытым кодом — код на GitHub Все файлы и заметки о релизе
MediaChef — молодой проект: сборки пока без подписи Apple и Microsoft, поэтому первый запуск попросит подтверждение — простая инструкция лежит внутри каждого архива.
Что-то не работает или чего-то не хватает? Напишите: hello@mediachef.app