MediaChef

MediaChef 语音输入

说话打字,而且什么都不离开这台电脑

在 Mac 的任何地方按下 右侧的 ⌥ 键,说一句话,再按一次——文字就直接打进光标所在的那个输入框:终端、聊天窗口、浏览器表单都一样。负责识别的就是 MediaChef 本来就带着的那个 Whisper,所以声音不会离开你的硬盘,也没人在数分钟。我们实测:一句五秒的话,780 毫秒就回来了。

状态
自 0.8.0 版起已发布,目前仅 macOS
在哪里跑
完全在你的电脑上,无需账号,不上传
速度
五秒的话从按键到文字 780 毫秒(实测)
多少钱
零。既无订阅,也不按分钟计费
平台
先 macOS,之后 Windows 和 Linux
一次性下载
一个语音模型,默认那个 488 MB

免费且开源—— 在 GitHub 上查看代码 全部文件与版本说明

语音输入怎么工作

  1. 开启一次

    「听写」标签页里有一个开关和触发键可选:右 ⌥、右 ⌘,或两种组合键之一。你不开启,MediaChef 就完全不去注册任何全局快捷键:一个悄悄占走系统组合键的程序,就是一个会弄坏别的程序的程序。

  2. 在任何地方按快捷键

    MediaChef 在后台、甚至窗口关着都能用。两种用法:按住键说话,或者按一次开始、再按一次结束——看这个念头有多长。

  3. 说话

    麦克风只在你说的时候打开,所以菜单栏那个橙色圆点在你说完的一瞬间就灭了。两次按键之间,没有人在听。

  4. 文字出现在光标那里

    直接打进当前输入框,不碰你的剪贴板。如果你偏好反过来、让它进剪贴板,那是旁边那个设置。

MediaChef 准备转换:操作台等待视频文件,任务队列在右侧。
MediaChef 的「听写」标签页:触发键、模型、语言、词典和权限状态,都在一处。

实际到底有多快

在一台 M5 笔记本上端到端实测:从松开按键到文字送达。第一行是活跃会话里的一次真实语音输入,其余是同一段十五秒的话分别过每个模型。

测的是什么模型耗时
真实的五秒句子,从按键到打出文字small780 毫秒
十五秒的句子tiny未单独测
十五秒的句子small0.66–0.75 秒
十五秒的句子large-v3-turbo1.64–1.97 秒

这些数字藏了两件事,两件都值得知道。麦克风要 56 毫秒才交出第一个采样,所以和按键同一瞬间开口的那个词有可能被切掉——实际上人都是按完键再说,谁也不会察觉。另外,授予麦克风权限之后的第一次语音输入会丢:系统那会儿花了约 1.8 秒在显示它自己的对话框。再按一次就好了。

该用哪个模型

和转写菜谱用的是同样四个模型——所以如果你已经在用 MediaChef 转写文件,模型就在你硬盘上,语音输入一点下载都不用。

模型下载体积性格
tiny78 MB最快,粗——给自己记一条备忘够用
base148 MB快,还行
small——默认488 MB平衡点,也正是菜谱已经在用的那个
large-v3-turbo1.62 GB质量最好,等的时间约翻一倍

从 small 开始。它之所以是默认,理由是实际的而非技术的:它就是菜谱用的那个模型,所以对已有用户来说,语音输入不用下载任何东西就能跑起来。只有音频难办时才往上换 large-v3-turbo——口音重、房间吵、一句话里夹两种语言——并接受每句话大约翻倍的等待。

教它你的词

每个行当都有些词会被识别搅烂:产品名、行话、同事的姓。这份清单可以交给模型,它就不再瞎猜了。下面是同一段录音,一次没给词表,一次给了四十个术语的词表。

没有词表给了词表
「медиашиф」MediaChef
「ходкий」хоткей
「виспер」whisper
「распознаванию」распознавание

代价是 0.04 秒:同一段素材上 0.87 对 0.83。上限约 224 个词元,也就是西里尔字母约 400 个字符,拉丁字母大约是三倍;MediaChef 替你数并且截断,因为 Whisper 自己会把过长的词表悄悄砍掉。这正是 macOS 内置语音输入做不到的:你没法教它你的词汇。

文字送到哪里

两个选择,而当你一小时说好几次的时候,这个差别比听起来重要得多。

