Lazy loaded image
Obsidian插件-语音助手,讯飞唤醒朗读和听写,语音对生AI生成内容
字数 4072阅读时长 11 分钟
2025-10-3
2025-10-4
type
status
date
slug
summary
tags
category
icon
password
语言
亦可到资源下载 | 余汉波 文档找到对应的下载链接直接下载。

项目概述

Obsidian 语音助手插件 是一个功能完整的语音交互插件,为 Obsidian 笔记软件提供智能语音助手功能。该插件集成了语音识别、语音合成、语音唤醒和多种大语言模型,支持自然语言对话、语音听写、语音朗读等功能。

主要特性

  • 🎤 语音识别:基于讯飞在线ASR,支持实时语音转文字
  • 🔊 语音合成:基于讯飞在线TTS,支持多种音色和语音参数调节
  • 🎯 语音唤醒:支持自定义唤醒词,免手动激活
  • 🤖 多模型支持:集成Google AI Studio、OpenRouter、讯飞星火等多种大语言模型
  • 📝 智能对话:支持持续对话模式和自定义提示词
  • ✍️ 语音听写:支持连续语音听写,自动插入笔记
  • 📖 语音朗读:支持选中文本的语音朗读功能
  • ⚙️ 高度可配置:丰富的配置选项,满足不同使用需求

目录结构

核心功能模块

1. 主插件类 (VoiceAssistantPlugin)

  • 文件位置: main.ts (第131行开始)
  • 功能: 插件的核心控制器,管理所有语音功能
  • 主要属性:
    • settings: 插件配置管理
    • mediaRecorder: 音频录制器
    • wakeMediaRecorder: 唤醒监听录制器
    • statusFloat: 状态浮窗显示
    • conversationHistory: 对话历史记录

2. 语音识别模块

  • 核心方法: speechToText(), xunfeiOnlineASR()
  • 功能: 将音频转换为文字,支持讯飞在线ASR
  • 输入: 音频Blob对象
  • 输出: 识别的文字字符串

3. 语音合成模块

  • 核心方法: textToSpeech(), xunfeiOnlineTTS()
  • 功能: 将文字转换为语音并播放
  • 支持格式: MP3音频流
  • 可配置参数: 音色、语速、音量、音调

4. 语音唤醒模块

  • 核心方法: startWakeListening(), startWakeListeningLoop()
  • 功能: 持续监听预设唤醒词,自动激活对话
  • 唤醒词: 可自定义,默认包含"你好,小三"等
  • 检测间隔: 可配置,默认900毫秒

5. 大语言模型集成

  • 支持的模型:
    • Google AI Studio (Gemini系列)
    • OpenRouter (GPT、Claude等)
    • 讯飞星火 (Spark系列)
    • 自定义模型
  • 核心方法: callLLM(), callGoogleAI(), callOpenRouter(), callXunfeiSpark()

6. 对话管理模块

  • 持续对话: 支持多轮对话,自动管理上下文
  • 对话历史: 自动保存对话记录到指定文件夹
  • 语音打断: 支持语音打断TTS播放
  • 自定义提示词: 支持触发词激活特定提示模板

7. 语音听写模块

  • 核心方法: startVoiceDictation(), startContinuousDictation()
  • 功能: 连续语音转文字,自动插入当前笔记
  • 静默检测: 自动检测语音停顿,分段处理
  • 实时插入: 识别结果实时插入光标位置

8. 设置界面模块

  • 类名: VoiceAssistantSettingTab
  • 功能: 提供图形化配置界面
  • 配置项: 包含所有功能的详细配置选项
notion image

运行环境要求

基础环境

  • Obsidian: 版本 0.15.0 或更高
  • 操作系统: Windows、macOS、Linux (仅桌面版)
  • 网络连接: 需要稳定的互联网连接(用于在线语音服务和AI模型调用)

开发环境

  • Node.js: 16.0 或更高版本
  • npm: 6.0 或更高版本
  • TypeScript: 4.7.4
  • ESBuild: 0.17.3

依赖库

安装步骤

