我花了一个月时间做了一款开源语音输入法 Typeflux,希望让每个人都能用上 Typeless 级别的体验 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
mylxsw

我花了一个月时间做了一款开源语音输入法 Typeflux,希望让每个人都能用上 Typeless 级别的体验

  •  
  •   mylxsw
    mylxsw 14h 29m ago 2048 views

    事情要从一篇产品体验说起。

    年初第一次用到 Typeless,被它的效果震惊了。它能把你口语化、零散的表达转换成结构清晰的专业内容,用起来像是给大脑装了个翻译器。但它太贵了按年订阅每月 12 美金,按月订阅要 30 美金。

    当时我就想:能不能做一个自己的版本?

    然后花了一个下午让 Codex 给我搭了个基本框架,居然跑起来了。但因为有其它项目在忙,就搁置了。

    直到 3 月底,X 上突然涌现了大量关于语音输入法的讨论,闪电说、西瓜说、智谱语音输入法……那个时间节点让我重新把这个项目捡了起来。

    其中智谱语音输入法(AutoGLM)的"人设"功能给了我很大启发能为不同场景配置不同的指令集和写作风格,这个设计被我借鉴到了 Typeflux 的 Persona 系统里。在这里也记一笔致敬,他们是先把这个想法做成成熟产品的人。

    最初我以为花一两天就能跑通。结果发现,做一个"能用的原型"和做一个"可以给别人用的产品"之间,差的是一个月的废寝忘食。

    到今天,我终于把它发布出来了。


    Typeflux 是什么?

    一款开源的 macOS 菜单栏语音输入工具。按住快捷键说话,松开就把文字输入到当前任何 App 的光标位置。

    但我对它的定位不仅仅是语音输入法。

    我希望它成为一款桌面端的语音 Agent不仅能帮你输入内容,还能改写、润色、基于桌面内容问答,通过语音控制电脑完成工作。Agent 功能目前在 Beta ,还在持续迭代中,但这是我最终想去的方向。

    Pasted image 20260426233623.png Pasted image 20260426233633.png Pasted image 20260426233657.png Pasted image 20260426233710.png


    主要功能:

    • 按住快捷键说话,松开自动插入当前光标位置,无需切换窗口
    • 选中文字后用语音指令润色 / 翻译 / 缩写,LLM 直接替换选中内容
    • STT 支持:Apple Speech 、Whisper API / Groq 、本地模型( SenseVoice Small / WhisperKit Medium/Large / Qwen3-ASR )、阿里云实时 ASR / Qwen ASR 、豆包实时 ASR 、Google Cloud Speech 、多模态 LLM 、Typeflux Cloud
    • LLM 支持:OpenAI 兼容接口( 15+ 提供商:OpenAI 、Anthropic 、Gemini 、DeepSeek 、Kimi 、Qwen 、Zhipu 、MiniMax 、xAI 、Groq 等)+ Ollama 本地模型
    • 完全本地推理可选(本地语音模型 SenseVoice Small / WhisperKit Medium/Large / Qwen3-ASR + Ollama 本地大模型),不需要任何 API Key ,隐私友好
    • Persona 系统:为不同场景配置不同的指令集(设计灵感来自智谱语音输入法的人设功能)
    • 历史记录:每次对话存档,可回放音频、重新转录

    关于 Typeflux Cloud:

    同时上线了 Typeflux Cloud ,提供云端语音和大模型服务。早期测试阶段,目前完全免费

    后续如果推出会员服务,也会定价非常亲民。不想折腾的朋友直接注册账号,开箱即用。

    核心功能会一直开源,始终支持你自己配置任意语音模型和大语言模型,这是项目的根本基石,不会改变。


    我现在是全职独立开发者(开发的一些好玩儿的东西我会在 这里 发布,欢迎关注),这个项目也是我目前最重要的方向。欢迎大家试用、提问题、给建议。一起把它做好。

    42 replies    2026-04-27 22:08:00 +08:00
    getadoggie
        1
    getadoggie  
       14h 14m ago via iPhone
    支持一下
    xiafuxin
        2
    xiafuxin  
       14h 6m ago
    前排支持,我觉得语音输入 是 ai 时代的 一个刚需。希望 op 能够越做越好!
    Echo28
        3
    Echo28  
       14h 5m ago via iPhone
    typeless 引导印象太深刻了,都操作了至少 5 分钟,价格也是真贵
    mylxsw
        4
    mylxsw  
    OP
       14h 1m ago
    @getadoggie 谢谢支持
    mylxsw
        5
    mylxsw  
    OP
       14h 1m ago
    @xiafuxin 谢谢支持
    mylxsw
        6
    mylxsw  
    OP
       14h 0m ago
    @Echo28 而且还不能跳过引导,必须做完
    xyovo999
        7
    xyovo999  
       13h 59m ago
    支持
    mylxsw
        8
    mylxsw  
    OP
       13h 58m ago
    @xyovo999 感谢支持
    1bo
        9
    1bo  
       13h 7m ago via Android
    没有 windows 版本,遗憾。
    capric
        10
    capric  
       13h 5m ago
    请问是实时识别吗,还是像微信语音那样按住说完松开再识别
    AEDaydreamer
        11
    AEDaydreamer  
       13h 2m ago
    目前 typeless8000 字够用, 不过还是下载试试, 同时我觉得识别首尾吞字也是一个很细节的体验. 有些软件做的一般.
    Crazy07
        12
    Crazy07  
       12h 58m ago
    豆包测试版已出
    mylxsw
        13
    mylxsw  
    OP
       12h 58m ago
    @capric 暂时没有,后面如果 Mac 版本稳定了考虑开发 Windows 版本
    mylxsw
        14
    mylxsw  
    OP
       12h 57m ago
    @capric 分为两个阶段:语音识别支持实时,但是后面的大语言模型改写是要等识别完后再开始的
    mylxsw
        15
    mylxsw  
    OP
       12h 56m ago
    @AEDaydreamer 有任何问题欢迎反馈
    mylxsw
        16
    mylxsw  
    OP
       12h 55m ago
    @Crazy07 现在做语音输入的厂家挺多的,Codex 也支持语音输入了
    kaishi123
        17
    kaishi123  
       12h 49m ago
    非常不错。不过有没有类似功能的安卓版输入法?
    mylxsw
        18
    mylxsw  
    OP
       12h 42m ago
    @kaishi123 Typeless 官方是支持安卓版的,用起来还不错
    hoor
        19
    hoor  
       12h 41m ago
    typeless 的平替版,使用中,看看效果
    jeremyding
        20
    jeremyding  
       12h 26m ago
    用于语音识别 性价比和准确度都比较高的模型 有哪些呀
    AEDaydreamer
        21
    AEDaydreamer  
       12h 20m ago
    @mylxsw 目前发现识别完成后貌似不能退出 macos 的 microphone 模式, 会导致其他软件的声音怪怪的.
    mylxsw
        22
    mylxsw  
    OP
       11h 45m ago
    @AEDaydreamer 哈喽,方便帮提个 issue 不?详细说说怎么复现,或者直接加我微信 mylxsw 我们聊聊

    https://github.com/mylxsw/typeflux/issues/new
    mylxsw
        23
    mylxsw  
    OP
       11h 41m ago
    @jeremyding 本地 SenseVoice, Whisper ,远程 API 用 阿里和豆包的实时语音转写
    mylxsw
        24
    mylxsw  
    OP
       11h 41m ago
    @hoor 有问题欢迎反馈
    teaguexiao
        25
    teaguexiao  
       10h 32m ago
    本地跑 SenseVoice Small 延迟很低,中文识别率也够用,M 系列芯片基本无压力。想要更准的话豆包实时 ASR 是个好选择,价格比 Whisper API 便宜不少。
    trio
        26
    trio  
       10h 10m ago   1
    已赞,已添加 Issue-希望增加词典管理的功能。

    昨天在做 Typeless 增强管理工具,功能就是词典管理以及历史记录的查询增强。在这里顺便安利一下~ https://github.com/penwyp/TypeLens
    bigdogbigpig
        27
    bigdogbigpig  
    PRO
       9h 59m ago
    https://github.com/yetone/voice-input-src

    claude \
    --dangerously-skip-permissions \
    --output-format=stream-json \
    --verbose \
    -p "请实现一个 macOS menu-bar 语音输入法应用( Swift ,macOS 14+),具体要求:

    1. 按住 Fn 键录音,松开后将转录文字注入当前聚焦的输入框。优先使用流式转录( Apple Speech Recognition framework )。Fn 键通过 CGEvent tap 全局监听,需抑制 Fn 事件传递以防止触发 emoji 选择器。
    2. 默认语言必须为简体中文( zh-CN ),确保开箱即用就能识别中文输入。同时在菜单栏提供语言切换选项(英语、简体中文、繁体中文、日语、韩语)。语言选择存储在 UserDefaults 中。
    3. 录音时在屏幕底部居中显示一个特别优雅精致的无边框胶囊状悬浮窗,不要有红绿灯和 titlebar 。使用 NSPanel ( nonactivatingPanel )+ NSVisualEffectView (.hudWindow 材质),高度足够( 56px ,圆角半径 28px ),包含:
    - 左侧 5 根竖条波形动画( 44×32px ),必须由实时音频 RMS 电平驱动(不要用写死的假动画),说话声音大波形就大、安静时波形就小。各竖条权重为 [0.5, 0.8, 1.0, 0.75, 0.55] 形成自然的中间高两侧低效果,平滑包络( attack 40%、release 15%),每根竖条添加 ±4% 随机抖动增加有机感。波形要足够大,清晰可见。
    - 右侧文字标签(弹性宽度 160-560px )实时显示转录文本,胶囊随文字变多而弹性变宽
    - 入场弹簧动画( 0.35s )、文字宽度平滑过渡( 0.25s )、退场缩放动画( 0.22s )
    4. 文字注入使用剪贴板 + 模拟 Cmd+V 粘贴方式,注入前需检测当前输入法:如果是 CJK 输入法,先临时切换到 ASCII 输入源( ABC/US 键盘)再粘贴,粘贴完成后恢复原输入法,防止中文输入法拦截 Cmd+V 。注入完成后恢复原剪贴板内容。
    5. 接入 LLM 来提升语音识别的准确率,尤其是中英文混杂的情况下。通过 OpenAI 兼容 API (可配置 API Base URL 、API Key 、Model )对转录文本进行 refine 。LLM 的 system prompt 要求非常保守地纠错:只修复明显的语音识别错误(如中文谐音错误、英文技术术语被错误转为中文如「配森」→「 Python 」、「杰森」→「 JSON 」),绝对不要改写、润色或删除任何看起来正确的内容,如果输入看起来正确则必须原样返回。
    6. 在菜单栏提供 LLM Refinement 子菜单,包含启用/禁用开关和 Settings 入口。Settings 窗口包含 API Base URL 、API Key 、Model 三个输入框,API Key 输入框要能完全清空,以及 Test 和 Save 按钮。松开 Fn 键后如果 LLM 已启用且已配置,悬浮窗显示 Refining... 状态,等 LLM 返回后再注入最终文本。
    7. 应用以 LSUIElement 模式运行(仅菜单栏图标,无 Dock 图标)。使用 Swift Package Manager 构建,提供 Makefile ( build/run/install/clean ),构建产物为签名的 .app bundle 。"
    mylxsw
        28
    mylxsw  
    OP
       9h 50m ago
    @trio 谢谢支持
    mylxsw
        29
    mylxsw  
    OP
       9h 49m ago
    justdoitzZ
        30
    justdoitzZ  
       9h 11m ago
    可惜没有 Windows 版本,支持
    gechang
        31
    gechang  
       9h 9m ago
    我用质谱语音输入也是,有时候识别不准,不知道是不是音响麦克风的问题
    poorcai
        32
    poorcai  
       9h 8m ago via iPhone
    我之前试用 typeless ,好像标点输入比较麻烦,甚至有的没有,你这款怎么样?
    CSGO
        33
    CSGO  
       9h 0m ago
    这个输入法有没可能,出打字版本?就是用输入文字代替语音,个人还是打字场景多。
    mylxsw
        34
    mylxsw  
    OP
       8h 55m ago
    @CSGO 这可能是语音输入法普及之后的下一代产品了
    mylxsw
        35
    mylxsw  
    OP
       8h 55m ago
    @poorcai 是个痛点,我下个版本优化下这个方向
    zhch602
        36
    zhch602  
       8h 34m ago
    有点晚了,一个月前这还是个风口
    lanceli
        37
    lanceli  
       8h 32m ago
    star 支持下 最近魔改了下豆包 模拟成 typeless
    hackpro
        38
    hackpro  
       8h 30m ago
    老哥有没有碰到过 Whisper Large 模型出现幻觉的情况
    特别是中间有停顿的时候
    ppen522
        39
    ppen522  
       6h 20m ago
    支持 op ,等五一在家试用一下。
    FrankAdler
        40
    FrankAdler  
       1h 46m ago via Android
    autoglm 是免费的,你这个有 autoglm 几成功力
    iorilu
        41
    iorilu  
       1h 26m ago
    这个赛道现在已经算事 todo 那种了, 就 v2 就不下 10 个人开发
    bs10081
        42
    bs10081  
       26 mins ago
    想知道它的自添加功能,是不是在所有的音模型和大言模型上都可以使用?另外,操作是不是和 Typeless 一,也就是我在上手修改之後,它就自?
    About     Help     Advertise     Blog     API     FAQ     Solana     3150 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 83ms UTC 14:34 PVG 22:34 LAX 07:34 JFK 10:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86