资讯详情

资讯详情

xiaomusic 在线搜索:三种点歌方式,让音箱不再依赖本地曲库

xiaomusic 在线搜索三种点歌方式让音箱不再依赖本地曲库【免费下载链接】xiaomusic使用小爱音箱播放音乐音乐使用 yt-dlp 下载。项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic音箱只会循环本地曲库里的几百首歌xiaomusic 的在线搜索模块可以改变这件事网页上输入歌名结果直接推到音箱播放或者对着音箱喊一句歌名它自己完成搜索和播放。下面按先绑定、再选生态、后调参数的顺序把整条链路走通。能力全景这套模块能做什么入口你能做什么背后的行为网页搜索页输入歌名 歌手结果推送到音箱或直接在网页里听并行请求所有已启用的搜索源聚合返回语音口令唤醒后说在线播放 林俊杰 江南后端对候选逐条打分取最高分直接播放在线歌单语音搜歌单如播放在线歌单 周杰伦先搜歌单列表按策略挑一个最优拉全量歌曲推送接口版LX Server额外内置了一套播放保障音质按master → flac24bit → flac → 320k → 192k → 128k逐档降级直链解析失败自动换下一档跨平台还能按歌名歌手时长误差≤5 秒换源重试核心逻辑集中在 xiaomusic/online_music.py。所有 REST 接口的路由定义在 xiaomusic/api/routers/plugin.py。方案选型插件生态还是自建服务后台配置里的api_type字段决定走哪条路1是 MusicFree 插件2是 LX Server 接口同一时间只有一套生效。维度MusicFree 插件版LX Server 接口版额外部署无本地起一个 Node.js 插件沙箱即可需要单独部署一个 LX Sync Server 服务端日常维护更新插件订阅、管理插件启停只需保持接口地址可用聚合方式并行请求全部已启用插件并行请求全部已配置平台tx、kg、kw 等排序逻辑启用列表前 9 个插件加权越靠前分越高按匹配度统一排序另有音质降级链适合人群手里有现成插件资源的人愿意多部署一个服务、换取更少配置项的人插件版的工作机制JSPluginManager管理 JS 插件生命周期的组件拉起一个 Node.js 子进程作为沙箱Python 端通过标准输入输出收发 JSON 消息实现见 xiaomusic/js_plugin_manager.py。一句话选型建议有插件资源就选 MusicFree想少配置多部署就选 LX。落地配置先绑定再选生态后调参数第一步绑定音箱。打开「小爱音箱设置面板」完成音箱绑定。所有推送到音箱的能力都以这一步为前提没绑定的音箱收不到任何推送。第二步选择生态。进入在线搜索配置页见 xiaomusic/static/onlineSearch/setting.html在「接口生态」里二选一。前端会弹确认框因为两套配置互不兼容切了之后旧配置对另一边失效。插件版编辑订阅地址后点「更新订阅」系统拉取订阅源 JSON 并批量下载插件也可以手动上传本地.js文件或直接粘贴一个http(s)://插件地址在线导入。单个插件可启用、禁用、卸载。注意启用列表的顺序排序算法只给前 9 个插件记权重权重 9 - 排名见optimize_search_results顺序就是你的源偏好。接口版填入 LX Server 的 API 地址形如http://127.0.0.1:9527/api点「接口测试」验证连通性服务端开了鉴权的话补上x-user-name与x-user-token请求时会自动带上这两个头。最后在平台列表里增删tx、kg、kw等搜索平台全部保留即为聚合搜索。第三步按需调参数。持久化都落在运行目录的conf/plugins-config.json看懂这个骨架就够日常维护了back_conf_info: {api_type: 1}, lx_server_info: {base_url: , platforms: {tx: 小秋音乐}}, music_free_info: {enabled_plugins: [], plugin_source: {source_url: }}完整模板可对照 xiaomusic/plugins-config-example.json。四个进阶开关自动追加歌曲auto_add_song默认开启播放到歌单末尾时自动补同歌手歌曲。自动拉取并转换 LX 歌单auto_convert每 30 秒同步一次仅接口版显示转换出的歌单带_online_lx_前缀。AI 口令提取aiapi_info默认关闭开启后填接口地址留空走阿里百炼、API Key、模型名默认qwen-flash。我想听那首关于秋天的歌这类模糊说法会先经大模型解析出歌名和歌手再搜索解析失败或 AI 不可用时自动回退到歌名-歌手的-分割法。注意模型接口需符合 OpenAI API 规范。语音搜单策略voice_playlist_strategydefault取首条另有歌曲最多max_songs、播放最多max_plays、随机random。口令搜索偏好与网页端播放高级设置里的box_play_platform可固定搜索偏好指定某个平台优先填all保持聚合两种生态各有一份此字段互不干扰。另外如果只是想自己听搜索结果不推音箱、直接在搜索页播放即可——部分插件如 B 站源拿到的流格式小爱可能播不了这类资源用网页端最稳。后台还有一把可选的密码锁password字段填非空值即启用置空即关闭。语音点歌链路口令、行为、后端方法在「允许唤醒的命令」里加上singer_play、online_play两项后音箱就多了直接开口的能力你说的话实际行为对应后端方法在线播放 林俊杰 江南搜索后对候选逐条打分歌名完全匹配、开头匹配、包含匹配分层计分歌手名同理取最高分那条直接播online_play→_search_top_one播放歌手 周杰伦把该歌手的热歌建成临时歌单顺序播放singer_play播放在线歌单 歌单名先搜歌单列表按你选的策略挑一个最优拉全量歌曲推给音箱online_playlist_play想看打分细节从 xiaomusic/online_music.py 的_search_top_one读起语音命令的分发入口在 xiaomusic/xiaomusic.py。疑难排查速查现象常见原因处理LX 接口版搜得到但播不出来LX Music Sync Server 在 v1.8.2 之后对接口加了 Token 限制与当前版本不兼容服务端暂时停留在 1.8.2 之前参考 docs/issues/811.md语音喊了没反应口令没进「允许唤醒的命令」白名单确认列表包含singer_play与online_playAI 口令提取没生效aiapi_info.enabled不是true、api_key为空、接口不符合 OpenAI 规范三项逐一核对接口地址留空即走默认百炼通道LX 转换的歌单放不了_online_lx_前缀歌单只在 LX Server 生态下生效把接口生态切回 LX Server 再播放歌单同步方案讨论见 docs/issues/807.md升级后台后配置页行为不对部分版本如 V1.1.1配置结构重构过删除旧的conf/plugins-config.json重启后在网页端重新配置另外说明一个安全细节后端对所有在线播放地址做校验会拒绝内网、回环、多播等地址以防 SSRF逻辑在online_music.py的_make_request_with_validation中。延伸资料在线搜索核心业务搜索/聚合/直链/降级/AI 解析xiaomusic/online_music.py插件沙箱与 LX 接口管理xiaomusic/js_plugin_manager.py全部 REST 接口路由xiaomusic/api/routers/plugin.py后台配置页及脚本xiaomusic/static/onlineSearch/配置文件模板xiaomusic/plugins-config-example.json【免费下载链接】xiaomusic使用小爱音箱播放音乐音乐使用 yt-dlp 下载。项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →