「第一版完成了」打算写个辅助英语学习的包,发帖立个flag在此

时不时看到有英语(学习)的讨论,我自己也有需求,所以打算写一个。只打算辅助积累词汇、词伙,没有其它的目的。大概列了下目标和功能

  • 目标
    • 单词/词伙积累。
  • 功能
    • 记录待学习的单词/词伙,记录其上下文句子
      • 上下文句子可以有多个
    • 艾宾豪斯曲线记忆
    • 根据已知词汇标记文章的生词
    • 根据待学习单词/词伙列表标记文章中待学习的词汇
    • 根据记忆熟练程度更新已知词汇列表
      • 词伙怎么记录?
    • 保存当前文章

立个flag,希望能完成(估计怎么也得一两个月以后了)。

Edit:

  1. 一开始可能不会自己实现记忆算法,而是支持导入到anki里。我再研究下anki和其它记忆算法再确定。
8 个赞

大佬,我这种英语小白适合不?

就这个包的目的来说,适合各种水平的使用者。等写出来了大佬多提意见建议。

好的,好的, 期待大佬杰作, 看懂代码我也去贡献点补丁。 :grinning:

1 个赞

有没有, 可以朗读当前缓冲区, 可选中的缓冲区,

我记得emacspeak可以,是机械风格的朗读。

真人阅读要用puppet来实现。

  • 有下载了一些单词, 想当 本地目录找不到, 再机械发音

  • 这是不是类似制作字幕, 没接触过这类的事 如: 此类视频(可以找个时间 长点的无广告的) English restaurant session 餐厅会话(1) - YouTube English restaurant session 餐厅会话(1) - YouTube

    • 在 双11 买个 科大录音笔
    • 录下声音
    • 转成文本,
    • 在 org-mode 中在整理文本(此时, 整理的过程也是 学习的过程)
    • 在设好 音频对应的时间 (有声音, 有文本) 对应 (听, 读), 而「说」, 就是 当在生活场景中可以联想到 此视频中的场景, 或看英文剧的场景中

@zhua 文本朗读可以使用 puppet + 微软 tts 的demo页面效果拔群。或者利用python 解析 微软的deom 也行。

我尝试过用它来读中文的技术文档,有一些名词还是有困难,例如:可重复读,会读成(可zhong复读),但整体效果还是很不错的。我估计读英文效果会更好。

如果有需求,用 deno-bridge + puppet + 微软 tts 应该很好实现。

不过我本人几乎没有在 Emacs、PC 上听的需求。

个人觉得,单词学习,记录生词在PC端,但复习增加同步到移动端比较合适。排队,坐车是最适合记单词的时候。打开了电脑,反而很少专门看单词了。

例如,在emacs上,记录不认识的生词,同步导出到anki,同步到移动端口。这样 “艾宾豪斯曲线记忆” 这类都不用自己实现。直接用anki的就行。需要考虑的就是,怎样快读的记录生词,维护生词上下文了。

我是有在 category - emacs-news :: Sacha Chua 博客中, 似有看到过, 她有提过, 她自己用 emacs 来播放, 具体怎么做, 没找到, 也不会找, 只能自己瞎琢磨

感谢建议。

我其实也考虑过,这个方式也更实际一点,Emacs本来也有一些支持anki的包。上面之所以没写,一是我以前用anki不多,对它有多好感受不明显;二是想看能不能实现更高效的记忆算法(这个flag可能立得有点大了)。

想了一下,可能一开始还是先支持anki,能尽早有个可用的东西出来。

完成了一版,已经可用了。 代码仓库 里有个readme,欢迎尝试,用起来应该还是比较简单的。

因为目标比较简单,没想做很复杂的功能。后面大概是修补完善了。

P.S. 今年要做的基本都做完了,后面准备过年了 :)

3 个赞

试了试,mp3文件是自动下载了,但是没有自动读出来。

要配置什么东西吗?

GNU Emacs 30.0.50 (build 1, aarch64-apple-darwin22.3.0, NS appkit-2299.40 Version 13.2 (Build 22D49)) of 2023-03-10

是通过play-sound-file 播放的,这个函数是 build in,可能你的没有?

上面的信息给了,macos m1,emacs 30.0.50.

我看了有这个函数。

我试了下这个函数,会报错:

Debugger entered--Lisp error: (error "This Emacs binary lacks sound support")

我来搜搜怎么解决,系统问题吧。

哈哈,没仔细看,不好意思。

我说的函数有吗?我的也是Mac,28版本,是自带 simple 包内建的。

我直接编辑了上面的回答。

有个错误,我先搜搜看。

(defun play-sound-internal (sound)
  "Internal function for `play-sound' (which see)."
  (or (eq (car-safe sound) 'sound)
      (signal 'wrong-type-argument (list sound)))

  (cl-destructuring-bind (&key file data volume device)
      (cdr sound)

    (and (or data device)
         (error "DATA and DEVICE arg not supported"))

    (apply #'start-process "afplay" nil
           "afplay" (append (and volume (list "-v" volume))
                            (list (expand-file-name file data-directory))))))

用上面这个函数就可以了。

可以直接获取光标下的单词吗?

目前使用emacs-azure-tts 需要手动输入单词。使用 C-u emacs-azure-tts 会自动获取句子。

这个包在读文章的时候遇到不认识的单词的时候,或者单词不会读的时候,读一下单词发音很好使。

:+1: :+1: :+1: :+1: :+1:

要读单词,用懒猫的 popweb youdao play mp3 吧,或者其他查单词的包都可以。具体名字是什么需要查一下。不用下载mp3。

用这个得不偿失,需要下载文件,这个的优势是读句子,因为不是机械发音。

1 个赞