產生了多個英文的Anki閃卡後,這次來生成國文的注音閃卡,使用到的外掛是:
- Copilot: 調用ChatGPT生成卡片格式與注音
- Note Splitter: 依指定的分隔文字將一則筆記產生成多則筆記
- Yanki: 將產生的多則筆記同步到Anki系統
1. 用Copilot生成筆記
- Extra欄位供音訊使用,正面的「、」會造成播音錯誤
將%BEGIN%與%END%之間的每行文字產生為指定的11行格式,格式定義如下:
第1行: 完整文字,但第一個雙引號轉換為「,第二個雙引號轉換為」(例如"釐"清要轉換成「釐」清)
第2行: 空行
第3行: 三個減號
第4行: 三個減號
第5行: 空行
第6行: 生成以雙引號夾位的文字的注音,前後沒有雙引號的文字不生成注音,但原文字要產生(例如 "清"楚 要生成 ㄑㄧㄥ楚),不可省略聲調符號
第7行: 空行
- 第7~9行指示其下方是Extra欄位的內容
第8行: 三個減號
第9行: 空行
第10行: 完整文字,但刪除所有的雙引號
第11行: 3個井號
%BEGIN%
"釐"清
傳"誦"
"謀"財害命
浪"費"
"遲"到
"逛"
%END%
生成的結果:
「釐」清
---
---
ㄌㄧˊ清
---
釐清
###
「傳」誦
---
---
ㄔㄨㄢˋ誦
---
傳誦
###
「謀」財害命
---
---
ㄇㄡˊ財害命
---
謀財害命
###
「浪」費
---
---
ㄌㄤˋ費
---
浪費
###
「遲」到
---
---
ㄔˊ到
---
遲到
###
「逛」
---
---
ㄍㄨㄤˋ
---
逛
###
2. 用Note Splitter切分檔案
- Note Splitter的分隔字元(Delimiter)設定為
### - 按<span class='keybs'> Ctrl/Cmd+P</span>執行<mark style="background-color:#a3be8c">Split by delimiter</mark>命令
- 將/note-splitter資料夾裡的檔案搬移到Yanki的掃描資料夾對應位置
3. 用Yanki同步至Anki系統
- 按<span class='keybs'> Ctrl/Cmd+P</span>執行<mark style="background-color:#81a1c1">Sync flashcard notes to Anki</mark>命令
4. 調整Anki系統的筆記類型
在Anki系統裡操作:
- 管理筆記類型→找到Yanki - Basic (and reversed card with extra)→點擊有側的【卡片】
- 正面模板裡有TTS的播音按鈕,以JavaScript將之隱藏
- Anki系統的模板可視為網頁,{{Front}}欄位就像是PHP(
<?= ?>)、ASP(<%= %>)或JSP<%= %>裡表達式標籤(Expression Tag)
- Anki系統的模板可視為網頁,{{Front}}欄位就像是PHP(
- 用系統欄位"{{Deck}}"判斷牌組名稱是否以Chinese開頭,若是則隱藏TTS按鈕
▼ 正面模板
{{Front}}
<br>
{{#Extra}}
<div id="EXTRA">
{{tts en_US voices=Microsoft_Mark:Extra}}
</div>
{{/Extra}}
{{^Extra}}
<div id="FRONT">
{{tts en_US voices=Microsoft_Mark:Front}}
</div>
{{/Extra}}
<script>
var sDeck = "{{Deck}}";
if (sDeck.indexOf("Chinese") >= 0) {
elem = document.getElementById("FRONT");
if (elem) {
elem.style.display = "none";
}
elem = document.getElementById("EXTRA");
if (elem) {
elem.style.display = "none";
}
}
</script>
背面播放中文音訊?
Anki系統的TTS欄位是靜態解析,只要有{{tts}}就無法用JavaScript停用,如果有{{tts}}會造成不需要的英文背面也播音,因此無法在背面模板裡使用{{tts}}
5. 模板直接使用音訊檔
中文閃卡背面播音最後使用AwesomeTTS產生靜態音訊檔來處理。
- 瀏覽找到要處理的閃卡資料夾
- 全選卡片→功能表 AwesomeTTS→【Add Audio to Selected...】
- 用Microsoft Speech API JScript或Google Translate,右方Source Field選擇要播音的Extra欄位,插入音訊到Back面板
- 按Generate產生mp3檔。mp3檔會產生在
C:\Users\使用者帳戶\AppData\Roaming\Anki2\設定檔名\collection.media內

6. 💡 相關鏈接
💡 解說文章: https://jdev.tw/blog/8494/
✅Copilot: https://github.com/logancyang/obsidian-copilot
✅Note Splitter plugin: https://github.com/decaf-dev/obsidian-note-splitter
✅Yanki plugin: https://github.com/kitschpatrol/yanki-obsidian
✅ 模板範例: https://gist.github.com/emisjerry/eaada7ec56f8ceba24f74490049e645f
7. 教學影片
##