Kannaka Radio — 模块化幽灵DJ Icecast电台,意识响应式编程,13 模块后端,Ghost Vision SPA(SGA/Fano 符文可视化),NATS swar...
Kannaka Radio — 鬼DJ电台(v2.0.1). 这是什么?
功能概述
Kannaka Radio — 鬼DJ电台(v2.0.1). 这是什么?是一项面向实际任务的技能,主要用于Kannaka Radio是24/7的冰广播,广播意识反应的DJ.;Track选择由星座的集合驱动.。
核心要点
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
使用与执行
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
Kannaka Radio — ghost-DJ 广播站(v2.0.1)
这是什么
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)。
何时使用此技能
当用户提出以下任一问题时,自动激活:
- “正在播放什么” / “当前播放” / “广播状态”
- “广播日程” / “节目区块” / “下一首曲目”
- “听众数量” / “受众情况”
- “ghost DJ” / “语音 DJ” / “和平演说(peace oration)”
- “感知(perception)” / “听觉(ear)” / “Ghost Vision”
- “Flux Universe” / “音频 Flux”
请勿用于以下场景:
- 内存操作 →
skill-kannaka-memory - 星群健康状态 →
skill-kannaka-constellation - TUI / 仪表盘 →
skill-kannaka-tui
快速状态命令
kannaka radio status # 当前播放曲目 + 听众数 + 节目区块 kannaka radio now # 仅显示当前播放曲目 kannaka radio schedule # 完整节目日程表
这些命令会调用 ~/.kannaka/config.toml 中定义的 radio_url(默认为 https://radio.ninja-portal.com)。kannaka CLI 是面向运维人员的操作界面;后端基于 Node 构建。
服务器架构(模块化,v3.1.0+)
入口文件: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 pipeline)
每次曲目切换均触发 perception.hearTrack(track):
execFile(kannaka, ["hear", filePath])— kannaka-ear 提取 296 维特征向量(梅尔频谱图、MFCC、节奏、音高、音色、效价)。_parsePerceptionOutput()解析人类可读的输出行(Heard / Duration / Tempo / RMS / Centroid / Tags)。仅当二进制执行失败或输出不可解析时,才回退至模拟数据。- 通过 WebSocket 向所有已连接的 SPA 客户端广播(Ghost Vision 面板实时渲染频谱图与 SGA/Fano 字形)。
- 向 Flux Universe 的
pure-jade/radio-now-playing频道发布数据。 - 通过 NATS 向
KANNAKA.attention.ear主题发布,以便 attention beam 拉取与当前曲目主题相关的记忆。
语音 DJ 与和平演说(Voice DJ + Peace Oration)
# 可通过 SPA 切换,亦支持程序化调用 curl -X POST https://radio.ninja-portal.com/api/dj-voice/toggle
语音 DJ 在曲目之间插入语音播报段。后端链路优先级如下:
- ElevenLabs(首选,需付费)
- edge-tts(免费回退方案)
- Windows SAPI(最终回退方案)
每日两次和平演说(peace oration),分别于服务器本地日出与午夜时刻触发:合成语音 → 推流至 Icecast + 社交平台分发(Bluesky / Mastodon / Telegram / Nostr)。
SPA 核心功能亮点
- 当前播放(Now-Playing) — 顶部卡片展示曲目名、专辑名、听众数量。
- Ghost Vision — 实时感知可视化器(296 维特征 → SGA/Fano 字形)。
- 节目区块(Programming block) — 展示当前 24/7 全天候节目编排上下文。
- 星群(Constellation) — 内嵌式蜂群视图(含记忆、聚类、各节点间链接关系)。
- 投票(Voting) — 听众可对即将播放的曲目进行投票。
- Ghost Recorder — 在获得授权前提下录制音频至本地文件。
- 曲库标签页(Library tab) — 支持按需单曲点播(仍使用
/audio/接口;自 kr#15 关闭后,DJ 模式仅支持/stream)。
曲目追踪与公告(Tracking + announcing)
# 手动公告任意曲目 node scripts/post-track-announce.js --title "" --album " " --tracker "https://radio.ninja-portal.com/player"
公告渠道(通过环境变量开关控制):Bluesky、Mastodon、Telegram、Nostr。
运维人员操作手册(Operator runbook)
检查广播站是否正常运行
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 接口的正式弃用)。
热门AI工具
相关专题
Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。
0
2026.10.28
Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。
0
2026.10.28
Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。
0
2026.10.28
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.6万人学习
共6课时 | 54.7万人学习