Closed yauuzi closed 1 year ago
型号是:L05C 小爱同学总是会提前说,无法完全屏蔽到。
型号是:L05C 小爱同学总是会提前说,无法完全屏蔽到。
L05C 不可以,请参考 README
我家的是L09A,加上 --mute_xiaoai 和 --use_command ,依然是先回答小爱的内容,再回答chatGPT的内容
实测X08C也无法屏蔽小爱的回答,并且回答小爱的回答后并不回答chatgpt的内容
会写 golang rust python 搞好了 HA node_red TTS 看了下源码 是调远程去 pause 停止 音箱上的 服务 。我想问下文档在哪里,具体怎么实现,我们是个人开发者,现在小米停掉了,我们没有公司的注册信息。拿不到最新的API 文档
我自己已经完成搞定了 siri 和 gpt 连接。
@zhusjfaker 没有文档。。。 是靠 pause 停的
@zhusjfaker
如何 pause 的代码参考我 fork 的这个 https://github.com/yihong0618/MiService
感谢
x-xiaomi-status-code:400
securityTokenService 我在 加签 拿 service token 的时候 不知道为什么 nodejs 这里拿回来 cookie 总是 400
但是运行 python 代码 的回调地址 在浏览器里 get 确实可以 拿到 service token 在 响应上
大佬能帮着 看一下我的 Nodejs 代码哪里有问题吗 有写好的单元测试 可以直接运行
@yihong0618
@zhusjfaker 我有时间看一下,最近有其它事情。
个人已经在 nodejs 解决了该问题 问题是应为 nodejs 对15位 以上的数字 精度有丢失所以在 响应获取的时候
const result = await this.serviceLogin('serviceLoginAuth2', payload);
中 result.nonce 获取错误 导致的
解决思路也很简单,用字符串把整个响应获取后,在按照正则 把15位以上 nonce 匹配出来
public async serviceLogin(uri: string, data = null) {
const headers = {
'User-Agent':
'APP/com.xiaomi.mihome APPV/6.0.103 iosPassportSDK/3.9.0 iOS/14.4 miHSTS',
'Content-Type': 'application/x-www-form-urlencoded',
};
const cookie = new Map<string, string>();
cookie.set('sdkVersion', '3.9');
cookie.set('deviceId', this.token.get('deviceId'));
if ('passToken' in this.token) {
cookie.set('userId', this.token.get('userId'));
cookie.set('passToken', this.token.get('passToken'));
}
const cookieStr = (() => {
const list = Array.from(cookie.entries());
let str = '';
list.forEach(([k, v]) => {
str += `${k}=${v};`;
});
return str;
})();
headers['Cookie'] = cookieStr;
const url = `https://account.xiaomi.com/pass/${uri}`;
const method = data === null ? 'GET' : 'POST';
const response = await axios({
method,
url,
data: data ? createRequestBodySync(data) : null,
headers,
httpsAgent: false,
}).catch((err) => {
throw new Error(
`uri: \n ${uri} \n data: \n ${data} \n Error: \n ${err.message} \n Stack: \n ${err.stack}`
);
});
const raw = response.data.slice(11);
const resp = JSON.parse(raw);
/// 为了解决精度丢失在JS环境下 导致加签失败
if (uri === 'serviceLoginAuth2') {
const regex = /"nonce":\d+,/;
const match = raw.match(regex);
if (match) {
resp.nonce = match[0].replace('"nonce":', '').replace(',', '');
} else {
throw new Error(`serviceLoginAuth2 error nonce not found!`);
}
}
return resp;
}
@yihong0618 感谢
我现在还是遇到了重复回答的问题,用了--mute_xiaoai 和--use_command了。 也还是要先回答小爱的问题,前面几个字。然后再说:正在问gpt3请耐心等待。 设备型号:LX05; 怎么解决,求问。
use_command 无法完全 mute 小爱
use_command 无法完全 mute 小爱
那要如何处理可以让先前说的那一段消失掉呢。我发现如果问的问题足够长,也可以屏蔽小爱自身的那部分回答。
使用LX06,无法屏蔽掉小爱自声那部分。指令是:python3 .\xiaogpt.py --config xiao_config.json @yihong0618
我家的是L09A,加上 --mute_xiaoai 和 --use_command ,依然是先回答小爱的内容,再回答chatGPT的内容
我家是LX06,也是一样。
是可以的但是不推荐,懂代码的把里面的 色了改成 0 就可以 使用 use_command 无法彻底屏蔽小爱
请问下使用了参数--mute_xiaoai 但是无法屏蔽小爱回答,小爱会先回答几个字,然后才会读“正在问ChatGPT” 怎么解决啊 大佬们
这个直接改代码注释掉就好了。
是可以的但是不推荐,懂代码的把里面的 色了改成 0 就可以 使用 use_command 无法彻底屏蔽小爱
没看懂这句“色了” 改成0是啥意思?对mutex_xiaoai有帮助吗?
是可以的但是不推荐,懂代码的把里面的 色了改成 0 就可以 使用 use_command 无法彻底屏蔽小爱
没看懂这句“色了” 改成0是啥意思?对mutex_xiaoai有帮助吗?
sleep
正在问
请问 LX06 这个问题解决了吗 ~~
可以解决,你把 sleep 都改成 0 就行,但是会频繁请求非常不建议,玩一下还好,用非常不建议哈
可以解决,你把 sleep 都改成 0 就行,但是会频繁请求非常不建议,玩一下还好,用非常不建议哈
多谢大佬,我是把L05C换成了LX06, gpt播放不流畅的问题解决了,但是就出现了这个小爱开头mute不掉的问题 :( 还有没有什么稳妥的办法去掉呀?
没有
可以解决,你把 sleep 都改成 0 就行,但是会频繁请求非常不建议,玩一下还好,用非常不建议哈
多谢大佬,我是把L05C换成了LX06, gpt播放不流畅的问题解决了,但是就出现了这个小爱开头mute不掉的问题 :( 还有没有什么稳妥的办法去掉呀?
你可以弄个小号这么用 sleep 全部改成 0, 但不要用自己的主号这么用
@cuizheng0520 修复了,请尝试最新版,并注意代码里的 comment, 如何完全 mute
@here 修复了,大家实验下。
@cuizheng0520 修复了,请尝试最新版,并注意代码里的 comment, 如何完全 mute
有pr或者commit 号吗/ 想学习下如何mute的。 现在lx06 还是先回答几个再问gpt。
@cuizheng0520 修复了,请尝试最新版,并注意代码里的 comment, 如何完全 mute
有pr或者commit 号吗/ 想学习下如何mute的。 现在lx06 还是先回答几个再问gpt。
先回答一下这个没办法,有办法实现完全 mute 你要演示还行,但是如果完全 mute 会导致xiaoai 本身功能没了,所以我们没提供。 你自己参考代码的话可以把 sleep 全部变成0
@cuizheng0520 修复了,请尝试最新版,并注意代码里的 comment, 如何完全 mute
有pr或者commit 号吗/ 想学习下如何mute的。 现在lx06 还是先回答几个再问gpt。
先回答一下这个没办法,有办法实现完全 mute 你要演示还行,但是如果完全 mute 会导致xiaoai 本身功能没了,所以我们没提供。 你自己参考代码的话可以把 sleep 全部变成0
有没有可能,我们前面先静音, 然后再把声音还原, 让使用者听不到这个问答? 还是说现在就是这样实现的, 只是有时间间隔导致的, 代码文件路径有吗?
@cuizheng0520 修复了,请尝试最新版,并注意代码里的 comment, 如何完全 mute
有pr或者commit 号吗/ 想学习下如何mute的。 现在lx06 还是先回答几个再问gpt。
先回答一下这个没办法,有办法实现完全 mute 你要演示还行,但是如果完全 mute 会导致xiaoai 本身功能没了,所以我们没提供。 你自己参考代码的话可以把 sleep 全部变成0
有没有可能,我们前面先静音, 然后再把声音还原, 让使用者听不到这个问答? 还是说现在就是这样实现的, 只是有时间间隔导致的, 代码文件路径有吗?
你要是看代码的话就是这么实现的,会实现的好一点。。。这块我们研究了好久建议你直接看代码。无法完全 mute 是因为需要在小米服务端落盘。
请问下使用了参数--mute_xiaoai 但是无法屏蔽小爱回答,小爱会先回答几个字,然后才会读“正在问ChatGPT” 怎么解决啊 大佬们