『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 3479|回复: 19

[求助] tts 服务 调用的时候 第一次没声音?

[复制链接]

6

主题

99

帖子

440

积分

中级会员

Rank: 3Rank: 3

积分
440
金钱
341
HASS币
0
发表于 2022-5-14 22:47:20 | 显示全部楼层 |阅读模式
    自己用的小度大金刚当媒介,  用的homeassistant 自动的谷歌的tts  在开发工具里面的服务里面调用测试, 以及在nodered调试的时候 总是第一次没声音。第二次才有,第三次没声音,第四次有,给我的感觉就是要调两次才有声音,很奇葩。
   看了错误日志 如下
微信图片_20220514224550.png
也不知道怎么回事,后面换了微软的tts 也是一样的情况。 有人碰到同样的问题吗? 求解 。  homeassistant 用的最新的版本  刚装的。
回复

使用道具 举报

77

主题

1391

帖子

2万

积分

元老级技术达人

积分
24331
金钱
22900
HASS币
290
发表于 2022-5-15 00:08:22 | 显示全部楼层
本帖最后由 dscao 于 2022-5-15 00:12 编辑

你这么一说,测试一下,我的小度也出现这种情况了,不知从哪个版本开始的。之前还以前偶偶不响,原来是两次才会响一次。
发现问题可能小度有关, 小度在播放tts后一直处理正在播放状态,下一次tts变成停止状态但没发声。再下一次正常播放,状态由停止变成播放,依次循环。
现在需要小度在播放完成后改变状态为停止才行。看来要在自动化方面做点修改才行了。
回复

使用道具 举报

56

主题

929

帖子

4075

积分

论坛元老

Rank: 8Rank: 8

积分
4075
金钱
3146
HASS币
0
发表于 2022-5-15 08:44:34 | 显示全部楼层
先检查一下第一次生成tts的mp3文件了没有,如果生成的话,就是播放器的原因。
回复

使用道具 举报

6

主题

99

帖子

440

积分

中级会员

Rank: 3Rank: 3

积分
440
金钱
341
HASS币
0
 楼主| 发表于 2022-5-15 12:57:56 | 显示全部楼层
bainiu 发表于 2022-5-15 08:44
先检查一下第一次生成tts的mp3文件了没有,如果生成的话,就是播放器的原因。 ...

我连续调用两次就是好的, 很莫名其妙。  连点 中间不停顿的那种,就可以。
回复

使用道具 举报

6

主题

99

帖子

440

积分

中级会员

Rank: 3Rank: 3

积分
440
金钱
341
HASS币
0
 楼主| 发表于 2022-5-15 13:01:33 | 显示全部楼层
dscao 发表于 2022-5-15 00:08
你这么一说,测试一下,我的小度也出现这种情况了,不知从哪个版本开始的。之前还以前偶偶不响,原来是两次 ...

我目前就是在nodered里面连续调2次tts服务 完美解决。 但是总觉得哪里奇怪, 不知道是dlna的问题。还是啥问题。那个报错日志也看不明白。
回复

使用道具 举报

6

主题

99

帖子

440

积分

中级会员

Rank: 3Rank: 3

积分
440
金钱
341
HASS币
0
 楼主| 发表于 2022-5-15 13:03:26 | 显示全部楼层
dscao 发表于 2022-5-15 00:08
你这么一说,测试一下,我的小度也出现这种情况了,不知从哪个版本开始的。之前还以前偶偶不响,原来是两次 ...

你的意思是 播放完要手动停止    下一次才能出声 是吧 我试试  这样操作后 会不会还报错。
回复

使用道具 举报

77

主题

1391

帖子

2万

积分

元老级技术达人

积分
24331
金钱
22900
HASS币
290
发表于 2022-5-15 13:09:40 | 显示全部楼层
liujiang567 发表于 2022-5-15 13:03
你的意思是 播放完要手动停止    下一次才能出声 是吧 我试试  这样操作后 会不会还报错。 ...

我试了,服务不能改变它为idle状态,tts一次会变成 idle状态,再tts就没问题,但之后还是playing状态,这个状态下就发不了声了。之前用虫子版的dlna就正常使用小度,现在虫子版的在新版中不发声了。就用官方集成内置的,就有这个问题了。看来需要修改虫子版dlna才行,不能不能愉快的使用小度了。
回复

使用道具 举报

6

主题

99

帖子

440

积分

中级会员

Rank: 3Rank: 3

积分
440
金钱
341
HASS币
0
 楼主| 发表于 2022-5-15 13:37:56 | 显示全部楼层
dscao 发表于 2022-5-15 13:09
我试了,服务不能改变它为idle状态,tts一次会变成 idle状态,再tts就没问题,但之后还是playing状态,这 ...

我刚试了下 服务确实没法手动吧playing 变成  idle 。 但是是可以通过两次调用tts服务, 来达到报错变成成idle状态,也就是我现在连续两次调tts服务虽然报错,但是能用的一个状态  。现就这样用着吧,也算是能完美解决我的问题了。那点报错日志不在乎。
回复

使用道具 举报

56

主题

929

帖子

4075

积分

论坛元老

Rank: 8Rank: 8

积分
4075
金钱
3146
HASS币
0
发表于 2022-5-15 15:26:23 | 显示全部楼层
dscao 发表于 2022-5-15 13:09
我试了,服务不能改变它为idle状态,tts一次会变成 idle状态,再tts就没问题,但之后还是playing状态,这 ...

我也遇到这个问题。在nodered 里建一个子流程,调用播放器tts之前先判断播放器状态,如果idle空闲就直接播放,如果是playing 或者 paused状态,就调用media_stop服务就可以重置播放器状态为idle了。我是这样解决的。
回复

使用道具 举报

56

主题

929

帖子

4075

积分

论坛元老

Rank: 8Rank: 8

积分
4075
金钱
3146
HASS币
0
发表于 2022-5-15 15:28:28 | 显示全部楼层
liujiang567 发表于 2022-5-15 13:37
我刚试了下 服务确实没法手动吧playing 变成  idle 。 但是是可以通过两次调用tts服务, 来达到报错变成 ...

调用medie_stop服务,可以置播放器为idle
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 04:30 , Processed in 0.075688 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表