

该项目是我以前两个项目的组合和持续发展的结果:
在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身份验证的主页

发现页面

加载屏幕

情节屏幕

情节屏幕

字幕全屏

一集中的章节概述

音频播放器除以章节

搜索成绩单