AI 收音机 — 真实的电台体验,AI 主播陪你听。
像调 FM 一样简单,但拥有专属 AI 主播的陪伴体验。切入即中途收听,电台永不停。
解决"听歌时没人陪"。实时电台引擎让所有频道在后台持续播放 — 切入即中途收听,没有 loading 门;暂停只是"停止收听",电台照跑。
歌单循环三遍就腻了,播客又要专心听。Wavedio 想解决"听歌时没人陪":像真实电台一样永远有人在话筒那头说话,而你随时可以推门进来。
| 场景 | 选频道 | 体验 |
|---|---|---|
| 通勤 | 任选 | 有主播陪伴不孤单 |
| 工作 | Lo-Fi / Chill | 背景音 + 轻声串词 |
| 独处 | Hip-Hop / Rock | 主播的故事很有趣 |
| 深夜 | Lo-Fi | 苏苏的深夜独白很治愈 |
电台编排算法的完整循环:从主题生成到串词上播,一轮接一轮 — 开场引入主题,歌曲之间承上启下,结尾呼应主题,然后进入下一轮。
每个电台 5-7 位主播轮班(全台网共 79 位)。基础周期 2-3 小时,±30 分钟随机波动,最小间隔 1 小时、最大 4 小时;连续主持超 3 小时触发疲劳检测自动换班。换谁上?算法给每位候选主播打分,再加权随机抽签。
| 评分因子 | 权重 | 计算方式 |
|---|---|---|
| 在线状态 | 30% | active=100 / away=50 / leave=0 / fatigue=20 |
| 上次上播时间 | 25% | 时间越久分数越高:上次上播小时数 × 10,封顶 100 |
| 听众偏好 | 20% | 基于收听历史计算 |
| 性格搭配 | 15% | 与前任主播的性格差异度 — 声音变了,情绪也要变 |
| 时段适配 | 10% | 主播风格是否适合当前时段 |
轮换计算异步执行,结果缓存 5 分钟;轮换前会过滤刚下播、请假、疲惫的主播。默认参数:rotation_min 120min / rotation_max 180min / 最大连续主持 3h / 预加载 60s。
FM 调谐器:拖动刻度尺上的指针,或直接点频道胶囊切台。切台瞬间直接落进"正在进行中"的段落 — 主播串词逐字打出,歌曲段自动推进,电台永不停。
歌曲段优先调用 iTunes Search API 播放 30s 真实试听,加载失败则静默降级为模拟进度。串词朗读使用 Web Speech API。
上面是官网演示组件;下面是 Wavedio 项目仓库里的真实产物 — 单文件 App(web/app.html,原生 HTML/CSS/JS 零依赖):9 频道海报墙 + 全屏海报播放器 + 实时电台引擎(后台连播、切入即中途)+ iTunes 30s 真实音频 + Web Speech 主播 TTS。默认使用内置频道数据,设置 API_BASE 即可接入后端 /stations(2.5s 超时自动降级)。
iOS 版(Swift · 零依赖纯 UIKit)已对齐此 Web App:频道墙 + 全屏播放器 + 实时电台引擎 + iTunes 试听 + 9 主播 TTS 声线 + 锁屏控制。
| 模块 | 状态 | 说明 |
|---|---|---|
| Landing Page | 已完成 | 钱包卡片交互、响应式、无障碍 |
| Web App | 已完成 | 9 频道海报墙、实时电台引擎、iTunes 30s 真实音频、Web Speech TTS |
| 后端 API | 进行中 | Express + TypeScript + PostgreSQL,待联调 |
| iOS 移动端 | 进行中 | 数据模型与主控制器雏形 |
| 真人 TTS / PWA 化 / 内测上架 | 待启动 | ElevenLabs / OpenAI |