https://github.com/msjsc001/anki-tts-edge
Effortlessly add free, high-quality Microsoft Edge TTS audio to Anki cards via text selection or copy, featuring a customizable, multi-lingual UI. 免费、快捷地为 Anki 添加高质量微软 Edge 语音,支持划词/复制触发、界面定制和多语言显示。
https://github.com/msjsc001/anki-tts-edge
anki audio clipboard customtkinter edge-tts flashcards gui language-learning microsoft-tts pygame pynput python text-to-speech tts windows
Last synced: 2 months ago
JSON representation
Effortlessly add free, high-quality Microsoft Edge TTS audio to Anki cards via text selection or copy, featuring a customizable, multi-lingual UI. 免费、快捷地为 Anki 添加高质量微软 Edge 语音,支持划词/复制触发、界面定制和多语言显示。
- Host: GitHub
- URL: https://github.com/msjsc001/anki-tts-edge
- Owner: msjsc001
- License: other
- Created: 2025-03-27T17:18:12.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-04-12T18:31:48.000Z (about 1 year ago)
- Last Synced: 2025-04-13T01:03:48.873Z (about 1 year ago)
- Topics: anki, audio, clipboard, customtkinter, edge-tts, flashcards, gui, language-learning, microsoft-tts, pygame, pynput, python, text-to-speech, tts, windows
- Language: Python
- Homepage:
- Size: 15.2 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🎵 Anki-TTS-Edge: Anki Audio Generator! 🎵
## Anki快捷文生音!基于微软免费!助力学习!
**(Customizable Colors, Chinese/English Support / 自定义色彩界面,中英支持)**

