📻
ZYRVIS · 产品 09 / 12

Wavedio

AI 收音机 — 真实的电台体验,AI 主播陪你听。
像调 FM 一样简单,但拥有专属 AI 主播的陪伴体验。切入即中途收听,电台永不停。

HTML/CSS/JS 单文件 Node.js + Express Swift · iOS AI TTS + LLM
▶ 试玩 Demo ← 全部产品

像调 FM 一样简单,但有 AI 主播陪你

解决"听歌时没人陪"。实时电台引擎让所有频道在后台持续播放 — 切入即中途收听,没有 loading 门;暂停只是"停止收听",电台照跑。

🎙️
AI 主播人设
每台主播有独立人设 / 声音 / 招牌语:老爵士是优雅老派绅士,苏苏走文艺慢生活,奈奈是昭和复古少女。
📻
9 频道实时连播
Pop / Jazz / Lo-Fi / Hip-Hop / Rock / 古典 / 电子 / 民谣 / City Pop,切入即中途收听。
🎵
智能节目编排
AI 生成主题 → 随机选 3-8 首歌 → 生成串词 → 循环播放,一台节目永远有下一首。
✍️
串词质量评估
情感共鸣 / 相关性 / 承上启下 / 新鲜度 / 时长 5 维打分,约 1/3 的歌无串词直接连播。
🔁
主播轮换
每 2-3 小时自动换班,加权抽签,30 秒交接串词无缝衔接。
🎨
多巴胺配色 UI
新粗野主义贴纸风,全键控与无障碍支持。

为什么做一台 AI 收音机

歌单循环三遍就腻了,播客又要专心听。Wavedio 想解决"听歌时没人陪":像真实电台一样永远有人在话筒那头说话,而你随时可以推门进来。

🎧
听歌没人陪
→ AI 主播串联真实歌曲,边听音乐边听主播讲述故事、分享心情。
听歌前要先选歌
→ 打开 App 自动播放;切入即中途收听,没有 loading 门,像拧开收音机。
一暂停世界就断了
→ 暂停只是"停止收听" — 实时电台引擎让所有频道后台照跑,回来接着听。
🤖
推荐算法没有"人味"
→ 每台主播有独立人设 / 声音 / 招牌语,像真实电台的主持人一样有性格。
场景选频道体验
通勤任选有主播陪伴不孤单
工作Lo-Fi / Chill背景音 + 轻声串词
独处Hip-Hop / Rock主播的故事很有趣
深夜Lo-Fi苏苏的深夜独白很治愈

一台节目是怎么诞生的

电台编排算法的完整循环:从主题生成到串词上播,一轮接一轮 — 开场引入主题,歌曲之间承上启下,结尾呼应主题,然后进入下一轮。

01
生成节目主题
AI 生成当期节目主题,比如"关于夏天的记忆"。
02
围绕主题选歌
根据主题随机选 3-8 首歌(数量非固定,每期节目都不一样)。
03
编排播放顺序
开场(主题引入)→ 歌曲 A → 衔接(回应上文)→ 歌曲 B → … → 结尾(呼应主题)。
04
生成主播串词
为主播写串词,经 5 维质量评估(情感共鸣 / 相关性 / 承上启下 / 新鲜度 / 时长)后决定是否使用。
05
上播
播放歌曲 + 串词。质量得分 ≥ 阈值放完整故事,低于阈值只说一句衔接,很低则纯歌曲连播 — 约 1/3 的歌没有串词。
06
循环,永不停机
一轮播完进入下一轮,所有频道在后台 24 小时持续播放,你随时切入都是"正在进行中"。

主播轮换:加权抽签的换班制

每个电台 5-7 位主播轮班(全台网共 79 位)。基础周期 2-3 小时,±30 分钟随机波动,最小间隔 1 小时、最大 4 小时;连续主持超 3 小时触发疲劳检测自动换班。换谁上?算法给每位候选主播打分,再加权随机抽签。

评分因子权重计算方式
在线状态30%active=100 / away=50 / leave=0 / fatigue=20
上次上播时间25%时间越久分数越高:上次上播小时数 × 10,封顶 100
听众偏好20%基于收听历史计算
性格搭配15%与前任主播的性格差异度 — 声音变了,情绪也要变
时段适配10%主播风格是否适合当前时段
① 预告阶段
新主播提前 1 分钟预热,TTS 语音异步预加载。
🎙️
② 交接阶段
30 秒交接串词,三种类型:问候型 / 承接型 / 互动型。
🔀
③ 切换阶段
无缝切换音频流,歌声不断。
④ 稳定阶段
新主播正式开始,状态机更新上播 / 下播。

轮换计算异步执行,结果缓存 5 分钟;轮换前会过滤刚下播、请假、疲惫的主播。默认参数:rotation_min 120min / rotation_max 180min / 最大连续主持 3h / 预加载 60s。

调到你想听的频率

FM 调谐器:拖动刻度尺上的指针,或直接点频道胶囊切台。切台瞬间直接落进"正在进行中"的段落 — 主播串词逐字打出,歌曲段自动推进,电台永不停。

Wavedio · 实时电台引擎(演示)
91.7MHz
ON AIR · Lo-Fi FM
📻 调谐中…

歌曲段优先调用 iTunes Search API 播放 30s 真实试听,加载失败则静默降级为模拟进度。串词朗读使用 Web Speech API。

项目里真实的 Web App

上面是官网演示组件;下面是 Wavedio 项目仓库里的真实产物 — 单文件 App(web/app.html,原生 HTML/CSS/JS 零依赖):9 频道海报墙 + 全屏海报播放器 + 实时电台引擎(后台连播、切入即中途)+ iTunes 30s 真实音频 + Web Speech 主播 TTS。默认使用内置频道数据,设置 API_BASE 即可接入后端 /stations(2.5s 超时自动降级)。

Wavedio · web/app.html(项目真实产物)

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
9
频道 · 88.8 ~ 102.6
79 位
主播 · 覆盖 15 个规划电台
5
串词质量评估
2-3 h
主播轮换周期
← 返回产品矩阵