Anki自动生成语音

前言

已经实现了通过使用Obsidian实现Anki快速制卡

对于语言学习,仅仅只有不同语言文字的对照是不够的,我们还需要声音。

所以就需要加入音频。

幸好 Anki 插件十分丰富。

安装插件

这里我们使用 AwesomeTTS 插件进行音频生成。

此为插件链接 AwesomeTTS - Add speech to your flashcards - AnkiWeb

先安装插件,如有不会请先看 Anki如何安装插件

安装后点击 Anki 中的浏览

Snipaste_2024-08-23_21-31-50.png

可以看到多了一个 AwesomeTTS 选项。

Snipaste_2024-08-23_21-32-35.png

这就说明安装成功了。

制作音频

这个插件制作音频是开箱即用的,非常简单。

先选中一些卡片,然后点击 AwesomeTTS 中的 Add Audio to Selected

Snipaste_2024-08-23_21-34-07.png

进入下面的界面。

Generate Using 是选择你要用的语音模型,我这里用 Azure,这个是需要 API 的。还可以用 Google Translate,这个不需要 API,免费的,不过如果一次生成太多的卡片,会有个 sleep,需要等挺长时间的。

Voice 是声音,选择你需要的语言,语言一定要选对,不然会很奇怪。不同人物音色是不同的。

下面的 sava 可以保存声音的设置,下次生成就不用调整了。

最后单击 Generate,生成声音。可能会出现 sleep,让你等待,那就耐心等待,这个是因为一次请求太多了,一次生成十个卡片以上就会出现,换个付费的语音模型可以避免。

Snipaste_2024-08-23_21-37-41.png

如果卡片后面出现 sound: xxx.mp3,这就说明语音生成成功了。

Snipaste_2024-08-23_21-45-03.png

预览卡片,我们也能看到播放图标了。

Snipaste_2024-08-23_21-38-04.png

一些注意事项

有些事情是需要注意的。

语音消失现象

当 Obsidian 中的一篇笔记再次点击制卡按键后,Anki 中的语音就会被删除,因为新制作的卡会覆盖老的卡片,语音是后加入的,会被覆盖掉,你就得重新制作卡片了。

所以推荐当你不会再点击制卡后再制作语音。

不同端出现媒体文件丢失

使用 AnkiWeb 进行不同端的同步时,可能会出现媒体文件丢失。

这是因为 Anki 默认只同步牌组,至于说卡牌含有的媒体文件,是不管的。

我们需要点击工具里面的设置。

选择同步,勾上同时同步音频和图片

Snipaste_2024-08-23_21-51-53.png

参考文章

如何使用AwesomeTTS进行音频生成

Anki的卡片配置推荐

AwesomeTTS: Batch Generation (vocab.ai)

PKMer_Obsidian 插件:用 Obsidian 进行 Anki 制卡

### Anki 文本转语音 API 使用方法 #### 选择合适的 TTS 引擎 当考虑在 Anki 中集成文本转语音 (TTS) 功能时,AwesomeTTS 插件是一个理想的选择。该插件支持多种 TTS 引擎,允许用户根据需求和个人偏好进行选择[^2]。 对于希望使用特定 API 的情况,Azure 和 Google Translate 是两个常见的选项。Azure 提供高质量的语音合成功能,但需要有效的 API 密钥;而 Google Translate 则提供了一个无需 API 密钥的便捷解决方案,尽管大量请求可能会导致延迟[^3]。 #### 安装 AwesomeTTS 插件 为了利用这些服务,在 Anki 中安装并启用 AwesomeTTS 插件是必要的第一步。这可以通过访问 Anki 的官方插件市场完成,找到 AwesomeTTS 并按照提示操作即可完成安装过程。 #### 配置 TTS 设置 一旦插件被激活,进入其设置页面来指定所使用的 TTS 引擎。如果选择了像 Azure 这样的付费服务,则需输入相应的 API 凭证信息。而对于 Google Translate 等免费服务,则可以直接应用默认配置。 ```python # Python 示例代码展示如何调用 Google Text-to-Speech API from google.cloud import texttospeech_v1 as tts client = tts.TextToSpeechClient() input_text = tts.SynthesisInput(text="你好世界") voice = tts.VoiceSelectionParams(language_code='zh-CN', ssml_gender=tts.SsmlVoiceGender.NEUTRAL) audio_config = tts.AudioConfig(audio_encoding=tts.AudioEncoding.MP3) response = client.synthesize_speech(input=input_text, voice=voice, audio_config=audio_config) with open('output.mp3', 'wb') as out: out.write(response.audio_content) print('Audio content written to file "output.mp3"') ``` 此段代码展示了如何通过 Python 调用 Google Cloud Text-to-Speech API 来生成 MP3 文件中的语音输出。 #### 自动生成语音卡 最后一步是在 Anki 卡片模板中加入 TTS 字段标签 {{tts}} 或者使用 Add-ons 自动为每张新卡片添加对应的音频片段。这样每次复习时就能自动播放对应的文字发音了[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值