• 作者:老汪软件技巧
  • 发表时间:2024-12-22 11:06
  • 浏览量:

最近参加了一次英语面试,过程可谓惨不忍睹,很多内容不知道怎么表达,场面一度十分尴尬。此刻,意识到提升英语能力的重要性。我准备用听说结合的方式练习英语。具体来说,就是通过听单词和解释来背单词。听句子和跟读句子来提升口语能力。就像小孩子一样,主要通过耳朵来学习语言。我在网上找到很多英语学习视频,有很多单子句子朗读的,发现大多数内容与工作无关。于是萌生了一个想法:为什么不制作一些完全贴合我学习需求的视频呢?这样的方式不仅可以定制学习内容,还能增加我的学习兴趣。说干就干,于是就开发了一个生成视频的工具。刚做完第一版,能够根据 csv 生成一个读单词的视频。

预期的学习方式

我的目标是每天晚上整理并学习一批单词,将它们生成视频后,第二天上下班开车时播放跟读,或者在空闲时随时观看。这些单词的来源主要是阅读英文书和文档时记录下的不熟悉单词,每天大约学 20-50 个。我会把这些单词收藏到有道词典,其实就是把有道词典当成数据库,不至于重复记录。再把每天的单词整理成包含单词、音标和解释的 CSV 文件。通过开发的工具,根据这个 csv 文件生成视频。最后把视频上传到 YouTube。选择 YouTube 的原因有三点:第一,避免视频占用手机空间;第二,支持多端同步和记录观看进度;第三,我订阅了 YouTube 会员,可以利用后台播放功能,将视频当作音频来听,这也为学习提供了更多便利。

放一张视频截图

image.png

技术选型环境准备

我是 Windows 电脑,开发用 WSL(Windows Subsystem for Linux),装的 Ubuntu 系统。

安装 FFmpeg

FFmpeg 是处理音视频的核心工具,安装方式如下:

sudo apt install ffmpeg

初始化项目

创建并初始化一个 Node.js 项目:

npm init -y

安装必要依赖

使用 Yarn 安装依赖:

视频制作英语翻译_怎么制作英语视频短片_

yarn add axios canvas@next dotenv

开发

整个工具的执行流程如下:

读取单词数据:通过 Node.js 读取 CSV 文件,每一行数据包含单词、音标和解释。这些数据构成了生成视频的基本素材。生成音频:将每个单词及其对应的解释发送到百度云语音合成 API,生成语音文件。制作单词图片:利用 Canvas 将单词、音标及解释动态绘制成图片。音频与图片整合:使用 FFmpeg 将生成的音频与对应的图片合成视频,形成一个单词对应的独立视频片段。音频的设计为三次朗读:第一遍正常语速,帮助熟悉发音;第二遍慢速,便于学习;第三遍再次正常语速,强化记忆。合并单词视频:将所有单词的视频片段合并为一个完整的视频文件,方便统一观看。

核心代码几乎都是 Github Copilot 生成,源码: programmer-English

使用方式就是把 csv 文件路径传参给脚本,一段时间后就能生成一个单词的朗读视频。

node index.js path-to-csv

待优化的内容单词只支持一种词性,后面考虑加多种解释。只有单词,后续可以增加例句,一是深对单词的理解,二是句子才是真正的表达,只学单词是没用的。


上一条 查看详情 +没有了
下一条 查看详情 +没有了