水族馆

自建 Whisper API 作为安卓语音输入键盘

自建、开源、无需切换即可支持多国语言的安卓语音输入

阅读时间 1 分钟


ime demo

Whisper 是 OpenAI 开发的预训练语音转文本模型。使用的训练数据量非常大,特点是支持多种语言并且鲁棒性强,可以识别演讲、歌曲。能够进行人声检测、语言识别、语音转录、甚至是语音翻译。

使用 Whisper 的方式有几种。OpenAI 开源了模型的权重,因此可以把模型下载到本地运行。同时 OpenAI 也提供了在线 API 服务。最大的模型 large-v2 需要 4G 显存即可推理,正好我这有块吃灰显卡能跑。

后端决定了自建,那么输入法前端呢?我在 Github 上仔细找了大半天,都没找到能通过调用 OpenAI Whisper 进行语音输入的安卓键盘。以下是我找到的其他相关项目

Konele 支持自定义语音识别 URL, 虽然使用的不是 OpenAI API,但可以偷梁换柱自己用 FastAPI 写个接口转换 API 格式。

这个想法激发了我创建 Whisper-FastAPI 项目。Whisper-FastAPI 是一个简单的 FastAPI 接口,设计用于为 Kõnele 提供与 OpenAI Whisper 相匹配的服务。它主要包括:

其中的 OpenCC 库是用来繁体转简体中文。这是因为 Whisper 在训练时并没有区分简繁体,因此输出有可能是简体或繁体。

后端服务启动后,在 konele 中设置语音识别服务为 Kõnele (grammar support),将该服务的 Server URL 设置为 http://<your-server>/konele/post 即可

若要在语音识别的同时进行翻译(到英文),将目标语言设置为英语。即可实现 任意语言到英语 的即时语音翻译!

温馨提示: Konele 有个 bug,更改 Server URL 后需要到 App 详情页面强制停止 App 后,设置才能生效