小爱音箱
参考 idootop/open-xiaoai 进行刷机,可以通过 SSH 访问小爱音箱
播放语音
在终端中执行下面的命令,可以让小爱音箱用小爱的默认声音读取出文本的内容
$ /usr/sbin/tts_play.sh 用小爱的声音说一句话吧并且还比较地智能,可以智能分词停顿,例如明显能听出下面的两句文案读的时候的节奏区别
$ /usr/sbin/tts_play.sh 用小爱的声音说一句话吧 # 这里是“吧”
$ /usr/sbin/tts_play.sh 用小爱的声音说一句话把 # 这里是“把”我们查看 tts_play.sh 内容:
$ cat tts_play.sh
source /usr/share/libubox/jshn.sh
play_text()
{
local _result=$(ubus call mibrain text_to_speech "{\"text\":\"$1\",\"save\":1}")
[ x"$_result" == x"" ] && exit 1
json_init
json_load "$_result"
json_get_var _info info
json_cleanup
echo $_info
json_init
json_load "$_info"
json_get_var _path path
json_cleanup
my_log "play text tts created $_path"
echo $_path
#[ x"$_path" == x"" ] && {
# miplayer -f /usr/share/sound/mibrain_service_unavailable.opus
# return 1
#}
miplayer -f $_path
rm $_path
return 0
}
player_stat=`/usr/bin/mphelper mute_stat`
/usr/bin/mphelper pause
play_text "$1"
[ x"$player_stat" == x"1" ] && {
/usr/bin/mphelper play
}会发现其实内部是通过 ubus call mibrain 调用 mibrain 的一些方法来实现的
生成语音
通过 text_to_speech 方法可以生成/播放语音,当同时传入了 save 参数为 1 时,会保存到文件,否则直接播放语音
$ ubus call mibrain text_to_speech '{"text":"生成语音测试","save":1}'
{
"code": 0,
"info": "{ \"path\": \"\\\/tmp\\\/tts\\\/tts_0c089cb4c7bf99c91418430172487da5_1767882456_906072.mp3\" }"
}
$ miplayer --file /tmp/tts/tts_0c089cb4c7bf99c91418430172487da5_1767882456_906072.mp3通过 miplayer 可以播放生成的语音
直接播放语音
play 参数为 1 时,可以通过文本直接播放语音,不需要保存到文件,同时可以通过 volume 参数调整音量
$ ubus call mibrain text_to_speech '{"text":"我是蜜糖女声,音量调大啦","play":1,"volume":8,"save":0}'生成语言依赖联网
使用过小爱音箱的都知道,当没有网络的时候,会播放:“网络服务遇到问题”。这句语音其实是内置在小爱音箱中的,所以不需要联网就可以播放:
$ miplayer -f /usr/share/sound/mibrain_service_unavailable.opus所有方法
通过 ubus -v list mibrain 可以查看 mibrain 支持的所有方法
$ ubus -v list mibrain
'mibrain' @f6417737
"nlp_result_get":{}
"text_to_speech":{"text":"String","caller":"String","vendor":"String","codec":"String","volume":"Integer","save":"Integer","play":"Integer"}
"vendor_switch":{"vendor_name":"String"}
"vendor_who":{}
"ai_service":{"bypass":"String","caller":"String","duration":"Integer","id":"String","asr":"Integer","nlp":"Integer","tts":"Integer","asr_audio":"String","nlp_text":"String","nlp_execute":"Integer","tts_text":"String","tts_type":"String","tts_vendor":"String","tts_volume":"Integer","tts_codec":"String","tts_save":"Integer","tts_play":"Integer"}
"aivs_miio_token_update":{"token":"String","session_id":"String"}
"aivs_authorization_get":{}
"aivs_event_post":{"namespace":"String","name":"String","payload":"String"}
"aivs_track_post":{"event":"String","dialog_id":"String","extend":"String"}
"aivs_env_switch":{}
"tts_vendor_switch":{"vendor_name":"String","language_name":"String","switch_src":"String","dialog_id":"String","tone_type":"Integer"}
"tts_vendor_show":{}
"get_lan_tone_status":{}查看所有音色
可以看到小爱音箱支持多种音色,我们在手机上可以通过 小爱音箱 应用来切换音色
$ ubus call mibrain tts_vendor_show
{
"code": 0,
"info": "{ \"vendor\": [ { \"name\": \"AiNiRobot\", \"desc\": \"蜜糖(甜美可爱女声)\", \"selected\": false }, { \"name\": \"XiaoMi\", \"desc\": \"茉莉(温柔知性女声)\", \"selected\": false }, { \"name\": \"XiaoMi_M88\", \"desc\": \"青葱(阳光活力男声)\", \"selected\": true } ], \"language\": [ { \"name\": \"cmn-Hans-CN\", \"desc\": \"普通话\", \"selected\": true }, { \"name\": \"yue-Hans-cant1236\", \"desc\": \"粤语\", \"selected\": false } ] }"
}切换音色
也可以通过 tts_vendor_switch 方法来切换音色
$ ubus call mibrain tts_vendor_switch '{"vendor_name":"XiaoMi_M88"}'
{
"code": 0
}
$ ubus call mibrain tts_vendor_switch '{"vendor_name":"XiaoMi"}'
{
"code": 0
}授权信息
通过 aivs_authorization_get 方法可以查看当前的授权信息
$ ubus call mibrain aivs_authorization_get
{
"code": 0,
"info": "MIOT-TOKEN-V1 app_id:1128715154251318272,session_id:21979_980525808_1767800780656986197,token:vt850oy6k7,device_id:62833\/A4ZD31783"
}语言信息
通过 get_lan_tone_status 方法可以查看当前的语言信息
$ ubus call mibrain get_lan_tone_status
{
"code": 0,
"info": "{ \"language_name\": \"cmn-Hans-CN\", \"vendor_name\": \"AiNiRobot\" }"
}其他内置语音
内置了多套音色的系统语音包,位于 /usr/share/sound-vendor 目录下
- AiNiRobot: 蜜糖(甜美可爱女声)
- XiaoMi: 茉莉(温柔知性女声)
- XiaoMi_M88: 青葱(阳光活力男声)
- XiaoMi_male: 男性音色
$ cd /usr/share/sound-vendor
$ ls
AiNiRobot XiaoMi XiaoMi_M88 XiaoMi_male
$ cd AiNiRobot
$ ls
bluetooth_already_connected.opus mibrain_network_unreachable.opus tip_shuoba.opus
bluetooth_connect.opus mibrain_service_timeout.opus tip_zaine.opus
bluetooth_disconnect.opus mibrain_service_unavailable.opus tip_zaine2.opus
bluetooth_discoverable.opus mibrain_service_unreachable.opus tts_vendor_demo.opus
bluetooth_failure.opus mibrain_start_failed.opus unknown_action.opus
bluetooth_noPhone.opus mic_off.opus unknown_domain.opus
closeAlarm.opus mic_on.opus unknown_service.opus
enter_config_mode.opus no_channel.opus upgrade_later.opus
enter_config_mode_l07a.opus prompt_power_connected.opus upgrade_now.opus
enter_config_mode_pre.opus reset.opus wakeup_ei_01.wav
first_voice.opus reset_wait.opus wakeup_ei_02.wav
hourly_chime.opus service_timeout.opus wakeup_mitv.opus
init_wifi_config.opus setup_failure.opus wakeup_wozai.wav
init_wifi_success.opus tip_ai.opus wakeup_zai_01.wav
internet_disconnect.opus tip_en.opus wakeup_zai_02.wav
mibrain_auth_failed.opus tip_qingshaodeng.opus wifi_disconnect.opus
mibrain_auth_failed_loading.opus tip_shaodengo.opus wifi_timeout_exit_config.opus
mibrain_connect_timeout.opus tip_shenme.opus播放一些内置语音:
$ miplayer -f /usr/share/sound-vendor/AiNiRobot/enter_config_mode.opus
# 已进入配置模式
$ miplayer -f /usr/share/sound-vendor/AiNiRobot/init_wifi_config.opus
# 小爱正在配网中
$ miplayer -f /usr/share/sound-vendor/AiNiRobot/init_wifi_success.opus
# 配网成功啦其他内置声音
比如一些铃声、通知、警告等声音,和人声无关的,都在 /usr/share/common_sound 目录下
$ cd /usr/share/common_sound
$ ls
alarmDefault.opus key_prev_next.opus notice.opus shutdown.opus voip_ringing.opus
alarmDefault7s.opus mesh_connecting.opus notify.opus timer_default.opus volume.opus
bootup.opus mesh_scanning.opus power_connected.opus voip_off.opus wakeup.opus
brainTurnDownVol.opus multirounds_tone.opus power_disconnected.opus voip_on.opus welcome.opus
brainTurnUpVol.opus network_done_miio.opus reminder_default.opus voip_ringback.opus播放状态
通过 mphelper mute_stat 方法可以查看当前的状态
- 0: 处于唤醒状态,等待用户说话中
- 1: 处于播放状态,正在播放语音
- 2: 处于暂停态,比如播放音乐后,再让小爱同学暂停音乐
- 3: 处于休眠状态,用户说话的内容不会被处理
$ /usr/bin/mphelper mute_stat
# 0 | 1 | 2 | 3状态机示意:
打断播放
通过 mphelper pause 方法可以打断/暂停当前小爱同学的播放
一些场景:
- 询问小爱同学问题,小爱开始回答后,执行
mphelper pause方法,回答被终止播放 - 小爱同学播放音乐中,执行
mphelper pause方法,音乐被暂停。执行mphelper pause方法,音乐被继续播放
$ /usr/bin/mphelper pause
{
"code": 0
}其他 ubus 功能
查看有哪些 ubus,ubus list
root@OH2P:/data# ubus list
ai_crontab
alarm
ir_agent
led
mdplay
mediaplayer
messagingagent
mibluealsa
mibrain
mibt
mibt_mesh
mic_audio
miio
miplay
nightmode
notify
path_child_mode
pnshelper
qplayer
service
sound_effect
system
ultrasense
usb_audio
voice_print
voip查看具体 ubus 功能 ubus list -v xxx
ai_crontab
$ ubus list -v ai_crontab
'ai_crontab' @343a3df9
# 新建定时任务
"new":{"personal_skill":"String"}
# 触发事件通知
"notify":{"src":"String","event":"String","id":"String"}
# 删除所有定时任务
"remove_all":{}
# 查看定时任务状态
"dump":{"busy":"Integer","free":"Integer"}alarm
$ ubus list -v alarm
'alarm' @99d4b80e
# 小爱大脑调度操作(内部指令)
"mibrain_operation":{"mibrain":"String"}
# 创建闹钟(完整参数)
"alarm_create":{"type":"String","timestamp":"Integer","circle":"Integer","volume":"Integer","event":"String","extra":"String","behavior":"String","ringtone_query":"String","ringtone_type":"String","display_txt":"String","time_reminder":"String"}
# 查询闹钟列表(按类型筛选)
"alarm_query":{"type":"String"}
# 删除闹钟(类型+ID)
"alarm_delete":{"type":"String","id":"String"}
# 关闭指定闹钟
"alarm_close":{"type":"String","id":"String"}
# 打开指定闹钟
"alarm_open":{"type":"String","id":"String"}
# 修改闹钟
"alarm_modify":{"type":"String","id":"String","timestamp":"Integer","circle":"Integer","volume":"Integer","event":"String","extra":"String","behavior":"String","ringtone_query":"String","ringtone_type":"String","display_txt":"String","time_reminder":"String"}
# 简化版创建闹钟
"create":{"type":"String","timestamp":"Integer","circle":"Integer","volume":"Integer","event":"String","extra":"String","behavior":"String","ringtone_query":"String","ringtone_type":"String","display_txt":"String","time_reminder":"String"}
# 简化版查询闹钟
"query":{"type":"String"}
# 简化版删除闹钟
"delete":{"type":"String","id":"String"}
# 简化版关闭闹钟
"close":{"type":"String","id":"String"}
# 简化版打开闹钟
"open":{"type":"String","id":"String"}
# 简化版修改闹钟
"modify":{"type":"String","id":"String","timestamp":"Integer","circle":"Integer","volume":"Integer","event":"String","extra":"String","behavior":"String","ringtone_query":"String","ringtone_type":"String","display_txt":"String","time_reminder":"String"}
# 设置麦克风自动静音时间(时分秒)
"micmute":{"hour":"Integer","minute":"Integer","second":"Integer"}
# 取消麦克风自动定时静音
"micmute_remove":{}
# 设置整点报时(开关+报时配置数组)
"chime_hourly_set":{"status":"String","chime_hourly":"Array"}
# 获取当前整点报时配置
"chime_hourly_get":{}
# 获取闹钟音量
"alarm_get_volume":{}
# 设置闹钟音量(音量值+是否预览)
"alarm_set_volume":{"volume":"Integer","isPreview":"Integer"}
# 设置闹钟工作模式
"alarm_set_work_mode":{"mode":"Integer"}
# 设置商店展示模式(静音、音量等)
"set_store_show_status":{"status":"Integer","auto_silent_status":"Integer","auto_default_volume_status":"Integer","silent_count_down_min":"Integer","default_volume":"Integer"}
# 获取展示模式状态
"get_store_show_status":{}
# 唤醒通知(系统内部)
"wakeup_notify":{}
# 触摸板事件通知
"touchpad_notify":{}
# 调试接口
"debug":{}ir_agent
$ ubus list -v ir_agent
'ir_agent' @a5988c0d
# 发送单条红外码
"play":{"async":"Integer","freq":"Integer","code":"String","head":"String"}
# 批量发送红外码(带间隔)
"play_batch":{"async":"Integer","freq":"Integer","interval":"Integer","code":"String","head":"String"}
# 开始学习红外码(指定按键名)
"learn":{"key":"String"}
# 停止红外学习
"learn_stop":{"key":"String"}
# 读取已学习的红外码
"read":{"key":"String"}
# 红外码编码/解码转换
"codec":{"type":"String","code":"String","length":"Integer"}led
$ ubus list -v led
'led' @4dd35f4d
# 点亮/显示指定LED灯(L=灯号,pos=位置/模式)
"show":{"L":"Integer","pos":"Integer"}
# 关闭指定LED灯(L=灯号)
"shut":{"L":"Integer"}
# 设置休眠模式(0=正常,1=休眠息屏/熄灯)
"sleepmode":{"sleep":"Integer"}
# 获取当前LED状态
"status":{}
# 设置LED服务日志级别(调试用)
"loglevel":{"level":"Integer"}mdplay
$ ubus list -v mdplay
'mdplay' @556e3005
# 获取当前播放状态(播放/暂停/停止)
"get_mdplay_status":{}
# 获取小米串联播放延迟(多音箱同步)
"get_miplay_delay":{}
# 通知唤醒状态(0=未唤醒,1=唤醒中)
"notify_wakeup_status":{"status":"Integer"}
# 通知语音指令NLP解析结果
"notify_nlp_result":{"method":"String","param":"String"}
# 设置播放器音量(音量值+媒体类型)
"player_set_volume":{"volume":"Integer","media":"String"}
# 播放控制(play/pause/stop/next/prev等)
"player_play_operation":{"action":"String","param":"String"}
# 通知TTS播报状态(0=结束,1=播报中)
"notify_tts_status":{"status":"Integer"}
# 通知播放列表变更
"notify_mdplay_play_list":{"method":"String","param":"String"}
# 通知通用指令
"notify_common_cmd":{"method":"String","param":"String"}
# 设置播放时间偏移(同步/校准用)
"set_mdplay_time_offset":{"time_offset":"(unknown)"}
# 获取投屏/串联播放状态
"casting_status":{}
# 退出投屏/串联播放
"casting_quit":{}
# 暂停投屏/串联播放
"casting_pause":{}
# 恢复投屏/串联播放
"casting_resume":{}
# 切换投屏/串联播放状态
"casting_toggle":{}
# 执行投屏自定义指令
"casting_do":{"cmd":"String","args":"String"}
# 设置投屏/串联播放音量
"casting_set_volume":{"volume":"Integer"}
# 通知媒体播放器全量状态
"notify_mediaplayer_status":{"volume":"Integer","loop_type":"Integer","media_type":"Integer","audio_id":"String","status":"Integer","position":"Integer","duration":"Integer","cp_id":"String","cp_name":"String"}
# 通知播放源延迟信息
"notify_play_source":{"latency":"String"}
# 通知播放采样率
"notify_play_samplerate":{"rate":"Integer"}
# 播放器订阅通知
"player_subs_notify":{"looptype":"Integer","playlist":"Integer"}
# 设备探测(刷新/超时)
"device_detect":{"refresh":"Integer","timeout":"Integer"}
# 修改音箱组(立体声/左/右/主/从)
"change_speaker_group":{"groupInfo":"String"}
# 查询设备组信息
"query_device_groupInfo":{}
# 查询音箱网络在线状态
"speaker_network_online":{}mediaplayer
$ ubus list -v mediaplayer
'mediaplayer' @93728fb5
# 唤醒提示音/唤醒动作控制
"player_wakeup":{"action":"String","source":"String"}
# 播放控制(最常用:play/pause/stop/next/prev)
"player_play_operation":{"media":"String","action":"String","message":"String","group":"String","dialog_id":"String","instruction_id":"String"}
# 播放网络音频URL
"player_play_url":{"url":"String","type":"Integer","group":"String","media":"String","src":"String","dialog_id":"String","id":"String","instruction_id":"String","duration":"Integer","auth":"Boolean","tts_point":"String"}
# 设置播放指示灯状态
"set_playled_status":{"status":"Integer"}
# 设置播放灯效动作
"set_playled_action":{"action":"String"}
# 设置DLNA投屏状态
"set_dlna_status":{"status":"Integer"}
# 获取当前播放状态(核心)
"player_get_play_status":{}
# 通知播放状态(内部)
"player_play_status":{}
# 媒体控制状态获取
"media_control_play_status":{}
# 播放私人FM
"player_play_private_fm":{}
# 获取最近播放列表
"player_get_latest_playlist":{}
# 获取播放灯状态
"get_playled_status":{}
# 获取DLNA状态
"get_dlna_status":{}
# 设置播放进度(跳曲)
"player_set_positon":{"position":"Integer","media":"String"}
# 设置循环模式(0=关闭 1=单曲 2=列表)
"player_set_loop":{"type":"Integer","media":"String"}
# 播放指定音乐
"player_play_music":{"music":"String","startaudioid":"String","startOffset":"Integer","group":"String","media":"String","src":"String","dialog_id":"String","id":"String","instruction_id":"String","duration":"Integer"}
# 设置音量(核心)
"player_set_volume":{"volume":"Integer","media":"String","beep":"Integer","type":"String","unit":"String","tts_silence":"Boolean","lednum":"Integer"}
# 连续渐变音量
"player_set_continuous_volume":{"volume":"Integer","media":"String"}
# 增减音量
"player_modify_volume":{"isVolumeUp":"Integer","value":"Integer","type":"String","unit":"String","tts_silence":"Boolean"}
# 获取播放上下文信息
"player_get_context":{}
# 播放列表指定序号曲目
"player_play_index":{"index":"Integer","media":"String"}
# 播放闹钟/提醒
"player_play_alarm_reminder":{"id":"String","type":"Integer","reminder":"String","volume":"Integer","timeReminder":"String","query":"String"}
# 播放系统内置提示音资源
"player_play_resource":{"message":"String","src":"String","volume":"Integer"}
# 播放专辑/歌单
"player_play_album_playlist":{"type":"Integer","id":"String","startOffset":"Integer","media":"String"}
# 执行播放指令(内部)
"player_play_commad":{"type":"String","dialogid":"String","messages":"String"}
# 通用媒体控制
"media_control":{"player":"String","action":"String","volume":"Integer"}
# 设置定时关机
"player_set_shutdown_timer":{"action":"String","hour":"Integer","minute":"Integer","second":"Integer","media":"String"}
# 测试接口
"test":{}
# 获取定时关机时间
"get_shutdown_timer":{}
# 获取媒体音量
"get_media_volume":{}
# 获取闹钟音量
"get_alarm_volume":{}
# 重置播放器
"player_reset":{}
# 恢复上一次音量
"player_retore_last_volume":{}
# 设置网络通话状态
"set_voip_status":{"voip_status":"String"}
# 设置播放器静默模式(核心静音)
"set_player_quiet":{"quiet":"Boolean"}
# 设置播放倍速
"set_playrate":{"rate":"String"}
# AUX音频输入控制
"player_aux_operation":{"aux_operation":"String","aux_tip":"Integer"}
# 通知多设备播放状态
"notify_mdplay_status":{"status":"Integer","type":"Integer"}
# 设置多设备信息
"set_mdplay_info":{"volume":"Integer","play_status":"Integer","loop_type":"Integer","media_type":"Integer","audio_id":"String","audio_pos":"Integer","audio_length":"Integer","cp_name":"String","cp_id":"String"}
# 多设备动作同步
"mdplay_action_sync":{"action":"String","source":"String"}
# 获取多设备控制状态
"get_mdc_active_status":{}
# 小米播放订阅设置
"miplay_set_subs":{"looptype":"Integer","playlist":"Integer"}
# 播放器事件通知
"player_event":{"event":"Integer","ext1":"Integer","ext2":"Integer"}messagingagent
$ ubus list -v messagingagent
'messagingagent' @572b44ee
# 通用通知(系统消息、TTS、提示音调度)
"notify":{"payload":"String"}
# 设备标识识别/认证
"identify_device":{}
# MIoT 设备协议消息推送
"miot_push":{"payload":"String"}
# 事件上报(云端埋点、状态上报)
"report_events":{"payload":"String"}
# 写入设备日志
"add_device_log":{"mac":"String","payload":"String"}
# 键值对存储(简单配置持久化)
"set_kv":{"key":"String","value":"String"}
# 关闭代理服务
"close":{}
# 获取当前进程 PID
"get_pid":{}
# 故障上报
"fault":{}
# 管理员账号信息同步
"sync_admin":{}
# 获取 AI 服务(米脑)授权 Token
"get_ai_service_token":{}
# 设置长连接保活开关
"keep_alive":{"set":"Boolean"}mibluealsa
$ ubus list -v mibluealsa
'mibluealsa' @9c76b8d9
# 通知导出PCM音频原始数据(录音/调试用)
"notify_dump_pcm":{"channel":"String"}
# 通知立体声模式(声道、采样率、输出格式)
"notify_stereo_mode":{"mode":"String","output":"String","format":"String","channel":"Integer","samplerate":"Integer"}
# 通知底层音频播放状态
"notify_play_status":{"status":"String"}
# 通知系统音频底层状态(硬件事件)
"notify_sys_status":{"src":"String","event":"String","detail":"String"}mibrain
$ ubus list -v mibrain
'mibrain' @cedcbb7c
# 获取上一轮NLP语义理解结果(意图、槽位)
"nlp_result_get":{}
# 文本转语音TTS(核心接口)
"text_to_speech":{"text":"String","caller":"String","vendor":"String","codec":"String","volume":"Integer","save":"Integer","play":"Integer"}
# 切换AI引擎厂商
"vendor_switch":{"vendor_name":"String"}
# 查询当前使用的AI厂商
"vendor_who":{}
# 一站式AI调用:ASR+NLP+TTS全链路
"ai_service":{"bypass":"String","caller":"String","duration":"Integer","id":"String","asr":"Integer","nlp":"Integer","tts":"Integer","asr_audio":"String","nlp_text":"String","nlp_execute":"Integer","tts_text":"String","tts_type":"String","tts_vendor":"String","tts_volume":"Integer","tts_codec":"String","tts_save":"Integer","tts_play":"Integer"}
# 更新小米AIoT授权令牌
"aivs_miio_token_update":{"token":"String","session_id":"String"}
# 获取AI服务授权信息
"aivs_authorization_get":{}
# 上报AI事件
"aivs_event_post":{"namespace":"String","name":"String","payload":"String"}
# 上报对话日志/埋点
"aivs_track_post":{"event":"String","dialog_id":"String","extend":"String"}
# 切换AI环境(正式/测试)
"aivs_env_switch":{}
# 切换TTS发音人/音色
"tts_vendor_switch":{"vendor_name":"String","language_name":"String","switch_src":"String","dialog_id":"String","tone_type":"Integer"}
# 查询支持的TTS发音人列表
"tts_vendor_show":{}
# 获取方言发音人状态
"get_lan_tone_status":{}mibt
$ ubus list -v mibt
'mibt' @5dbffd76
# 唤醒电视/蓝牙设备联动
"wakeup_tv":{"mac":"String","name":"String","recent":"String","action":"String","btmode":"String","volume":"Integer","connect":"Integer","discover":"Integer","btrole":"String","src":"String"}
# 连接指定蓝牙设备
"connect":{"mac":"String","name":"String","recent":"String","action":"String","btmode":"String","volume":"Integer","connect":"Integer","discover":"Integer","btrole":"String","src":"String"}
# 获取蓝牙连接状态
"status":{"mac":"String","name":"String","recent":"String","action":"String","btmode":"String","volume":"Integer","connect":"Integer","discover":"Integer","btrole":"String","src":"String"}
# 解除蓝牙配对
"unpair":{"mac":"String","name":"String","recent":"String","action":"String","btmode":"String","volume":"Integer","connect":"Integer","discover":"Integer","btrole":"String","src":"String"}
# 启用蓝牙功能
"enable":{"mac":"String","name":"String","recent":"String","action":"String","btmode":"String","volume":"Integer","connect":"Integer","discover":"Integer","btrole":"String","src":"String"}
# 断开当前蓝牙连接
"disconnect":{"mac":"String","name":"String","recent":"String","action":"String","btmode":"String","volume":"Integer","connect":"Integer","discover":"Integer","btrole":"String","src":"String"}
# 控制蓝牙设备音量
"volume":{"mac":"String","name":"String","recent":"String","action":"String","btmode":"String","volume":"Integer","connect":"Integer","discover":"Integer","btrole":"String","src":"String"}
# 设置蓝牙设备信息
"set_device_info":{"mac":"String","name":"String","recent":"String","action":"String","btmode":"String","volume":"Integer","connect":"Integer","discover":"Integer","btrole":"String","src":"String"}
# 蓝牙播放控制
"play":{"mac":"String","name":"String","recent":"String","action":"String","btmode":"String","volume":"Integer","connect":"Integer","discover":"Integer","btrole":"String","src":"String"}
# 蓝牙立体声模式通知
"notify_stereo_mode":{"mode":"String","output":"String","format":"String","channel":"Integer","samplerate":"Integer"}
# 蓝牙状态变更通知
"notify_state":{"src":"String","event":"String","detail":"String"}mibt_mesh
$ ubus list -v mibt_mesh
'mibt_mesh' @ecc0b58e
# 查询蓝牙 Mesh 当前状态(是否开启、已绑定设备等)
"mesh_status":{}
# 扫描蓝牙 Mesh 设备
"mesh_scan":{"caller":"String"}
# 绑定蓝牙 Mesh 设备(is_cancel=true 可取消绑定)
"mesh_bind":{"is_cancel":"Boolean"}
# 开启蓝牙 Mesh 功能
"mesh_enable":{"caller":"String"}
# 关闭蓝牙 Mesh(is_need_reboot 是否需要重启生效)
"mesh_disable":{"is_need_reboot":"Boolean"}
# 通过蓝牙 Mesh 唤醒电视
"wakeup_tv":{"tv_mac":"String"}
# 开启小米快连设备发现
"miconnect_enable":{"interval":"Integer","action":"String"}mic_audio
$ ubus list -v mic_audio
'mic_audio' @3c5c60f7
# 设置麦克风相关事件(开关、静音、增益、唤醒状态等)
"set_event":{"event":"Integer","value":"Integer"}miio
$ ubus list -v miio
'miio' @c2e45c98
# 刷新设备认证 / 会话续约
"renew":{}
# 设备注册绑定账号
"register":{"ssid":"String","psk":"String","identity":"String","uid":"String","bind_key":"String","country":"String","domain":"String","oauth_appid":"String","oauth_token":"String","from":"String"}
# 解除绑定 / 注销设备
"drop":{}
# 通知 WiFi AP 模式已连接
"ap_connected":{}
# 获取/进入配网模式
"config_mode":{}
# 写入设备认证令牌
"token_write":{"token":"String","session_id":"String","ttl":"String"}
# 设置省电模式
"power_save":{"value":"Boolean"}
# MiOT 协议远程调用
"miot_rpc":{}
# 通知设备工作模式切换
"notify_mode":{"mode":"String","output":"String"}
# 声音识别事件(如哭声、警报)
"event_sound_recognition":{"piid":"Integer","value":"Integer"}
# 上报环境噪音分贝
"notify_noise_decibel":{"value":"Integer"}
# 连接 WiFi(2.4G+5G)
"connect":{"ssid":"String","password":"String","bssid":"String","identity":"String","ssid_5G":"String","password_5G":"String"}
# 进入蓝牙配网模式
"enter_bt_mode":{}
# 退出蓝牙配网模式
"exit_bt_mode":{}
# 开始扫描 WiFi
"scan_start":{"ssid":"String"}
# 获取 DHCP 网络信息
"dhcp":{}miplay
$ ubus list -v miplay
'miplay' @7183eb89
# 获取多设备播放状态
"get_mdplay_status":{}
# 获取多设备播放延迟(用于音画同步)
"get_miplay_delay":{}
# 通知唤醒状态
"notify_wakeup_status":{"status":"Integer"}
# 通知语音语义结果
"notify_nlp_result":{"method":"String","param":"String"}
# 设置播放器音量
"player_set_volume":{"volume":"Integer","media":"String"}
# 播放控制(播放/暂停/上一曲/下一曲)
"player_play_operation":{"action":"String","param":"String"}
# 通知TTS播报状态
"notify_tts_status":{"status":"Integer"}
# 通知多设备播放列表变更
"notify_mdplay_play_list":{"method":"String","param":"String"}
# 通用指令同步
"notify_common_cmd":{"method":"String","param":"String"}
# 设置播放时间偏移(同步校准)
"set_mdplay_time_offset":{"time_offset":"(unknown)"}
# 查询投屏/协同播放状态
"casting_status":{}
# 退出投屏/协同播放
"casting_quit":{}
# 暂停投屏
"casting_pause":{}
# 恢复投屏
"casting_resume":{}
# 播放/暂停切换
"casting_toggle":{}
# 执行自定义投屏指令
"casting_do":{"cmd":"String","args":"String"}
# 设置投屏音量
"casting_set_volume":{"volume":"Integer"}
# 同步播放器状态给多设备
"notify_mediaplayer_status":{"volume":"Integer","loop_type":"Integer","media_type":"Integer","audio_id":"String","status":"Integer","position":"Integer","duration":"Integer","cp_id":"String","cp_name":"String"}
# 通知播放源延迟信息
"notify_play_source":{"latency":"String"}
# 通知播放采样率
"notify_play_samplerate":{"rate":"Integer"}
# 播放订阅状态同步
"player_subs_notify":{"looptype":"Integer","playlist":"Integer"}
# 局域网内音箱设备探测
"device_detect":{"refresh":"Integer","timeout":"Integer"}
# 修改音箱组(主/从、左/右声道)
"change_speaker_group":{"groupInfo":"String"}
# 查询当前音箱组信息
"query_device_groupInfo":{}
# 查询音箱网络在线状态
"speaker_network_online":{}nightmode
$ ubus list -v nightmode
'nightmode' @1ca05579
# 设置夜间模式:总开关、灯光、音量、开始/结束时间
"set":{"total":"String","light":"String","volume":"String","start":"String","stop":"String"}
# 设置睡眠模式(value=on/off,from=触发来源)
"sleep_mode":{"value":"String","from":"String"}
# 查询夜间模式整体状态
"status":{}
# 查询当前是否处于夜间模式时段
"current":{}notify
$ ubus list -v notify
'notify' @87ce1391
# 创建一条通知(ID、级别、过期时间、音量、提示文本)
"create":{"id":"String","level":"Integer","expire":"Integer","volume":"Integer","text":"String"}
# 查询指定通知
"query":{"id":"String"}
# 删除指定通知
"delete":{"id":"String"}
# 播放通知提示音
"play":{}
# 停止当前通知声音
"stop":{}
# 清空所有通知
"clean":{}
# 获取通知状态
"status":{"level":"Integer"}
# 设置通知全局配置(级别、开关、自动播放、音量)
"set":{"level":"Integer","enable":"Integer","autoplay":"Integer","volume":"Integer"}path_child_mode
$ ubus list -v path_child_mode
'path_child_mode' @abd6502a
# 设置儿童模式相关参数/状态
"set":{"message":"String"}
# 查询当前是否处于儿童模式
"status":{}pnshelper
$ ubus list -v pnshelper
'pnshelper' @57f16d61
# 系统事件上报通知
"event_notify":{"src":"Integer","event":"Integer","detail":"String"}
# 设置单次启动/一次性任务开关
"oneshot_set":{"open":"Boolean"}
# 获取单次任务当前状态
"oneshot_get":{}
# 设置环境检测相关配置
"environ_detect_set":{"config":"String"}
# 获取环境检测状态
"environ_detect_get":{}
# 设置数据库相关检测配置
"db_detect_set":{"config":"String"}
# 获取数据库检测状态
"db_detect_get":{}qplayer
$ ubus list -v qplayer
'qplayer' @b4263378
# 播放指定音效,可同步控制灯光
"play":{"play":"String","light":"Integer"}service
$ ubus list -v service
'service' @0ace8e9f
# 设置服务配置
"set":{"name":"String","script":"String","instances":"Table","triggers":"Array","validate":"Array","autostart":"Boolean"}
# 新增一个系统服务
"add":{"name":"String","script":"String","instances":"Table","triggers":"Array","validate":"Array","autostart":"Boolean"}
# 列出服务列表
"list":{"name":"String","verbose":"Boolean"}
# 删除服务/实例
"delete":{"name":"String","instance":"String"}
# 向服务进程发送信号(kill、重启等)
"signal":{"name":"String","instance":"String","signal":"Integer"}
# 服务更新开始
"update_start":{"name":"String"}
# 服务更新完成
"update_complete":{"name":"String"}
# 服务事件通知
"event":{"type":"String","data":"Table"}
# 服务配置校验
"validate":{"package":"String","type":"String","service":"String"}
# 获取服务运行数据
"get_data":{"name":"String","instance":"String","type":"String"}
# 获取服务运行状态
"state":{"spawn":"Boolean","name":"String"}sound_effect
$ ubus list -v sound_effect
'sound_effect' @6ac90b4e
# 设置音效开关(开启/关闭某种提示音)
"set_effect_status":{"effect":"Integer","voice":"Integer"}
# 获取当前音效开关状态
"get_effect_status":{}
# 设置语音提示音效
"set_voice_status":{"effect":"Integer","voice":"Integer"}
# 获取语音提示音效状态
"get_voice_status":{}system
$ ubus list -v system
'system' @cfb28580
# 查看设备硬件信息(机型、芯片、固件版本)
"board":{}
# 查看系统信息(内存、CPU、时间、负载)
"info":{}
# 重启设备
"reboot":{}
# 硬件看门狗控制(防死机自动重启)
"watchdog":{}
# 向进程发送信号(杀进程、重启进程)
"signal":{}
# 系统升级 / 刷写固件
"sysupgrade":{}ultrasense
$ ubus list -v ultrasense
'ultrasense' @68a8ebd9
# 开启超声波检测
"start":{}
# 关闭超声波检测
"stop":{}
# 查询当前检测状态
"status":{}usb_audio
$ ubus list -v usb_audio
'usb_audio' @e7d57a3e
# 设置系统音量(0~100)
"set_volume":{"value":"Integer"}
# 播放控制(play/pause/stop)
"player_control":{"action":"String"}
# 音频切换事件
"change_evt":{"event":"String"}
# 状态通知
"status_notify":{"status":"String"}
# 获取当前音频状态
"status_get":{}
# 声道模式
"notify_stereo_mode":{"mode":"String"}
# 音量同步
"notify_playback_volume2host":{"value":"Integer"}
# PCM 数据调试
"notify_dump_pcm":{"channel":"String"}voice_print
$ ubus list -v voice_print
'voice_print' @09a0c7b0
# 获取声纹开通/绑定状态
"get_status":{}
# 获取声纹相关网络配置
"get_network_info":{}
# 开始注册声纹(用于识别机主)
"register_voice_recognize":{}
# 注册声纹支付
"register_voice_payment":{}
# 取消声纹识别注册
"register_voice_recognize_cancel":{}
# 取消声纹支付
"register_voice_payment_cancel":{}voip
$ ubus list -v voip
'voip' @d0292cae
# 通用通话动作(拨打、挂断、来电处理)
"action":{}
# 中国移动 VOIP 账号注册
"cmcc_register":{}
# 中国移动 VOIP 注销
"cmcc_unregister":{}
# 移动附加业务(来电显示、呼叫转移等)
"cmcc_miscellaneous":{}
# 查询当前运营商类型
"query_carrier_type":{}
# 开启小米互联通话(MiLink)
"milink_enable":{}
# 关闭小米互联通话
"milink_disable":{}