设置会发生什么需要什么
直接输入文字出现在当前输入框,你的剪贴板毫发无损「辅助功能」权限,一次
剪贴板文字被复制,你自己用 ⌘V 粘贴除麦克风外什么都不需要

直接输入不动剪贴板,而这正是它值得优先的原因:如果每次语音输入都覆盖剪贴板,你就没法在工作时往那儿存一个链接。macOS 把往别的应用里打字算作合成输入,因此要「辅助功能」权限——第一次尝试会自己打开系统设置里对应的那一栏。而权限缺失时,文字仍然会进剪贴板:一次语音输入永远不会白说。

为什么在本机做才是关键

你的声音不会被上传。 人们口述的,恰恰是不会往网页表单里粘的东西:没想完的念头、客户名字、马上就要发出去的那句话。云端语音输入按定义就是这一切在别人服务器上的一份副本。

没有按分钟的计数器。 转写服务按音频分钟收钱,这会让人开口前先算账。这里模型只下载一次,当天第一百次语音输入和第一次花的钱一样多:零。

断网也能用。 在飞机上,在封闭的机器上,在无线网是全场最不靠谱那件东西的房间里。模型一旦落在硬盘上,语音输入就再不碰互联网。

它学你的词汇。 词表就是一份你自己词语的清单,而这是 macOS 内置语音输入唯一做不到的事。

开源,无订阅。 GPL-3.0,全部代码在 GitHub 上可读。这个领域的付费工具按月收钱,而底下用的是同一个开放模型。

什么时候帮不上

直说了,因为以后才发现比现在读到更糟。

  1. 你不用 Mac。

    macOS 排在最前,因为它是在那儿做出来、也在那儿验过的。Windows 和 Linux 随后:识别引擎本来就是跨平台的,需要按平台单独做的是快捷键和文字的输入。

  2. 你要它边说边打。

    文字在你说完后才进入输入框,而不是边说边逐词出现:这样整句一起识别,更准确。说话时,识别的草稿会显示在刘海下方的面板里——但最终输入的是一份干净的结果,而不是一连串的修改。

  3. 你要区分说话人。

    它写的是说了什么,不是谁说的。两个人的访谈需要专门为此做的转写工具,而不是一个语音输入快捷键。

常见问题

我的声音会被送到什么地方吗?

不会。识别声音的是躺在你自己硬盘上的一个模型文件,声音随着它待过的临时目录一起被删掉。唯一经过网络的只有那一次性的模型下载;之后语音输入在完全断网的情况下也照跑。

有多快?

从松开按键到文字出现是 780 毫秒——在一台 M5 笔记本上、用默认模型、拿一句真实的五秒句子测的。十五秒的句子用了 0.66–0.75 秒。重量级的 large-v3-turbo 大约要翻一倍。

在任何应用里都能用吗?

能:快捷键是整个系统范围注册的,所以在终端、浏览器、聊天软件或编辑器里都会触发,而 MediaChef 本身可以在后台,甚至窗口关着。

用的是哪个组合键?

默认是右侧的 ⌥ 键——单独的修饰键:按住说话,或按一次开始、再按一次结束;同时按 Shift 会以 Enter 发送。单独的修饰键不会输入任何字符,也不与其他应用冲突。像 ⌥ Space 这样的组合在按住模式下、先松开 ⌥ 时会输入一个空格,因此被取消;⌃⌥ Space 和 ⌃⌥ D 保留作为备选。

为什么需要「辅助功能」权限?

有两个用处。一是监听触发键:单独的修饰键无法注册为普通快捷键,所以 MediaChef 自己监听键盘,而 macOS 只在授予「辅助功能」后才允许这样做。二是向其他应用的窗口输入文字,系统把这视为合成输入。一个权限同时涵盖两者,授予一次即可;之后重启应用。

要是我不给呢?

文字会进剪贴板,通知会告诉你原因,并且已经替你打开了系统设置里对应的那一栏。绝不会因为缺一个权限,就让说过的话白说。

占多少硬盘?

应用加一个语音模型:默认那个 488 MB,最小的 78 MB,最大的 1.62 GB。如果你本来就用 MediaChef 转写文件,模型已经在你硬盘上,语音输入不再多占。

它懂中文吗?两种语言混着说呢?

Whisper 支持 99 种语言,你可以指定自己的,也可以让它自己判断。一句话里混语言,恰恰是重量级模型值回它体积、也是词表帮助最大的场景。

一次能说多长?