方法一:手动安装

  1. 下载插件文件
    1. 安装依赖
      1. 编译插件
        1. 复制到Obsidian插件目录

          方法二:开发模式安装

          1. 克隆到Obsidian插件目录
            1. 安装并构建
              1. 在Obsidian中启用插件
                  • 打开 Obsidian 设置
                  • 进入"第三方插件"
                  • 找到"语音助手 (Voice Assistant)"
                  • 点击启用

              配置说明

              基础配置文件 (data.json)

              详细配置项说明

              1. 大语言模型配置

              2. 语音功能配置

              3. 对话功能配置

              使用方法

              1. 基础语音对话

              2. 语音唤醒使用

              3. 语音听写功能

              4. 语音朗读功能

              5. 自定义提示词使用

              6. 测试功能

              插件提供了多个测试方法,可在设置界面的"测试功能"区域使用:

              API接口说明

              核心API方法

              1. 语音识别API

              2. 语音合成API

              3. 大语言模型API

              4. 唤醒监听API

              事件回调

              1. 录音事件

              2. WebSocket事件

              常见问题解答

              Q1: 插件无法启动或加载失败?

              A: 检查以下几点:
              1. 确保Obsidian版本 ≥ 0.15.0
              1. 检查插件文件是否完整
              1. 查看控制台是否有错误信息
              1. 尝试重新编译插件:npm run build

              Q2: 语音识别不准确或无响应?

              A: 可能的解决方案:
              1. 检查麦克风权限是否已授予
              1. 确保网络连接稳定
              1. 验证讯飞API密钥是否正确配置
              1. 尝试调整录音参数(采样率、声道数)
              1. 在安静环境中测试

              Q3: 语音合成无声音或播放失败?

              A: 排查步骤:
              1. 检查系统音量设置
              1. 验证讯飞TTS配置是否正确
              1. 尝试不同的音色设置
              1. 检查网络连接状态
              1. 查看调试日志获取详细错误信息

              Q4: 唤醒功能不工作?

              A: 检查配置:
              1. 确保 wakeMode 设置为 "online"
              1. 检查唤醒词是否正确配置
              1. 验证麦克风权限
              1. 调整唤醒检测间隔
              1. 在安静环境中清晰说出唤醒词

              Q5: 大语言模型调用失败?

              A: 验证配置:
              1. 检查对应的API密钥是否正确
              1. 确认API配额是否充足
              1. 验证网络连接和防火墙设置
              1. 尝试切换不同的模型提供商
              1. 查看调试日志获取具体错误信息

              Q6: 如何自定义唤醒词?

              A: 在设置界面中:
              1. 进入"语音唤醒配置"部分
              1. 在"唤醒词管理"中添加新的唤醒词
              1. 建议使用3-5个字的清晰词语
              1. 避免使用过于常见的词汇

              Q7: 如何添加自定义提示词?

              A: 配置步骤:
              1. 进入插件设置的"自定义提示词"部分
              1. 点击"添加新提示词"
              1. 设置触发关键词和提示内容
              1. 启用该提示词
              1. 在对话中使用触发词即可激活

              Q8: 插件占用资源过多?

              A: 优化建议:
              1. 调整唤醒检测间隔(增大数值)
              1. 关闭不需要的功能(如语音唤醒)
              1. 降低音频采样率
              1. 关闭调试日志
              1. 定期清理对话历史文件

              Q9: 如何备份和恢复配置?

              A: 配置管理:
              1. 备份:复制 data.json 文件
              1. 恢复:将备份的 data.json 文件覆盖当前配置
              1. 重启Obsidian使配置生效
              1. 建议定期备份重要配置

              Q10: 如何更新插件?

              A: 更新步骤:
              1. 备份当前配置文件 data.json
              1. 下载最新版本插件代码
              1. 运行 npm install && npm run build
              1. 恢复配置文件
              1. 重启Obsidian

              开发者指南

              项目架构

              1. 核心类结构

              2. 设置界面类

              开发环境搭建

              1. 克隆项目

              2. 安装依赖

              3. 开发模式

              4. 调试技巧

              扩展开发

              1. 添加新的语音服务提供商

              2. 添加新的大语言模型

              3. 自定义UI组件

              性能优化建议

              1. 音频处理优化

              2. 内存管理

              3. 网络请求优化

              测试指南

              1. 单元测试

              2. 集成测试

              发布流程

              1. 版本更新

              2. 构建发布版本

              3. 发布到Obsidian社区

              1. 创建GitHub Release
              1. 上传构建文件
              1. 提交到Obsidian插件市场
              1. 更新文档和说明

              许可证

              本项目采用 MIT 许可证。详见 LICENSE 文件。

              贡献指南

              欢迎提交Issue和Pull Request来改进这个项目。在贡献代码前,请确保:
              1. 遵循现有的代码风格
              1. 添加适当的注释和文档
              1. 进行充分的测试
              1. 更新相关文档

              👨‍💻 作者信息

              余汉波 - 编程爱好者-量化交易和效率工具开发
              • Email: yuhanbo@sanrenjz.com

              🌐 相关链接

              • 🛒 插件商店(个人开发的所有程序,包括开源和不开源)

              联系我们

              python 程序管理工具下载:sanrenjz - 三人聚智-余汉波
              效率工具程序管理下载:sanrenjz-tools - 三人聚智-余汉波
              notion image
              notion image

              🙏 致谢

              感谢所有为本项目贡献代码和想法的开发者们!

              ⭐ 如果这个项目对您有帮助,请给它一个 Star!
              上一篇
              Obsidian插件-task更新,番茄时钟、任务管理、AI智能拆分
              下一篇
              Obsidian插件-auto3.0,AI快速生成文本和图片,支持知识库检索和定时任务

              评论
              Loading...
              目录