爱意满满的作品展示区。
x1x2

自用的音频转文字 Mac 应用

  •  
  •   x1x2 · 11h 43m ago · 494 views

    完全自用的本地音频转文字应用,有需要的朋友可以自取,耗费了不少 token ,希望利用率能够高。

    https://github.com/bubugamer/VoxNote

    1. 实时录音转译功能还有问题,下个排期修复
    2. 因为我只有 Mac ,所以目前仅有 Mac 版本,后续随缘更新 win 版
    9 replies    2026-05-23 22:42:52 +08:00
    lambdaX999
        1
    lambdaX999  
       11h 35m ago
    我自己之前也拿开源项目魔改了一个 ,最终使用下来感觉体验还是不如豆包啥的,功耗还低,你这个用着咋样
    AlangHa
        2
    AlangHa  
       11h 34m ago via iPhone
    真是优秀
    kuhung
        3
    kuhung  
       11h 26m ago
    好奇佬用的什么语音转文字和说话人识别模型
    x1x2
        4
    x1x2  
    OP
       11h 6m ago
    我目前用着还行,识别的准确率确实不算太高,但是我一般是先转,然后再把文本扔进 GPT ,让它再给我润色润色。 我主要是用来转电话录音和播客文本的,时间都比较长,30 分钟以上吧。

    P.S. 我其实也是参考了开源项目。第一版是用原生的 Mac 语音识别引擎,其实效果也还行。后面翻了下 x ,发现有成熟开源,就拿来用了。
    x1x2
        5
    x1x2  
    OP
       10h 51m ago   ❤️ 1
    @kuhung 我最开始用的苹果内置的引擎,后面扫了一眼这个开源项目: https://github.com/argmaxinc/argmax-oss-swift ,把内置模型改成了 Whisper large-v3
    x1x2
        6
    x1x2  
    OP
       10h 46m ago
    @kuhung Claude 的解释,你可以参考看看:

    ⏺ argmax-oss-swift 在 VoxNote 里负责两件事:语音识别( WhisperKit )和说话人识别( SpeakerKit )。

    ---
    一、WhisperKit — 语音转文字的核心引擎

    VoxNote 自己只负责把音频文件读成 [Float] 浮点数组( AudioProcessor.loadAudioAsFloatArray ),之后全部交给 WhisperKit:

    [Float] 音频数据

    whisperKit.transcribe(audioArray:decodeOptions:callback:segmentCallback:)

    [TranscriptionResult] ← 含完整文本 + 每段时间戳

    VoxNote 给 WhisperKit 的配置参数:
    - chunkingStrategy: .vad — 自动按静音分段
    - wordTimestamps: true — 保留每段的时间戳(供说话人对齐用)
    - concurrentWorkerCount: 16 — 并行加速
    - detectLanguage: language == nil — 不指定语言时自动检测

    转录过程中 WhisperKit 会不断回调进度( 0%→98%)和中间文本,VoxNote 把这些映射成 UI 上的 .transcribing(progress, partialText) 实时显示。

    ---
    二、SpeakerKit — 说话人识别(可选功能)

    用户开启说话人标注后,VoxNote 会同时跑两个任务:

    同一份 [Float] 音频
    ├─ 并行 → speakerKit.diarize() → DiarizationResult (谁在什么时间说话)
    └─ 顺序 → whisperKit.transcribe() → [TranscriptionResult](说了什么)

    合并 → diarization.addSpeakerInfo(to: results, strategy: .subsegment)

    " [Speaker 1] 你好,请问……
    [Speaker 2] 好的,我来解释一下……"

    SpeakerKit 底层用的是 Pyannote v4 的 CoreML 模型,在本机完成推理,不联网。
    ern
        7
    ern  
       10h 42m ago
    whisper 的模型感觉不太行,据说小红书的那个好点,还没研究。反正实测一段录音,whisper 转出来很乱,gemini 在线和飞书在线都能转个 95%左右。
    kuhung
        8
    kuhung  
       10h 3m ago
    @x1x2 whisper 系列我自己测下来确实性能一般,中文的误识别率挺高。另外 large 的开销比 medium 高吧,好奇是这里是有做过取舍吗
    x1x2
        9
    x1x2  
    OP
       6h 21m ago
    是,中文识别率确实一般。没有做过取舍,单纯觉得是不是 large 比 medium 识别准确率可能更高,但实际效果半斤八两。 我现在的工作流是,先转成文本,然后再让 gpt/opus 润色一道。不得不说,SOTA 就是 SOTA ,很刁钻的误识,都能识别出来。

    下面是我刚刚转的文本错误和修正汇总


    ┌───────────────────────────┬──────────────────────────────────────────┐
    │ 原文 │ 修正 │
    ├───────────────────────────┼──────────────────────────────────────────┤
    │ 伤/商(贯穿全文) │ 熵( entropy ) │
    ├───────────────────────────┼──────────────────────────────────────────┤
    │ 毒血的头 │ 读写头( read/write head ) │
    ├───────────────────────────┼──────────────────────────────────────────┤
    │ 山门 56 │ 山本五十六(日本海军大将) │
    ├───────────────────────────┼──────────────────────────────────────────┤
    │ 积电器/寄电器 │ 继电器 │
    ├───────────────────────────┼──────────────────────────────────────────┤
    │ 二子海默症 │ 阿尔茨海默症 │
    ├───────────────────────────┼──────────────────────────────────────────┤
    │ 埃尼亚克/安尼阿克 │ ENIAC │
    ├───────────────────────────┼──────────────────────────────────────────┤
    │ 爱德瓦克/爱尼瓦克 │ EDVAC │
    ├───────────────────────────┼──────────────────────────────────────────┤
    │ αβ减值算法 │ α-β剪枝算法 │
    ├───────────────────────────┼──────────────────────────────────────────┤
    │ ToroChamp │ Turochamp (图灵+钱珀诺恩合创的象棋程序) │
    ├───────────────────────────┼──────────────────────────────────────────┤
    │ 布尔兹曼 │ 玻尔兹曼( Ludwig Boltzmann ) │
    ├───────────────────────────┼──────────────────────────────────────────┤
    │ ACES │ ACE ( Automatic Computing Engine ) │
    ├───────────────────────────┼──────────────────────────────────────────┤
    │ Unartificial Intelligence │ Artificial Intelligence │
    ├───────────────────────────┼──────────────────────────────────────────┤
    │ 卷幅他 │ 本尼迪克特·康伯巴奇(卷福) │
    ├───────────────────────────┼──────────────────────────────────────────┤
    │ 道胜和夫 │ 稻盛和夫 │
    └───────────────────────────┴──────────────────────────────────────────┘

    人名译名统一
    - 冯诺一曼 → 冯·诺伊曼
    - 斯马赫/司马赫 → 赫伯特·西蒙(中文名司马赫,首次出现做注)
    - 纽娥尔 → 纽厄尔
    - 赛米尔 → 阿瑟·塞缪尔

    结构优化:去除 Speaker 标签,按四章结构整理为连贯叙述文章,保留播客的口语风格。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   858 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 205ms · UTC 21:04 · PVG 05:04 · LAX 14:04 · JFK 17:04
    ♥ Do have faith in what you're doing.