五分钟,之后它自己停下,并且把听到的转写出来而不是丢掉。实际上人都是一句一句说,而不是长篇独白。

能说到一半取消吗?

录音时按 Escape 会把这一条扔掉,什么都不送出。它只在你说话期间被注册,所以在其他任何地方都不影响 Escape。

它能替代 macOS 自带的语音输入吗?

做的是同一件事,但有两点要紧的差别:这个可以教它你的词汇,而且声音留在你自己的机器上。如果这两点你都不在意,自带的本来就在那儿,也是免费的。

真的免费吗?

真的。MediaChef 是 GPL-3.0 下的开源软件,没有付费版也没有订阅——语音输入也一样。已发布的版本是 0.8.5,语音输入已包含在内。

为什么面板上显示的文字和最终打进去的不一样?

这是两次不同的识别。你说话时,面板显示的是草稿——由一个轻量模型每一秒半跑一次,才能跟上语速。真正打进输入框的,是主模型对整段录音的最终结果,并且用上了你的术语词典。两个模型都在「听写」标签页里选:把预览模型设成和主模型一样,差异就没有了,代价是面板会滞后。

为什么更新之后又要重新授权?

macOS 把权限绑定在应用的签名上,而不是名字上。MediaChef 没有 Apple 证书——我们不打算为它付费——所以每个版本的签名都不同,系统就把更新后的应用当成新应用。应用会自己移除过期的条目并重新请求:每次更新一个开关加一次「允许」。

系统设置里的开关是开着的,但听写不工作。

那说明列表里那一条属于应用的上一个副本——更新之后就是这样。把它关掉再打开并不会重新绑定,我们试过。MediaChef 会自己清掉那一条并触发系统询问:在列表里打开它,然后重启应用。

麦克风是好的,可录音是空的。

多半是耳机的问题:放在盒子里的 AirPods 仍处于连接状态,仍是默认输入,而 macOS 会从它那里输出一片零——对所有应用都一样,不只是我们。通知会说出静音来自哪个设备。戴上耳机,或者在「听写」标签页里明确选择麦克风。

可以指定某个麦克风吗?

可以,「听写」标签页里列出了所有输入设备。「与系统一致」指的是最近连接的耳机,而不是笔记本的麦克风——正因如此,明确指定更可靠。

按下触发键却什么都不说,会怎样?

什么都不会被输入。空录音连识别都到不了:Whisper 面对静音不会沉默,而是会编——俄语模型曾打出字幕组的署名。这类字幕署名会被识别出来并当作静音处理,你收到的是「没听到人声」。

为什么启动后第一次按键比较慢?

macOS 的音频子系统正在唤醒:每次启动后第一次打开麦克风最多要两秒。面板会立刻出现——在录音真正开始之前——所以请按住按键,直到它说正在听。之后再打开只需几十毫秒。

怎样用语音直接发出消息,不用自己按回车?

按触发键的同时按住 Shift:文字打进去后会自动按下回车。空的听写永远不会按回车——否则一言不发就会发出空消息,或者在终端里执行上一条命令。

按住触发键的同时按了别的键会怎样?

录音被取消,什么都不会输入。右 ⌥ 加一个字母是别的程序的快捷键,不是听写,程序就是这么理解的。

我口述的内容会写到硬盘上吗?

不会。录音存在临时文件夹里,随文件夹一起删除,而保存识别历史默认是关闭的。应用承诺你的内容不离开这台机器;把你口述的一切明文写到硬盘上,与这个承诺很不相称——人们会口述密码和私人对话的片段。

能在全屏应用之上工作吗?

可以。面板绘制在全屏窗口之上,并出现在所有桌面上——全屏的编辑器和终端,恰恰就是人们听写的地方。

触发键已经被别的应用占用了,怎么办?

「听写」标签页里还有右 ⌘——另一个 macOS 没有分配自身动作的单独修饰键——以及两个普通组合键 ⌃⌥ Space 和 ⌃⌥ D,以防两个修饰键都已被占用。

今天的 MediaChef

版本 0.8.5——免费、开源,macOS · Windows · Linux。语音输入已包含在内。

免费且开源—— 在 GitHub 上查看代码 全部文件与版本说明

MediaChef 还很年轻:安装包尚未由 Apple 或 Microsoft 签名,因此首次启动会要求确认——每个下载包里都附有纯文本说明。

有问题,或者少了什么?给我们写信: hello@mediachef.app