后续补充:没做视频,还是做了音频。细节可以看这里
水一篇文章,做个闲聊,整个自然流。
缘起#
我是一档前端中文音频播客的主播,叫 《Web Worker》。之前有一期我吹牛说,我想二次消费英文音频播客,之前勉强走通的流程。今天写了一点代码,让流程更容易了,这里做个介绍和备忘。
如果有人看到的话,也欢迎互动反馈。
什么叫二次消费前端英文播客?#
前端英文播客#
播客 Podcast 在老外的世界里是一个传统的发声媒介,聚焦前端程序员相关的播客也不少,所以这萌生了我二次消费的想法。
老外的前端播客质量很高,同样是邀请嘉宾,能邀请到 Vervel 的技术负责人,热门框架 React/Vue/Angualr 的核心成员,热门工具库 Eslint 的作者,畅销书的作者等等,内容质量有保障。
之前零碎搜集了一部分,去年 2022 年的 State of JS 调查问卷里专门有一个调查学习资源中播客的问题,结论在这里
https://2022.stateofjs.com/en-US/resources/podcasts/
所以,前端公认的质量好的前端播客都在这里了。当然了 2022 年暂时还没有 Web Worker ,等 2023 年一起打打榜。这是题外话。
以上是内容源从哪里来。
二次消费#
既然老外的资源这么好,英文也讲的不错(废话),我们可不可以搬运翻译一下?
对自己来说是开拓视野,增加自己的前端话题,也可以顺道学习一下纯正的技术英语。如果做一档节目的话,还能强制自己有质量的输出,一举多得。
想到这里,自己就有了动力,我可以开一个新栏目,或者新节目了。
工作流#
说干就干。要消费音频播客大致这么几个步骤:
- 找到感兴趣的播客内容
- 音频转文字,文字带翻译
- 阅读、收听理解消化,做大纲
- 录制音视频输出
逐个分析并代入流程优化。
找到感兴趣的播客内容#
我按照上面提到的前端播客榜单,逐一订阅并了解内容,排除了一些频道:
- 比如德语、俄罗斯语等等,只关注英语
- 常年不更新的频道,最起码去年一年发过一期
剩下的,收集 RSS,然后专门订阅。这里我用的是 RSSANT 这个网站。因为是 RSS,下载音频文件也很容易。
这一步我找到了感兴趣的播客并得到了每一期的 mp3 文件。
音频转文字,文字带翻译#
之前使用过腾讯云、阿里云、飞书妙计提供的服务,还不错,可用。后面欣喜地看到 OpenAI 推出了可独立部署的 Whisper
项目,这个项目可以利用自己的电脑 CPU/GPU 资源把音频转成文本。
因为我没有 GPU,使用 CPU 速度也不慢,几经折腾,最终使用了 Whisper.cpp 提供的方案,使用 CPU 计算。近期他提供了 M1 苹果芯片的加速方案,但我用起来启动很慢,所以还是用 CPU 更多。
这里可以放一张图片,一个小时的英文播客,使用 Whisper.cpp
+ Medium.en
模型的计算时长。后面补。
这里可以放一张图片,用来解释不同模型选择的优劣和时间对比。后面补。结论是 Medium.en
足够了
通过命令行操作,我就很快得到了 SRT 英文字幕文件。
我通过使用 laf.run
接入了国内的机器翻译服务,具体是火山翻译。因为火山翻译的机器翻译服务每月有 500w 的免费额度(截止 2023 年 05 月 02 日),对我绰绰有余。而且机器翻译是一个很成熟的技术,不一定非得用别的,我知道你想到了 OpenAI 的 ChatGPT
,但是别急。
这里继续案例 laf.run 这个网站,可独立部署托管的 Serverless 平台,目前我是白嫖他提供的服务,写接口快得很。这里先略过,不是本文的重点。
既然有了接口,剩下就是写个 GUI 页面的问题了,我用 vue3
和 arco-design
写了一个简单的前端页面
不怕大家笑话,我放个截图
这个页面实现了
- srt 文件导入解析。
FileReader
- 纯文本内容的提取。
- 最大 5000 字符的截取,实现翻译分段。
- 循环调用接口实现分段翻译。
- 翻译结果预览、文件导出双语字幕
这样我就实现了翻译的工作
阅读、收听理解消化,做大纲#
绝知此事要躬行。还是要自己听一听。有了双语字幕,听起来不吃力。
直接读字幕文件也可以。
边听边理解,大纲腹稿就有了。
因为 laf.run 非常好用,我还接入了 ChatGPT 帮我进行总结,双保险。
技术点:
- laf.run 提供接口,包装 GPT 服务
- 前端英语分段,循环调用接口
- 总结内容预览下载
体力活我可不干,还是写了个简单的页面
Prompt 感觉还能优化,这个再说。
录制音视频输出#
这个我在 B 站发过一期,自己不是很满意,因为消耗的精力成本还是有点高,这个明天我再搞搞。
我是倾向于音频 + 视频同时出的,多个引流的平台。
后面我再更新把。