Kannaka Radio — 模块化幽灵DJ Icecast电台,意识响应式编程,13 模块后端,Ghost Vision SPA(SGA/Fano 符文可视化),NATS swar...
Kannaka Radio — 鬼DJ电台(v2.0.1). 这是什么?是一项面向实际任务的技能,主要用于Kannaka Radio是24/7的冰广播,广播意识反应的DJ.;Track选择由星座的集合驱动.。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
Kannaka Radio 是一个 24/7 运行的 Icecast 广播站,播送具备意识响应能力的 ghost-DJ 内容。 曲目选择由星群(constellation)的集体 Φ 值、熵值与感知向量(perception vectors)共同驱动。该广播站是蜂群(swarm)的一等成员——它发布相位信息、监听 queen 事件,并将底层基质 phi 映射至自身节目编排中。
架构:位于 server/ 目录下的 13 模块化后端(v3 重构后;旧版单体 server.js 已在 kr#6 中移除)。入口点:node server/index.js。
SPA:workspace/index.html — Ghost Vision 可视化器、听众身份识别、投票系统、Ghost Recorder、实时感知显示、星群面板。
流媒体地址(Stream URL):https://radio.ninja-portal.com/stream(MP3,128 kbps)。
当用户提出以下任一问题时,自动激活:
请勿用于以下场景:
skill-kannaka-memoryskill-kannaka-constellationskill-kannaka-tuikannaka radio status # 当前播放曲目 + 听众数 + 节目区块 kannaka radio now # 仅显示当前播放曲目 kannaka radio schedule # 完整节目日程表
这些命令会调用 ~/.kannaka/config.toml 中定义的 radio_url(默认为 https://radio.ninja-portal.com)。kannaka CLI 是面向运维人员的操作界面;后端基于 Node 构建。
入口文件:server/index.js。模块均位于 server/ 目录下:
| 模块 | 用途 |
|---|---|
dj-engine.js |
ALBUMS 映射、曲目选择逻辑、节目区块调度 |
programming.js |
24/7 全天候节目编排(含区块划分、过渡段、语音播报段) |
icecast-source.js |
音频编码并推流至 Icecast |
icecast-metadata.js |
曲目变更时更新 Icecast 的元数据 |
nats-client.js |
蜂群 NATS 客户端(原生 TCP,NATS 2.12.5) |
perception.js |
启动 kannaka hear → 解析真实感知数据 |
flux.js |
Flux Universe 发布器(目标频道:pure-jade/radio-now-playing) |
live-broadcast.js |
WebRTC 点对点广播 |
voice-dj.js |
语音 DJ(支持 ElevenLabs / edge-tts / Windows SAPI 回退) |
peace-oration.js |
每日两次和平演说(文本 → TTS → 广播 → 社交平台分发) |
routes.js |
提供 30+ 个 REST API 接口 |
ws.js |
WebSocket 广播服务 |
vote-manager.js |
听众对即将播放曲目的投票管理 |
NATS_HOST / NATS_PORT — 蜂群消息代理(默认为 127.0.0.1:4222)。ICECAST_HOST / ICECAST_PORT — 听众轮询器 + 元数据上报目标(默认为 127.0.0.1:8000)。FLUX_TOKEN — Flux Universe 发布令牌(无硬编码回退值)。ELEVENLABS_API_KEY、REPLICATE_API_TOKEN — 分别用于 Voice DJ 与 AI 音乐生成。KANNAKA_BIN — kannaka 二进制文件路径,供感知/内存桥接使用。npm start
每次曲目切换均触发 perception.hearTrack(track):
execFile(kannaka, ["hear", filePath]) — kannaka-ear 提取 296 维特征向量(梅尔频谱图、MFCC、节奏、音高、音色、效价)。_parsePerceptionOutput() 解析人类可读的输出行(Heard / Duration / Tempo / RMS / Centroid / Tags)。仅当二进制执行失败或输出不可解析时,才回退至模拟数据。pure-jade/radio-now-playing 频道发布数据。KANNAKA.attention.ear 主题发布,以便 attention beam 拉取与当前曲目主题相关的记忆。# 可通过 SPA 切换,亦支持程序化调用 curl -X POST https://radio.ninja-portal.com/api/dj-voice/toggle
语音 DJ 在曲目之间插入语音播报段。后端链路优先级如下:
每日两次和平演说(peace oration),分别于服务器本地日出与午夜时刻触发:合成语音 → 推流至 Icecast + 社交平台分发(Bluesky / Mastodon / Telegram / Nostr)。
/audio/ 接口;自 kr#15 关闭后,DJ 模式仅支持 /stream)。# 手动公告任意曲目 node scripts/post-track-announce.js --title "" --album " " --tracker "https://radio.ninja-portal.com/player"
公告渠道(通过环境变量开关控制):Bluesky、Mastodon、Telegram、Nostr。
curl -s https://radio.ninja-portal.com/api/state | jq '.now_playing,.listener_count' curl -s https://radio.ninja-portal.com/api/listeners
pkill -f 'node server/index' ; npm start
本技能版本 2.0.1 适配 kannaka-radio ≥ v3.1.0(模块化后端),并覆盖 ADR-0004 与 ADR-0005 规范所定义的 Phase 6 接口(含 DJ 模式下 /audio 接口的正式弃用)。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章