

該項目是我以前兩個項目的組合和持續發展的結果:
在2023年,在Chatgpt Hype中,我受到啟發,將我的兩個項目結合到一個播客播放器中,並通過使用Open AI的API來改進它。
僅供參考:Spotify隨後發布了針對播客字幕和章節的類似解決方案,請在此處閱讀更多信息。
該項目中使用的技術可以在下表中找到。
| 技術 | 用例 |
|---|---|
| 反應 | 前端框架 |
| 尾風 | CSS造型庫 |
| Python | 後端處理轉錄邏輯 |
| 燒瓶 | 連接Python後端與React Frontend |
| Spotify API | 獲取有關播客情節的信息 |
| Google語音識別API | 將語音轉換為文字,即轉錄播客 |
| 打開AI的GPT 3.5 API | 基於成績單的分段成績單分為幾章 |
我想學習如何將React Frontend連接到Python後端,因此我將這個項目用作學習機會。結果,我通過構建自己的API來處理python後端的轉錄,而不是在前端撥打插件的API,從而進行了一些過度工程。
更具體地說,前端致電Spotify API並獲取所需播客的URL。 URL作為請求發送給後端,該請求將播客作為MP3下載以對其進行處理。
需要處理mp3的原因是我需要為每個句子獲取時間戳以在字幕中的正確時間顯示它們。我通過聆聽超過500毫秒的沉默(<14分貝)來識別筆錄中的句子。確定沉默後,我將原始音頻文件拆分以創建一組較小的音頻文件,每個句子一個。通過這樣做,我能夠通過查看每個較小音頻文件的長度來計算每個句子的開始和結束時間,請參見下圖。

現在,所有音頻文件都發送到Google的語音識別API,並返回抄錄的音頻。現在,轉錄正在發送回前端,該登記端提出要求打開AI的API以細分成績單並確定潛在主題以將情節劃分為不同的章節。
Spotify的API不允許您下載完整的播客劇集,只有30秒的預覽。這使該應用程序非常有限,因此僅是概念證明。
在根目錄中創建.ENV文件,然後添加您的API鍵:
REACT_APP_SPOTFY_CLIENT_ID=YOUR_SPOTIFY_CLIENT_ID_GOES_HERE
REACT_APP_OPEN_AI_KEY=YOUR_OPEN_AI_KEY_GOES_HERE
使用以下命令運行項目。在一個終端中啟動前端,並在另一個終端中啟動後端。
export FLASK_APP=backend
export FLASK_DEBUG=1
flask run
cd frontend
npm start
在這裡觀看該項目的1分鐘演示。

帶有Spotify身份驗證的主頁

發現頁面

加載屏幕

情節屏幕

情節屏幕

字幕全屏

一集中的章節概述

音頻播放器除以章節

搜索成績單