是否有实现类似OneNote中 的点击笔记回听对应录音的插件

是否有实现类似OneNote中 的点击笔记回听对应录音的插件?我问了deepseek,给的回答比较消极。

在 Obsidian 中实现类似 **OneNote 的「点击笔记回听对应录音」**功能,目前没有完全相同的插件,但可以通过以下方法近似实现:


方案一:使用插件组合 + 手动标记时间戳

  1. 插件推荐:

    • Audio Notes: 支持直接在笔记中录制音频并插入时间戳标记。
    • Media Extended: 增强音频播放控制,支持跳转到指定时间点。
  2. 操作步骤:

    • Audio Notes 录制音频,录音时会自动在笔记中插入时间戳(如 @12:34)。
    • 在笔记中手动标记关键内容的时间点(例如:## 会议重点 [@05:30])。
    • 点击时间戳时,用 Media Extended 跳转到音频的对应位置。

方案二:外部录音软件 + Obsidian 链接

  1. 工具推荐:

    • 使用支持「时间码链接」的录音软件(如 AudacityOtter.ai)。
    • 生成音频文件的「时间码 URL」(如 audio.mp3#t=00:05:30)。
  2. 操作步骤:

    • 在 Obsidian 笔记中插入带时间码的链接:
      [点击回听 05:30](audio.mp3#t=00:05:30)
    • 点击链接时,系统默认播放器会跳转到指定时间。

方案三:自动化脚本(高级)

如果你熟悉 JavaScript,可通过 Templater 插件 + 自定义脚本 实现:

  1. 录音时自动记录时间点并插入笔记。
  2. 点击时间戳时,调用系统命令控制音频播放器跳转。

不足之处

  • 无完美自动化方案: Obsidian 暂未支持录音与文本的实时自动关联(如 OneNote)。
  • 依赖外部工具: 部分方案需手动管理时间戳或使用第三方软件。

建议关注 Obsidian 社区插件市场,未来可能有更直接的解决方案。

楼主找找其他笔记软件是否有这项功能,以及是如何实现的。

如果其他富文本编辑器都没有通用的实现方法,那ob也无从参考

技术方面我不懂,找替代品的成本要比我直接使用onenote的高多了,所以论坛看看有没有小伙伴曾经碰到过并且解决过。

感觉时间戳想要自动话挺难的,因为 OneNote 的录音应该是保存在 Onedrive 上,识别文字和时间戳也是云端功能,这个自动化想要依靠 obsidian 实现不太现实。但是文件的自动关联应该挺好实现的。

听起来像是因为obsidian本身使得实现点击笔记实现回听录音本身很困难咯

不是,是想要通过 ob 识别语音里的文本难,所以类似时间戳还是要手动标注或者导入

目前利用 js 大致可以做到点击播放,不是 ob 的 api,不保证稳定
链接格式 [时间](#) 或者 [时间]( )

用到的插件

class audio {

    constructor() {
        document.body.addEventListener('click', (event) => {
            const target = event.target.closest('a');
            if (!target) return;
            const timeString = target.textContent.trim();
            this.processAssets(timeString);
        });
    }

    async processAssets(timeString) {
        const mediaElement = document.getElementsByTagName('audio')[0];
        if (!mediaElement) return;
        const calculatedTime = this.parseMediaStartTime(timeString);
        mediaElement.currentTime = calculatedTime;
        mediaElement.play();
    }

    parseMediaStartTime(timeString) {
        if (!timeString) return 0;

        if (!isNaN(timeString)) return parseFloat(timeString);

        const timeParts = timeString.split(':').map(parseFloat);
        return timeParts.reduceRight((total, value, index, arr) => {
            const multiplier = Math.pow(60, arr.length - 1 - index);
            return total + value * multiplier;
        }, 0);
    }

}
1 个赞

谢谢这么认真仔细的回复,我会去试试~不知道这个是不是可以实现边打字边录音,回看打字部分的时候同时可以听到当时听到的是什么的功能。

这个只是对于完成了录音之后的时间跳转,无法实现边录音边打字的同时还能跳转

这种功能做的好的还得是 ios上的 notability