指南

Anki 文字转语音:为每张卡片配上音频

每次复习都能听到单词,记得更牢。但给一千张卡片的卡组逐一录音并不现实,而调用在线服务的插件又依赖这些服务是否持续可用。一次性离线生成音频的卡组,可以一直用下去。请注意:Supertonic 3 暂不支持中文,可朗读英语、日语、韩语等 31 种语言。

免费的 SuperClonica 引擎能在你自己的电脑上,用自然的声音和 31 种语言为卡组的每张卡片配音。本指南介绍如何导出卡片、一次性生成音频,以及如何用 Anki 的声音标签关联音频。

需要准备什么

目录中的大多数声音是用俄语录制的,在其他语言中会保留轻微口音,请先用你自己的几个单词试听。

  • 电脑上的 Anki,以及需要配音的卡组。
  • 免费的 SuperClonica 引擎和 Python 3.10 或更新版本。
  • 适合所学语言的声音:标准声音,或用该语言录制的声音。
  • 无需显卡:普通处理器就够了。

免费试听一张卡片

在任意声音页面粘贴一句 30 到 100 个字符的典型卡片句子,选择语言并点击生成按钮。几秒后就能听到卡组的效果,无需注册。

导出卡片

单个词有时放在短句里听起来更自然;如果卡片上有例句,就为例句配音。

  • 从 Anki 以纯文本导出笔记,或直接用你的源表格。
  • 给每一行一个唯一 id(例如 card_0412),要朗读的文字放在单独一列。
  • 把表格保存为 UTF-8 编码的 CSV,重音符号和非拉丁文字才不会乱码。
  • 缩写和数字按希望听到的方式书写。

离线为整个卡组配音

用 python -m pip install superclonica-cpu 安装引擎。在 Python 中执行 import csv、from superclonica import Superclonica 和 tts = Superclonica() 之后,一个循环就能为整个卡组配音:for row in csv.DictReader(open("deck.csv", encoding="utf-8")): audio, rate = tts.synthesize(row["front"], voice="F2", lang="es", seed=7); tts.save(row["id"] + ".ogg", audio)。OGG 文件很小,在各平台的 Anki 中都能播放。如果想要适合学习的语速,可以在命令行中使用 --speed,或另外生成较慢的版本。

在 Anki 中关联音频

把音频文件复制到 Anki 配置文件的 collection.media 文件夹中。在 CSV 里为每张卡片添加一个包含声音标签的字段,例如 [sound:card_0412.ogg],再导入回 Anki,或把标签粘贴到音频字段中。卡片显示时 Anki 会播放该文件,离线可用,电脑上可以,同步后手机上也可以。想重新生成某一张卡片,随时用同样的 seed 只对那一行运行循环即可。