用Anki练习听力--利用好subs2srs工具

用Anki练习听力--利用好subs2srs工具

更新:有人问最终卡片效果,其实很简单,正面可以听一句的音频,听写,然后背面就是显示答案,并对比自己写的内容。

我把03-29这期最终卡片,打包分享在这个地址:

链接: pan.baidu.com/s/17_v-ty 密码: 88rg

_______________________________________________________________________________

原文:

Anki怎么背单词有很多人说了,知乎上有很多前辈都分享了很多有趣详细的教程。

现在我想说下,我是怎么用Anki练习听力的。

我个人是觉得精听才能明显提高听力的,但是一直没有很好的软件能够让自己方便地一句一句的精听材料,并实现Anki这个强大的记忆软件的复习功能

我在尝试使用Anki练习听力时,却也没有其它软件那么丰富的听力材料来源

之前在知乎了解到subs2srs这个软件,才有思路实现了自己的想法,高效的生成Anki的听力 素材。现在分享如下。

基本思路:

  1. 下载CNN10的音频或视频。
  2. 下载CNN10官方提供的字幕文件。
  3. 对字幕文件进行处理。使时间戳是以完整的句子为单位。
  4. 利用subs2srs将视频或音频按字幕文件的时间戳进行切割。得到句子对应的音频文件和anki导入文件。
  5. 导入anki。

CNN10每期只有10分钟,选材来源丰富,更新也及时,语速一般快,难度偏中上。而且因为语速足够快,句与句之间停留短,其官方提供的字幕的时间戳也比较准确。不像美剧或电影,字幕可能与语音出现的时间有1秒左右的差距。这对于subs2srs生成听力材料是非常有利的。

subs2srs的使用不难,比较麻烦的是官方提供的字幕文件常常不是以完整的一个句子为单位。subs2srs如果直接以官方提供的字幕文件分割视频或音频,得到的是半句半句的音频材料。

如官方提供的字幕,一句话分成两段:

00:00:12.860 --> 00:00:15.250

CARL AZUZ: Welcome to "CNN 10," your objective explanation

00:00:15.250 --> 00:00:16.480

of world news.

需要合并时间戳成一段,subs2srs才能分割到完整的一句。

00:00:12,860 --> 00:00:16,480

CARL AZUZ: Welcome to "CNN 10," your objective explanation of world news.

所以我用python自动实现了上面的过程。让python自动帮我以句子为单位,合并相应的时间戳。

我这个思路可以扩展到其它电影素材等,只要得到正确的以句子为单位的字幕文件,就可以得到一句一句的音视频材料,然后导入anki。

下面详细介绍下过程:

1.下载CNN10的音频或视频。

CNN10每天更新的音频mp3或视频mp4源材料,可以在这个网址下载:CNN 10 学生视频英语教学节目


2.下载CNN10官方提供的字幕文件。

CNN官方会提供.vtt格式的字幕文件。字幕文件的下载地址是我抓包得到的。字幕下载地址如下:

https://pmd.cdn.turner.com/cnn/big/cnn10/2018/02/06/caption/ten-0207.cnn_1909550_ios__en.vtt

每天更新的字幕文件下载地址都有所不同。下面讲下怎么简单得到字幕下载地址。

如果安装IDM,在观察视频时,IDM会有下载窗口如下:

我们把地址复制下,上面的url是:

https://cnnios-f.akamaihd.net/i/cnn/big/cnn10/2018/03/28/caption/ten-0329.cnn_2020475_ios_,440,650,840,1240,3000,5500,.mp4.csmil/index_1_av.m3u8?null=0

把“2018/03/28/caption/ten-0329.cnn_2020475”这一段复制出来。

把原始字幕下载地址的部分进行替换:

https://pmd.cdn.turner.com/cnn/big/cnn10/2018/02/06/caption/ten-0207.cnn_1909550_ios__en.vtt

得到每天的新字幕文件下载地址:

https://pmd.cdn.turner.com/cnn/big/cnn10/2018/03/28/caption/ten-0329.cnn_2020475_ios__en.vtt

把这个地址粘贴到IDM或迅雷的下载框都可以下载到每天的.vtt的字幕文件。

注意如果下载地址正确,却下载不到文件,是因为有时.vtt的更新会比视频的更新有点滞后。等官网更新提供了字幕,就能下载到了。


3. 对字幕文件进行处理。使时间戳是以完整的句子为单位。

.vtt文件,subs2srs好像处理不了,所以需要转换成.srt格式的字幕文件。我本来想使用python处理将.vtt自动转成.srt,但是并没有找到完美的代码。所以是使用比较成熟的SubtitleEdit这个字幕编辑软件。

把vtt文件导入SubtitleEdit。

选中所有行,点“取消换行”,删除多余的换行符。

简单删除一些明显无用的句子。如结尾句等。

字幕中有{\an8},中括号提示信息,只有时间戳而无字幕,这三种情况都会在后面python程序处理,可以暂时不用理。

然后文件-另存为srt格式。

我自己写了一段简单的python代码,可以利用python格式化srt文件,去除{\an8},去除中括号内容,将分散的语句合并为完整的一句话。

代码可以在下面网址下载:

链接: pan.baidu.com/s/1b_DnVZ 密码: 3fi7

把.py文件放在.srt同一目录下,双击执行,即可得到output.srt的处理后的字幕文件。(如果运行不了程序,请百度下载python 3.x)


4.利用subs2srs将视频或音频按字幕文件的时间戳进行切割。得到句子对应的音频文件和anki导入文件。

打开subs2srs,SUBS1 填srt文件地址

Output 填保存地址,就是等一会生成好的anki导入文件的保存地址

Video 填视频文件地址,如果是想分割mp3,这里可以不用填,在Generate Audio Clips里选mp3文件的地址。

Generate Audio Clips 打勾 –分割音频

Generate Snaphots 不打勾-截图

Generate Video clips 不打勾-分割视频

截图和视频在anki使用文件较大,麻烦,所以不打勾

在Generate Audio Clips里

Pad times打勾,这里是截音频的时候前或后增加的时间,前填100,后填0。可以适度调节,防止分割不准。

Normalize Audio是使音量大小一致。

最下面Naming填生成的音频文件名。如CNN-2018-03-29

点Preview预览。

可以预览下声音。

某一条想不要,可以点deactivate.

点go生成文件。

(我第一次点go的时候,360提示病毒,吓死我了,不过我在虚拟机运行后,并没有问题。请确保是在官网下载的subs2srs,应该就没有问题)

在上面填的Output 保存地址里就会有生成的anki导入文件。

5.导入anki。

点anki里的文件-导入,选择上一步生成的CNN-2018-03-29.tsv。

(不知道是不是anki版本的原因,我导入时目录只能选桌面,所以是把.tsv复制到桌面,再导入)


类型选basic,记忆库选导入的库

允许使用html那里打勾

用记事本可以查看tsv文件里每一字段的内容。

这里我们把第3字段的音频名和第4字段的文字内容,分别导入正反面就可以。

点导入就OK。

然后把生成的文件夹下的所有音频文件放入anki媒体文件夹。

C:\Users\XXX\AppData\Roaming\Anki2\用户1\collection.media

文章被以下专栏收录