技术分享需要做了一个玩的项目,架构是 vue3+electron(node 模式)+webaudio 实现以下功能(一步一步完成,非一次成型):
( 1 ) 20 个轨道的混音,每个轨道 20 分钟,调用 ffmpeg 转成 wave ( cd 音质格式),并且实现边播放边加载,同时动态清理内存(一个 4 分钟的 wave 是 50m 内存,20 轨同时加载内存绝对爆)
( 2 )支持播放中拖条,显示标尺功能
( 3 )显示波形图,可以改变缩放比例,支持小节:节拍模式和时间模式切换
( 4 )使用第三方库分析人声频谱(单轨道,已经用第三方 AI 切分出来),用钢琴卷帘窗绘制音高图
( 5 )节拍器功能
( 6 )显示对数电平表
( 7 )工程的加载和保存
( 8 )单轨的 mute/solo/拖拽/切分/音量调节
工具就是 10 美元的 copilot ,除了做音频算法的时候用的 9x 的模型,剩下的大多用 cluade4.5 和 auto 模式开发
交互联动这部分是最猛的,AI 在这块几乎一次过,因为设置了缩放或者歌曲速度后,整个界面几乎全部联动,涉及数据和图形显示的地方都需要联动重绘,包括当前播放的进度,AI 这块几乎没翻车
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.