[](https://github.com/msjsc001/Anki-TTS-Edge/releases) [](https://github.com/msjsc001/Anki-TTS-Edge/releases/latest) [](https://github.com/msjsc001/Anki-TTS-Edge/commits/master)


**Select** or **Ctrl+C** text, click the 🔵 blue dot to generate audio.
A 🟢 green dot appears during generation, turning 🔴 red upon completion.
Then, use **Ctrl+V** to paste the audio file into Anki!
**(划选** 或 **Ctrl+C** 文字后点击 🔵 蓝点生成音频,生成音频中会出现 🟢 绿点,
生成结束后变为 🔴 红点,而后可按 **Ctrl+V** 快捷粘贴文件!**)**
---
## ✨ Features / 功能特性
English 👈🏼 Click to expand
An Anki audio generation tool based on [Edge-TTS](https://github.com/rany2/edge-tts), providing a free and fast way to add high-quality Microsoft Edge voices to your Anki flashcards.
* **One-Click Generation**: Quickly generate `.mp3` audio files for selected text in your Anki cards using the main interface.
* **Quick Actions**:
* Copy text (Ctrl+C).
* Alternatively, select text with your mouse (if enabled in settings).
* Click the floating 🔵 blue button that appears near your cursor.
* Wait for the 🟢 green processing indicator to disappear.
* A 🔴 red confirmation dot appears briefly.
* Audio file is automatically copied to your clipboard.
* Paste (Ctrl+V) directly into your Anki field!
* **Multiple Voices**: Supports various languages and voice roles provided by Microsoft Edge TTS.
* **Customizable UI**: Easy-to-use graphical interface with theme and color customization.
* **Language Support**: Interface available in English and Chinese (中文).
* **Auto Cleanup**: Automatically manages the number of cached audio files.
中文 (Chinese) 👈🏼 点击展开
基于 [Edge-TTS](https://github.com/rany2/edge-tts) 的 Anki 音频生成工具,免费、快速地为你的 Anki 学习卡片添加高质量的微软 Edge 语音。
* **一键生成**:通过界面输入框快速为文本生成 `.mp3` 音频文件。
* **快捷操作**:
* 复制文本 (Ctrl+C)。
* 或者,用鼠标划选文本(需在设置中开启)。
* 点击鼠标附近浮现的 🔵 蓝色按钮。
* 等待 🟢 绿色处理提示消失。
* 短暂出现 🔴 红色确认提示。
* 音频文件已自动复制到剪贴板。
* 直接在 Anki 字段中粘贴 (Ctrl+V)!
* **多种语音**:支持微软 Edge TTS 提供的多种语言和语音角色选择。
* **自定义界面**:提供易于使用的图形用户界面 (GUI),支持主题和主颜色自定义。
* **语言支持**:界面支持英文和中文。
* **自动清理**:自动管理缓存的音频文件数量。
---
## 🎬 GIF Demo / GIF 功能演示
---
## 🚀 Quick Start (Recommended) / 快速开始 (推荐)
English 👈🏼 Click to expand
If you prefer not to set up a Python environment, you can download the pre-packaged Windows executable (`.exe`):
1. **Go to the Releases Page**: Visit the project's [GitHub Releases](https://github.com/msjsc001/Anki-TTS-Edge/releases) page.
2. **Download the Latest Version**: Find the newest release and download the `.zip` archive (e.g., `Anki-TTS-Edge_vX.X.X.zip`).
3. **Extract and Run**: Extract the contents of the zip file to any location you prefer. Double-click `Anki-TTS-Edge.exe` to run the application! 🎉
中文 (Chinese) 👈🏼 点击展开
如果你不想配置 Python 环境,可以直接下载我们为你打包好的 Windows 可执行文件 (`.exe`):
1. **前往 Releases 页面**:访问项目的 [GitHub Releases](https://github.com/msjsc001/Anki-TTS-Edge/releases) 页面。
2. **下载最新版本**:找到最新的版本,下载 `.zip` 压缩包 (例如 `Anki-TTS-Edge_vX.X.X.zip`)。
3. **解压运行**:将压缩包解压到你喜欢的任意位置,然后双击运行 `Anki-TTS-Edge.exe` 即可! 🎉
### [**➡️ Download Latest Release Here / 点此下载最新版本 ⬅️**](https://github.com/msjsc001/Anki-TTS-Edge/releases)
👆 🙋 🙋♂️ 🙋♀️ 👆
---
## 🗨️ Supported Voices List (Apr 1, 2025) / 支持的语音列表 (2025-04-01)
Click to expand/collapse the full list / 点击展开/折叠完整列表 👈🏼
> **Note:** In the application's voice filter input, use the first two letters of the language code (e.g., `zh` for Chinese, `en` for English) to filter the voice lists.
>
> **注意:** 在应用的声音筛选框中,使用语言代码的前两位(例如 `zh` 代表中文,`en` 代表英文)来筛选语音列表。
* **af-ZA(南非荷兰语 - 南非 / Afrikaans - South Africa)** 👈🏼 点击展开
* `af-ZA-AdriNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* `af-ZA-WillemNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* **am-ET(阿姆哈拉语 - 埃塞俄比亚 / Amharic - Ethiopia)** 👈🏼 点击展开
* `am-ET-AmehaNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* `am-ET-MekdesNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* **ar(阿拉伯语 / Arabic - Multiple Regions)** 👈🏼 点击展开
* **ar-AE(阿联酋 / UAE)**: FatimaNeural (F), HamdanNeural (M)
* **ar-BH(巴林 / Bahrain)**: AliNeural (M), LailaNeural (F)
* **ar-DZ(阿尔及利亚 / Algeria)**: AminaNeural (F), IsmaelNeural (M)
* **ar-EG(埃及 / Egypt)**: SalmaNeural (F), ShakirNeural (M)
* **ar-IQ(伊拉克 / Iraq)**: BasselNeural (M), RanaNeural (F)
* **ar-JO(约旦 / Jordan)**: SanaNeural (F), TaimNeural (M)
* **ar-KW(科威特 / Kuwait)**: FahedNeural (M), NouraNeural (F)
* **ar-LB(黎巴嫩 / Lebanon)**: LaylaNeural (F), RamiNeural (M)
* **ar-LY(利比亚 / Libya)**: ImanNeural (F), OmarNeural (M)
* **ar-MA(摩洛哥 / Morocco)**: JamalNeural (M), MounaNeural (F)
* **ar-OM(阿曼 / Oman)**: AbdullahNeural (M), AyshaNeural (F)
* **ar-QA(卡塔尔 / Qatar)**: AmalNeural (F), MoazNeural (M)
* **ar-SA(沙特阿拉伯 / Saudi Arabia)**: HamedNeural (M), ZariyahNeural (F)
* **ar-SY(叙利亚 / Syria)**: AmanyNeural (F), LaithNeural (M)
* **ar-TN(突尼斯 / Tunisia)**: HediNeural (M), ReemNeural (F)
* **ar-YE(也门 / Yemen)**: MaryamNeural (F), SalehNeural (M)
* **az-AZ(阿塞拜疆语 - 阿塞拜疆 / Azerbaijani - Azerbaijan)** 👈🏼 点击展开
* `az-AZ-BabekNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* `az-AZ-BanuNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* **bg-BG(保加利亚语 - 保加利亚 / Bulgarian - Bulgaria)** 👈🏼 点击展开
* `bg-BG-BorislavNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* `bg-BG-KalinaNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* **bn(孟加拉语 / Bengali - Multiple Regions)** 👈🏼 点击展开
* **bn-BD(孟加拉国 / Bangladesh)**: NabanitaNeural (F), PradeepNeural (M)
* **bn-IN(印度 / India)**: BashkarNeural (M), TanishaaNeural (F)
* **bs-BA(波斯尼亚语 - 波黑 / Bosnian - Bosnia and Herzegovina)** 👈🏼 点击展开
* `bs-BA-GoranNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* `bs-BA-VesnaNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* **ca-ES(加泰罗尼亚语 - 西班牙 / Catalan - Spain)** 👈🏼 点击展开
* `ca-ES-EnricNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* `ca-ES-JoanaNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* **cs-CZ(捷克语 - 捷克 / Czech - Czech Republic)** 👈🏼 点击展开
* `cs-CZ-AntoninNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* `cs-CZ-VlastaNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* **cy-GB(威尔士语 - 英国 / Welsh - United Kingdom)** 👈🏼 点击展开
* `cy-GB-AledNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* `cy-GB-NiaNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* **da-DK(丹麦语 - 丹麦 / Danish - Denmark)** 👈🏼 点击展开
* `da-DK-ChristelNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* `da-DK-JeppeNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* **de(德语 / German - Multiple Regions)** 👈🏼 点击展开
* **de-AT(奥地利 / Austria)**: IngridNeural (F), JonasNeural (M)
* **de-CH(瑞士 / Switzerland)**: JanNeural (M), LeniNeural (F)
* **de-DE(德国 / Germany)**: AmalaNeural (F), ConradNeural (M), FlorianMultilingualNeural (M, Multi), KatjaNeural (F), KillianNeural (M), SeraphinaMultilingualNeural (F, Multi)
* **el-GR(希腊语 - 希腊 / Greek - Greece)** 👈🏼 点击展开
* `el-GR-AthinaNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* `el-GR-NestorasNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* **en(英语 / English - Multiple Regions)** 👈🏼 点击展开
* **en-AU(澳大利亚 / Australia)**: NatashaNeural (F), WilliamNeural (M)
* **en-CA(加拿大 / Canada)**: ClaraNeural (F), LiamNeural (M)
* **en-GB(英国 / UK)**: LibbyNeural (F), MaisieNeural (F), RyanNeural (M), SoniaNeural (F), ThomasNeural (M)
* **en-HK(香港 / Hong Kong)**: SamNeural (M), YanNeural (F)
* **en-IE(爱尔兰 / Ireland)**: ConnorNeural (M), EmilyNeural (F)
* **en-IN(印度 / India)**: NeerjaExpressiveNeural (F, Expressive), NeerjaNeural (F), PrabhatNeural (M)
* **en-KE(肯尼亚 / Kenya)**: AsiliaNeural (F), ChilembaNeural (M)
* **en-NG(尼日利亚 / Nigeria)**: AbeoNeural (M), EzinneNeural (F)
* **en-NZ(新西兰 / New Zealand)**: MitchellNeural (M), MollyNeural (F)
* **en-PH(菲律宾 / Philippines)**: JamesNeural (M), RosaNeural (F)
* **en-SG(新加坡 / Singapore)**: LunaNeural (F), WayneNeural (M)
* **en-TZ(坦桑尼亚 / Tanzania)**: ElimuNeural (M), ImaniNeural (F)
* **en-US(美国 / USA)**: AnaNeural (F, Cartoon/Cute), AndrewMultilingualNeural (M, Multi/Copilot), AndrewNeural (M, Copilot), AriaNeural (F, News), AvaMultilingualNeural (F, Multi/Copilot), AvaNeural (F, Copilot), BrianMultilingualNeural (M, Multi/Copilot), BrianNeural (M, Copilot), ChristopherNeural (M, News), EmmaMultilingualNeural (F, Multi/Copilot), EmmaNeural (F, Copilot), EricNeural (M, News), GuyNeural (M, News), JennyNeural (F, Friendly), MichelleNeural (F, News), RogerNeural (M, News), SteffanNeural (M, News)
* **en-ZA(南非 / South Africa)**: LeahNeural (F), LukeNeural (M)
* **es(西班牙语 / Spanish - Multiple Regions)** 👈🏼 点击展开
* **es-AR(阿根廷 / Argentina)**: ElenaNeural (F), TomasNeural (M)
* **es-BO(玻利维亚 / Bolivia)**: MarceloNeural (M), SofiaNeural (F)
* **es-CL(智利 / Chile)**: CatalinaNeural (F), LorenzoNeural (M)
* **es-CO(哥伦比亚 / Colombia)**: GonzaloNeural (M), SalomeNeural (F)
* **es-CR(哥斯达黎加 / Costa Rica)**: JuanNeural (M), MariaNeural (F)
* **es-CU(古巴 / Cuba)**: BelkysNeural (F), ManuelNeural (M)
* **es-DO(多米尼加 / Dominican Rep.)**: EmilioNeural (M), RamonaNeural (F)
* **es-EC(厄瓜多尔 / Ecuador)**: AndreaNeural (F), LuisNeural (M)
* **es-ES(西班牙 / Spain)**: AlvaroNeural (M), ElviraNeural (F), XimenaNeural (F)
* **es-GQ(赤道几内亚 / Equatorial Guinea)**: JavierNeural (M), TeresaNeural (F)
* **es-GT(危地马拉 / Guatemala)**: AndresNeural (M), MartaNeural (F)
* **es-HN(洪都拉斯 / Honduras)**: CarlosNeural (M), KarlaNeural (F)
* **es-MX(墨西哥 / Mexico)**: DaliaNeural (F), JorgeNeural (M)
* **es-NI(尼加拉瓜 / Nicaragua)**: FedericoNeural (M), YolandaNeural (F)
* **es-PA(巴拿马 / Panama)**: MargaritaNeural (F), RobertoNeural (M)
* **es-PE(秘鲁 / Peru)**: AlexNeural (M), CamilaNeural (F)
* **es-PR(波多黎各 / Puerto Rico)**: KarinaNeural (F), VictorNeural (M)
* **es-PY(巴拉圭 / Paraguay)**: MarioNeural (M), TaniaNeural (F)
* **es-SV(萨尔瓦多 / El Salvador)**: LorenaNeural (F), RodrigoNeural (M)
* **es-US(美国 / USA)**: AlonsoNeural (M), PalomaNeural (F)
* **es-UY(乌拉圭 / Uruguay)**: MateoNeural (M), ValentinaNeural (F)
* **es-VE(委内瑞拉 / Venezuela)**: PaolaNeural (F), SebastianNeural (M)
* **et-EE(爱沙尼亚语 - 爱沙尼亚 / Estonian - Estonia)** 👈🏼 点击展开
* `et-EE-AnuNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* `et-EE-KertNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* **fa-IR(波斯语 - 伊朗 / Persian - Iran)** 👈🏼 点击展开
* `fa-IR-DilaraNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* `fa-IR-FaridNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* **fi-FI(芬兰语 - 芬兰 / Finnish - Finland)** 👈🏼 点击展开
* `fi-FI-HarriNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* `fi-FI-NooraNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* **fil-PH(菲律宾语 - 菲律宾 / Filipino - Philippines)** 👈🏼 点击展开
* `fil-PH-AngeloNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* `fil-PH-BlessicaNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* **fr(法语 / French - Multiple Regions)** 👈🏼 点击展开
* **fr-BE(比利时 / Belgium)**: CharlineNeural (F), GerardNeural (M)
* **fr-CA(加拿大 / Canada)**: AntoineNeural (M), JeanNeural (M), SylvieNeural (F), ThierryNeural (M)
* **fr-CH(瑞士 / Switzerland)**: ArianeNeural (F), FabriceNeural (M)
* **fr-FR(法国 / France)**: DeniseNeural (F), EloiseNeural (F), HenriNeural (M), RemyMultilingualNeural (M, Multi), VivienneMultilingualNeural (F, Multi)
* **ga-IE(爱尔兰语 - 爱尔兰 / Irish - Ireland)** 👈🏼 点击展开
* `ga-IE-ColmNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* `ga-IE-OrlaNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* **gl-ES(加利西亚语 - 西班牙 / Galician - Spain)** 👈🏼 点击展开
* `gl-ES-RoiNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* `gl-ES-SabelaNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* **gu-IN(古吉拉特语 - 印度 / Gujarati - India)** 👈🏼 点击展开
* `gu-IN-DhwaniNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* `gu-IN-NiranjanNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* **he-IL(希伯来语 - 以色列 / Hebrew - Israel)** 👈🏼 点击展开
* `he-IL-AvriNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* `he-IL-HilaNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* **hi-IN(印地语 - 印度 / Hindi - India)** 👈🏼 点击展开
* `hi-IN-MadhurNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* `hi-IN-SwaraNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* **hr-HR(克罗地亚语 - 克罗地亚 / Croatian - Croatia)** 👈🏼 点击展开
* `hr-HR-GabrijelaNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* `hr-HR-SreckoNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* **hu-HU(匈牙利语 - 匈牙利 / Hungarian - Hungary)** 👈🏼 点击展开
* `hu-HU-NoemiNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* `hu-HU-TamasNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* **id-ID(印尼语 - 印尼 / Indonesian - Indonesia)** 👈🏼 点击展开
* `id-ID-ArdiNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* `id-ID-GadisNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* **is-IS(冰岛语 - 冰岛 / Icelandic - Iceland)** 👈🏼 点击展开
* `is-IS-GudrunNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* `is-IS-GunnarNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* **it-IT(意大利语 - 意大利 / Italian - Italy)** 👈🏼 点击展开
* `it-IT-DiegoNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
* `it-IT-ElsaNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* `it-IT-GiuseppeMultilingualNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极,多语言)
* `it-IT-IsabellaNeural` - Female, General, Friendly, Positive(女性,通用,友好,积极)
* **iu(因纽特语 - 加拿大 / Inuktitut - Canada)** 👈🏼 点击展开
* **iu-Cans-CA(加拿大音节 / Cans)**: SiqiniqNeural (F), TaqqiqNeural (M)
* **iu-Latn-CA(拉丁字母 / Latn)**: SiqiniqNeural (F), TaqqiqNeural (M)
* **ja-JP(日语 - 日本 / Japanese - Japan)** 👈🏼 点击展开
* `ja-JP-KeitaNeural` - Male, General, Friendly, Positive(男性,通用,友好,积极)
3. **创建/使用 `.spec` 文件 (强烈推荐)**:
* **生成:** `pyinstaller --name Anki-TTS-Edge --noconsole --onefile main.py`
* **编辑 `Anki-TTS-Edge.spec`**:在 `Analysis` 部分的 `datas` 列表中添加 `translations.json`:
```python
a = Analysis(
# ...
datas=[('translations.json', '.')], # 添加此行
# ...
)
```
* *(可以考虑 `customtkinter` 或 `pygame` 是否需要在此处添加额外的数据文件,但通常 PyInstaller 能处理好。)*
4. **使用 `.spec` 文件构建**:
```bash
pyinstaller Anki-TTS-Edge.spec
```
5. 最终的单个 `.exe` 文件将位于 `dist` 目录下。
---
## 📄 License & Dependencies / 版权与依赖
English 👈🏼 Click to expand
* Relies on [edge-tts](https://github.com/rany2/edge-tts) (GPL-3.0 License).
* This project is released under the **GPL-3.0 License**. You can freely use, modify, and distribute the code, but derivative works must also be open-sourced under GPL-3.0.
中文 (Chinese) 👈🏼 点击展开
* 基于 [edge-tts](https://github.com/rany2/edge-tts) (GPL-3.0 许可证)。
* 本项目采用 **GPL-3.0 许可证**。您可以自由使用、修改和分发,但衍生作品也必须使用 GPL-3.0 开源。
---
## 🤝 Contributing / 参与贡献
English 👈🏼 Click to expand
Contributions via Issues or Pull Requests are welcome!
中文 (Chinese) 👈🏼 点击展开
欢迎通过 Issue 或 Pull Request 参与贡献!
---
🌐 **Project Repository / 项目地址**: [https://github.com/msjsc001/Anki-TTS-Edge](https://github.com/msjsc001/Anki-TTS-Edge)