ha0y / xiaomi_miot_raw

All-in-one & Easy-to-use. Integrate all your Xiaomi Smart Home - with a single integration and NO YAML files - into Home Assistant.
Apache License 2.0
2.19k stars 231 forks source link

小米AI音箱不能TTS。(已解决) #139

Closed weans1975 closed 3 years ago

weans1975 commented 3 years ago

小米AI音箱不能TTS。 Logger: custom_components.xiaomi_miot_raw.deps.xiaomi_cloud_new Source: custom_components/xiaomi_miot_raw/deps/xiaomi_cloud_new.py:218 Integration: Xiaomi MIoT (documentation, issues) First occurred: 上午1:04:32 (1 occurrences) Last logged: 上午1:04:32

Error while requesting MIoT api /miotspec/action :

2021.6.28: 如遇 speak_text 无法执行而 execute_text 正常工作的,只要执行指令“跟我说 xxx”,小爱就会说出后面的文字。 感谢 @georgezhao2010 提供解决方案!原帖 https://github.com/ha0y/xiaomi_miot_raw/issues/139#issuecomment-869184305

ha0y commented 3 years ago

后面什么都没有了吗?

weans1975 commented 3 years ago

HA版本是2021.5.5 HA重啟 出現不一樣訊息。 Logger: custom_components.xiaomi_miot_raw.deps.xiaomi_cloud_new Source: custom_components/xiaomi_miot_raw/deps/xiaomi_cloud_new.py:164 Integration: Xiaomi MIoT (documentation, issues) First occurred: 下午12:01:54 (1 occurrences) Last logged: 下午12:01:54

Timeout while loading MiCloud device list

ha0y commented 3 years ago

可能网络原因比较大?在配置-信息页面,“可访问米家服务器”一项是否正常?

weans1975 commented 3 years ago

在配置-信息页面,“可访问米家服务器”ˋ這一项是正常的。 剛剛我新接入了另一個小愛mini音箱,測試TTS,可以正常發聲。 研判是原先的小愛音箱的TTS出了問題。(它在米家的設備控制和撥放音樂是正常的) 請問@ha0y ,這種情形,是否與小米智能音箱的TTS 使用次數的限制有關?

ha0y commented 3 years ago

这种情况,尝试重新启动小爱,如果还不行,删除设备重新绑定至米家。

我每天使用小爱的TTS 3-5次,没有受到过限制。

weans1975 commented 3 years ago

重新启动小爱和删除设备重新绑定至米家,該小愛音箱,還是不能使用TTS。 我每天使用TTS的次數大概有30次以上。

ha0y commented 3 years ago

重新启动小爱和删除设备重新绑定至米家,該小愛音箱,還是不能使用TTS。 我每天使用TTS的次數大概有30次以上。

在米家中,新建一个手动执行的自动化,执行动作选择小爱音箱-“播报指定文本”,手动执行该自动化,测试小爱是否有响应。

weans1975 commented 3 years ago

測試結果,提供參考。 在米家APP ,小愛音箱和小愛mini,2個設備都可以播放TTS。 在HA,小愛音箱無法TTS,小愛mini則可以。

ha0y commented 3 years ago

确实没有遇到过这种情况……尤其是服务器竟然没有返回任何信息的情况。

weans1975 commented 3 years ago

同個音箱 xiaomi_miot_raw.execute_text 的服務,執行也是正常的。怪奇的事!!

countrysideboy commented 3 years ago

我的两个音箱也是这种情况,执行正常,tts不行。

275080225 commented 3 years ago

遇到同样问题

single-cycle commented 3 years ago

我发现是pro不行 mini行 ,你们不能播报的都是pro吗

275080225 commented 3 years ago

我的pro不行,触屏小爱可以

ha0y commented 3 years ago

@275080225 @single-cycle @countrysideboy @weans1975 请提供你们不能TTS的小爱音箱的型号(英文型号或中文全称); 请将以下内容添加到 configuration.yaml :

logger:
  default: warn
  logs:
    custom_components.xiaomi_miot_raw: debug

然后在错误信息周围,会有更加详细的调试信息,麻烦发上来以便分析原因。 获取调试信息后删除以上内容,以免日志中出现过多无用信息。

single-cycle commented 3 years ago

@ha0y <小爱音响Pro>这样配置并不能获取到调试日志 必须要default: debug才能获取 新建文本文档.txt

ha0y commented 3 years ago

小爱音箱pro:

siid 5: intelligent_speaker(Intelligent Speaker)

   piid 1: text_content(Text Content)
      数据类型:string
   piid 2: silent_execution(Silent Execution)
      数据类型:bool
   aiid 1: play_text(Play Text)
   aiid 2: play_music(Play Music)
   aiid 3: wake_up(Wake Up)
   aiid 4: play_radio(Play Radio)
   aiid 5: execute_text_directive(Execute Text Directive)

小爱音箱mini:

siid 5: intelligent_speaker(Intelligent Speaker)

   piid 1: text_content(Text Content)
      数据类型:string
   piid 2: silent_execution(Silent Execution)
      数据类型:uint8
      取值范围:
         0: On
         1: Off
   aiid 1: play_text(Play Text)
   aiid 2: wake_up(Wake Up)
   aiid 3: play_radio(Play Radio)
   aiid 4: play_music(Play Music)
   aiid 5: execute_text_directive(Execute Text Directive)
ha0y commented 3 years ago
2021-05-25 10:01:49 INFO (MainThread) [custom_components.xiaomi_miot_raw.deps.xiaomi_cloud_new] Response of /miotspec/action from cloud: {'code': 0, 'message': '', 'result': {'did': '***', 'miid': 0, 'siid': 5, 'aiid': 1, 'code': 0, 'exe_time': 0, 'net_cost': 0, 'ot_cost': 0, 'otlocalts': 0, 'oa_cost': 0, '_oa_rpc_cost': 0}}

服务器返回也是执行成功……

single-cycle commented 3 years ago

已经有很多朋友反馈pro好像不能用了,可以联系下官方吗?

weans1975 commented 3 years ago

目前無法TTS的音箱是小米AI音箱,型號是xiaomi.wifispeaker.s12。

countrysideboy commented 3 years ago

小爱音箱万能遥控版 红米Play

ha0y commented 3 years ago

已经有很多朋友反馈pro好像不能用了,可以联系下官方吗?

个人开发者联系不到官方,爱莫能助啊……

single-cycle commented 3 years ago

@ha0y 是抓包搞得请求数据吗?还是官方的AIOT文档呢

Eric9453 commented 3 years ago

我用Pro 也是無法tts Home Assistant 2021.5.5

--------log---------- 2021-06-04 00:09:22 ERROR (MainThread) [custom_components.xiaomi_miot_raw.deps.xiaomi_cloud_new] Can't request MIoT api Traceback (most recent call last): File "/config/custom_components/xiaomi_miot_raw/deps/xiaomi_cloud_new.py", line 187, in request_miot_api r = await self.session.post(url, cookies={ File "/usr/local/lib/python3.8/site-packages/aiohttp/client.py", line 381, in _request raise RuntimeError("Session is closed") RuntimeError: Session is closed

更新: 不等了,改用Node-Red(node-red-contrib-xiaoai-tts 1.0.5),已可使用小愛TTS發聲 謝謝

weans1975 commented 3 years ago

@ha0y 你好,原本miot raw 無法播放TTS的小米AI音箱,型號xiaomi.wifispeaker.s12,目前改使用nodered tts方案(node-red-contrib-xiaoai-tts 1.0.5),已可播放TTS。跟你回報一下,提供參考。

ha0y commented 3 years ago

@Eric9453 @weans1975 感谢反馈。因为小爱有两套API可以提供TTS的功能。本插件用的是MIoT api,NR上用的应该是mina api。能用就行。

itispip commented 3 years ago

同样是小米pro音箱,以及redmi音箱, speak text无效,execute text有效

georgezhao2010 commented 3 years ago

小米AI音箱不能TTS,但是要实现TTS,只需要execute text "跟我说{要TTS的文字}"即可,这样也可以。

比如“跟我说主人欢迎回家”,小米AI音箱就会说“主人欢迎回家”

ha0y commented 3 years ago

小米AI音箱不能TTS,但是要实现TTS,只需要execute text "跟我说{要TTS的文字}"即可,这样也可以。

比如“跟我说主人欢迎回家”,小米AI音箱就会说“主人欢迎回家”

厉害!这个发现解决大问题了!此贴终于可以终结了。

452606792 commented 2 years ago

service: xiaomi_miot.intelligent_speaker data: entity_id: media_player.xiaomi_lx5a_fc2d_play_control text: 关空调 execute: true silent: true

上面这个服务可以让siri执行米家里面关空调的智能场景,但是怎么把这个服务做成实体按钮放入homekit里呢,接触HA两天的小白,研究很久没弄明白,本来想找几个没用的实体更改开关信息,发现配置菜单里面就没有自定义实体的模块,在config目录下新建customize.yaml里面自定义总是报错,在configuration.yaml里面写customize:也不行。不知道怎么弄了