後續補充:沒做視頻,還是做了音頻。細節可以看這裡
水一篇文章,做個閒聊,整個自然流。
緣起#
我是一檔前端中文音頻播客的主播,叫《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 站發過一期,自己不是很滿意,因為消耗的精力成本還是有點高,這個明天我再搞搞。
我是傾向於音頻 + 視頻同時出的,多個引流的平台。
後面我再更新把。