TTS循环播放

用SONOS做TTS,朗读没有问题,就是只要触发过后,Media_player就一直循环播放不会停止,请问有什么办法让它朗读完就停啊
流如下:

[{“id”:“a086ff26.87768”,“type”:“api-call-service”,“z”:“557fd105.fe3338”,“name”:“马桶冲水”,“server”:“4379efdc.d0568”,“version”:3,“debugenabled”:false,“service_domain”:“remote”,“service”:“send_command”,“entityId”:“remote.wei_sheng_jian_minikpro”,“data”:"{“entity_id”: “remote.wei_sheng_jian_minikpro”, “command”: “ir_1002”}",“dataType”:“json”,“mergecontext”:"",“mustacheAltTags”:false,“outputProperties”:[],“queue”:“none”,“x”:460,“y”:1040,“wires”:[[“4adcdffe.3e9cf8”,“80c094ca.1974f”]]},{“id”:“80c094ca.1974f”,“type”:“function”,“z”:“557fd105.fe3338”,“name”:“TTS内容”,“func”:“var message = 马桶已清洁。;\nmsg.payload = {};\nmsg.payload.data = {“message”:message};\nreturn msg;\n”,“outputs”:1,“noerr”:0,“initialize”:"",“finalize”:"",“libs”:[],“x”:680,“y”:1040,“wires”:[[“27f05526.c126f2”]]},{“id”:“27f05526.c126f2”,“type”:“api-call-service”,“z”:“557fd105.fe3338”,“name”:“清洁马桶TTS”,“server”:“4379efdc.d0568”,“version”:3,“debugenabled”:false,“service_domain”:“tts”,“service”:“baidu_say”,“entityId”:“media_player.ke_ting”,“data”:"",“dataType”:“jsonata”,“mergecontext”:"",“mustacheAltTags”:false,“outputProperties”:[],“queue”:“none”,“x”:850,“y”:1040,“wires”:[[]]},{“id”:“4379efdc.d0568”,“type”:“server”,“name”:“Home Assistant”,“version”:1,“legacy”:false,“addon”:true,“rejectUnauthorizedCerts”:true,“ha_boolean”:“y|yes|true|on|home|open”,“connectionDelay”:true,“cacheJson”:true}]

原来这个论坛也这么惨淡啊

昨天看到本来想给你看看的,但是。。。


人都是懒的,你直接给条流的代码出来,基本不会有人给你复制进去,然后帮你调试的。
如果你把流程的截图详细提供,我看到了我想我会帮你看看。

我相信你拿着这种问题去其他地方也不会有人管你的。 :grinning:

非常感谢您的回复,我自己也确实有些问题,有些急躁了,抱歉
我把每一个节点的截图发上来您帮忙给看看

现在这个流的实际情况就是可以TTS 但是会循环播放下去。我试图再后面加上一个节点做 media_player pause 或者 stop 但是执行起来它就不朗读了 或者有的时候提示 data extra什么什么的

而且我还发现,即便我不使用NODE RED,我在HA Media Player的 short card界面中 填写TTS内容,然后点击发送,它依然会一直循环播放,所以我觉得这可能不仅仅是Node red 流的问题

急躁是人之常情。懒也是 :joy:
这个有可能是tts的那个插件的bug了。你可以给那个插件提bug。另外我想到的方案也是上一个节点执行完成之后,暂停播放。计算好时间就可,至于报错,得看看具体的调试信息。


还是很谢谢您~ 我加入了2秒的delay 这样报错


打开这个


好的 内容是这样的

有点奇怪,你的date也没有东西。
你在前面加个debug,然后选择完整信息,看看上一节点是不是有data的数据传了过来。

那个 message 马桶已清洁 过来了


在stop前面加这个节点,内容协商框框里面的。

return msg ={};

嗯之前实验过 这种方式TTS没有声音,也就是不朗读

我中间加了个1.5s的delay 实验了一下 能读了。。。。。

主要还是看信息传递是否有无,你得通过debug去逐步调试。

得嘞。谢谢啊 总算是能用了 哈哈

就是不知道 这个TTS在 media plyer 界面里也会一直循环 算不算个bug

media_player.repeat_set

ha里面的播放器也是,一直循环,播放tts语言就很尴尬了,不知道什么时候停止,加stop麻烦。