anarlog 1.0.23 版本解析:Transcript 面板交互重构与 AquaVoice 批量转写接入

发布时间:2026/9/16 19:13:58
anarlog 1.0.23 版本解析:Transcript 面板交互重构与 AquaVoice 批量转写接入 anarlog 1.0.23 版本解析Transcript 面板交互重构与 AquaVoice 批量转写接入【免费下载链接】anarlogOpen source Granola AI Alternative项目地址: https://gitcode.com/GitHub_Trending/hy/anarloganarlog开源的 Granola AI 替代方案在 1.0.23 版本中对会话转写Transcript交互、语音转写STT提供商生态、日历 OAuth 导航以及界面细节做了系统性改进。本文以 1.0.23 发布说明为骨架结合仓库源码逐条拆解这些变更的实现细节与配置方式帮助开发者理解新版交互逻辑、快速接入 AquaVoice 批量转写并掌握日历 OAuth 回调与标签栏等前端实现要点。版本概览1.0.23 的核心变更集中在四个方向发布说明原文Transcript 与会话转写面板切换改为“Transcript / Live”边框标签支持 Escape 折叠新增录制删除按钮浮窗聊天自动避让。语音转写新增 AquaVoice 作为 STT 提供商Avalon 模型仅批量模式。日历与导航OAuth 日历连接后返回正确的来源视图资料菜单日历入口直达日历设置页。界面打磨查看实时会话时隐藏临时录制按钮、移除资料菜单分隔线、优化标签栏高度与间距。下文将按这四个主题分别展开并给出对应的源码路径与配置说明。Transcript 面板从箭头切换改为边框标签原发布说明指出Transcript 面板的切换控件从旧的“chevron 箭头”重新设计为带边框的标签页标签文案为Transcript或Live。这一改动的直接收益是用户不再需要猜测箭头指向与展开方向而是像切换浏览器标签一样明确知道自己当前处于“转写稿”视图还是“实时”视图。配套交互细节还包括Escape 折叠当转写面板处于展开状态时按下 Escape 即可收起符合“面板类 UI 用 Escape 关闭”的通行交互范式降低鼠标操作成本。浮窗避让展开转写面板时浮动聊天floating chat会自动移动到右侧面板避免两者重叠遮挡内容。增强笔记标签笔记标签不再显示“Summary”这类通用文案而是直接展示模板名称让多模板用户能一眼分辨当前笔记对应的模板。从仓库结构看这些逻辑分布在桌面端会话模块中例如 apps/desktop/src/session/components/note-input/header-transcript.tsx 承担转写头部交互apps/desktop/src/session/components/note-input/header.test.tsx 对其行为做了单测覆盖会话状态与数据流则在 apps/desktop/src/session 与 apps/desktop/src/chat 下组织。如果你需要定制面板行为例如调整折叠快捷键或标签文案可以从这些入口入手。录制删除后置会话音频区新增删除按钮1.0.23 在“后置会话音频区”post-session audio area新增了Delete recording按钮。对于会议录音类应用录音文件常伴随转写、笔记等衍生数据删除入口的补齐意味着用户可以更直接地管理音频资产避免录音残留。与删除能力相关的实现分散在音频播放与时间轴组件中apps/desktop/src/audio-player/provider.tsx 负责音频播放状态管理apps/desktop/src/audio-player/timeline.tsx 提供时间轴渲染外层头部菜单中的溢出操作含删除类动作可在 apps/desktop/src/session/components/outer-header/overflow/index.test.tsx 的测试中看到对应交互约束。从源码结构可以推断删除操作会走统一的会话/音频数据删除链路与转录文本、笔记等保持一致性。AquaVoice新增批量转写提供商Avalon 模型这是 1.0.23 最重要的功能性更新AquaVoice 作为新的 STT 提供商接入 anarlog使用 Avalon 模型且仅支持批量batch转写不支持实时live流式转写。适配器实现原理AquaVoice 适配器位于 crates/owhisper-client/src/adapter/aquavoice/其中 mod.rs 定义了适配器主体与模型解析逻辑默认模型常量为avalon-v1.5DEFAULT_MODEL已退役的 v1 模型标识为avalon-v1-enRETIRED_V1_MODEL。resolve_model会把空值、“cloud/auto”这类元模型meta model以及已退役的avalon-v1-en一律映射回当前唯一可用的avalon-v1.5——这是为了兼容旧版本中用户已保存的模型选择保证升级后无需重新配置。对应单元测试见 mod.rs 内 tests 模块。language_support_batch对任意语言集合都返回支持Avalon 1.5 是多语言模型转写时由服务端做语言检测当用户只配置了单一语言时该语言会被“钉住”作为提示传给 API。批量转写的 HTTP 实现位于 batch.rs其关键行为包括默认 API 地址为https://api.aquavoice.com/v1实际转写请求 POST 到audio/transcriptions通过append_path_if_missing自动拼接路径。认证采用Authorization: Bearer api_key头。请求体为 multipart 表单包含file音频文件、model字段若配置了单一语言则附加language字段ISO 639-1 代码若配置了关键词则附加prompt字段关键词以逗号拼接用于提示上下文。响应解析为统一的BatchResponse结构包含 transcript 文本与置信度上层无需关心厂商差异。提供商注册与能力矩阵在 crates/owhisper-client/src/providers.rs 中AquaVoice 已注册为 25 个 STT 提供商之一相关定义包括环境变量键名AQUAVOICE_API_KEY见env_key_name。默认 API Basehttps://api.aquavoice.com/v1。默认批量模型avalon-v1.5default_batch_model默认实时模型同样指向该值但实时模式实际不可用。在 adapter/mod.rs 的能力矩阵中可以看到两条关键约束has_live_mode对AquaVoice返回false确认其仅支持批量转写language_support_live对AquaVoice返回LanguageSupport::NotSupported与批量模式“任意语言均可”形成对比。服务端配置方式批量转写的 API Key 在代理服务中通过环境变量注入。在 crates/transcribe-proxy/src/env.rs 中SttApiKeysEnv定义了aquavoice_api_key字段运行时若该环境变量非空ApiKeys便会注册Provider::AquaVoice并提供给转写代理使用。因此接入 AquaVoice 的方式为export AQUAVOICE_API_KEYyour_aquavoice_api_key随后在应用设置中选择 AquaVoice 提供商并指定 Avalon 模型或留空使用默认avalon-v1.5即可对录音文件执行批量转写。注意由于该提供商没有实时模式流式会话仍会落到其他支持 live 的提供商如 Soniox、Deepgram 等批量上传与离线文件转写则会命中 AquaVoice。日历与导航OAuth 回跳与直达设置页1.0.23 修复了两处日历导航问题OAuth 回跳修复连接 OAuth 日历提供商后不再“永远跳回日历页”而是返回触发连接的原始视图。这一修复对长流程用户尤其重要——例如从设置页或会议详情页发起授权时完成授权后应回到原处继续操作而不是被强制带到日历首页打断流程。资料菜单直达资料Profile菜单中的日历条目现在直接路由到日历设置标签页减少一次点击。日历相关前端代码位于 apps/desktop/src/calendar其中侧边栏与菜单导航逻辑可在 components/sidebar.tsx 中查看日历数据的存储与查询分别由 calendar-storage.test.tsx 与 queries.ts 覆盖。OAuth 回跳“记住来源视图”的实现思路从代码结构看是在发起授权前记录当前路由/上下文回调完成后按记录恢复配合原有的事件忽略与存储逻辑见 ignored-events.ts保证日历流程完整。UI 打磨录制按钮、菜单分隔线与标签栏最后一批小改动虽然不起眼但直接影响日常使用手感隐藏临时录制按钮当用户正在查看当前活动的实时会话时临时录制ad-hoc recording按钮被隐藏避免“对着正在直播的会话再点一次录制”造成重复或误操作。移除资料菜单分隔线Profile 菜单去掉分隔线视觉更简洁。标签栏微调调整标签栏高度与间距改善元素对齐。这些改动属于纯前端视觉与可用性优化主要在 apps/desktop/src/session 与全局布局组件中体现相关交互约束同样有测试文件支撑如 outer-header/overflow/index.test.tsx。小结1.0.23 是一版“交互体验 转写能力”并重的更新Transcript 面板的标签化改造降低了转写/实时视图的切换成本录制删除按钮补齐了音频资产管理的最后一块拼图而 AquaVoiceAvalon批量转写适配器在 crates/owhisper-client/src/adapter/aquavoice/ 的完整落地则为用户提供了又一个高质量批量转写选项。日历 OAuth 回跳与资料菜单直达等导航修复则让长流程与多入口场景的路径更加清晰。对于希望二次开发或深度集成这些能力的开发者建议从以下文件入手转写提供商能力矩阵crates/owhisper-client/src/adapter/mod.rs提供商注册与默认参数crates/owhisper-client/src/providers.rsAquaVoice 批量适配器crates/owhisper-client/src/adapter/aquavoice/batch.rs服务端 API Key 环境注入crates/transcribe-proxy/src/env.rs桌面端转写头部交互apps/desktop/src/session/components/note-input/header-transcript.tsx日历侧边栏导航apps/desktop/src/calendar/components/sidebar.tsx【免费下载链接】anarlogOpen source Granola AI Alternative项目地址: https://gitcode.com/GitHub_Trending/hy/anarlog创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考