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

 找回密码
 立即注册
查看: 5271|回复: 13

Rokid TTS 替换中文

[复制链接]

30

主题

526

帖子

2331

积分

金牌会员

Rank: 6Rank: 6

积分
2331
金钱
1800
HASS币
20
发表于 2019-1-3 20:18:59 | 显示全部楼层 |阅读模式
跟着囧大学习,终于把若琪搞成TTS,测试算是很完美的,但是阅读时出了问题

  action:
  - service: rokid_tts.speak
    data_template:
      message: "辛苦了,欢迎回家,今天是:{{states.sensor.date.state}},现在的时间是:{{states.sensor.time.state}}。"


代码如上,阅读日期时没有问题,能念出来年月日,可是时间就不行了,比如 17:18 会读成“十七 十八”

有什么办法可以吧那个冒号让它读成 “点”么?
回复

使用道具 举报

26

主题

2096

帖子

8520

积分

论坛元老

Rank: 8Rank: 8

积分
8520
金钱
6419
HASS币
30

论坛元老

发表于 2019-1-3 20:33:00 | 显示全部楼层
本帖最后由 情非殇 于 2019-1-3 20:37 编辑

我能想到的本办法是用切片的方式,把时间切成2个state,然后中间加“点”

参考M大的,利用【python list】的切片方法[X:X]这一段
https://bbs.hassbian.com/thread-3273-1-1.html

回复

使用道具 举报

30

主题

526

帖子

2331

积分

金牌会员

Rank: 6Rank: 6

积分
2331
金钱
1800
HASS币
20
 楼主| 发表于 2019-1-3 20:36:46 | 显示全部楼层
情非殇 发表于 2019-1-3 20:33
我能想到的本办法是用切片的方式,把时间切成2个state,然后中间加“点”

我是个小白。。。咋切
我看到有人用 replace 结果不行
回复

使用道具 举报

26

主题

2096

帖子

8520

积分

论坛元老

Rank: 8Rank: 8

积分
8520
金钱
6419
HASS币
30

论坛元老

发表于 2019-1-3 20:41:14 | 显示全部楼层
dinglifeng 发表于 2019-1-3 20:36
我是个小白。。。咋切
我看到有人用 replace 结果不行

{{ states.sensor.time.state | [1:2] }}

比如这样,切出前2位就是“时”
回复

使用道具 举报

30

主题

526

帖子

2331

积分

金牌会员

Rank: 6Rank: 6

积分
2331
金钱
1800
HASS币
20
 楼主| 发表于 2019-1-3 20:44:58 | 显示全部楼层
情非殇 发表于 2019-1-3 20:41
{{ states.sensor.time.state | [1:2] }}

比如这样,切出前2位就是“时”

其实就是让它把 : 念成 点 就行
回复

使用道具 举报

26

主题

2096

帖子

8520

积分

论坛元老

Rank: 8Rank: 8

积分
8520
金钱
6419
HASS币
30

论坛元老

发表于 2019-1-3 20:45:05 | 显示全部楼层
dinglifeng 发表于 2019-1-3 20:36
我是个小白。。。咋切
我看到有人用 replace 结果不行

现在的时间是:{{ states.sensor.time.state | [1:2] }} 点 {{ states.sensor.time.state | [4:5] }}。

切出“时”和“分”,思路应该是可以的,这个写法,你自己测试吧,不知道我写的对不对
回复

使用道具 举报

26

主题

2096

帖子

8520

积分

论坛元老

Rank: 8Rank: 8

积分
8520
金钱
6419
HASS币
30

论坛元老

发表于 2019-1-3 20:49:12 | 显示全部楼层
dinglifeng 发表于 2019-1-3 20:44
其实就是让它把 : 念成 点 就行

那就不知道了,另请高明吧
回复

使用道具 举报

30

主题

526

帖子

2331

积分

金牌会员

Rank: 6Rank: 6

积分
2331
金钱
1800
HASS币
20
 楼主| 发表于 2019-1-3 20:52:02 | 显示全部楼层
情非殇 发表于 2019-1-3 20:45
现在的时间是:{{ states.sensor.time.state | [1:2] }} 点 {{ states.sensor.time.state | [4:5] }}。

...

不行,报错
回复

使用道具 举报

30

主题

526

帖子

2331

积分

金牌会员

Rank: 6Rank: 6

积分
2331
金钱
1800
HASS币
20
 楼主| 发表于 2019-1-3 22:45:08 | 显示全部楼层
情非殇 发表于 2019-1-3 20:41
{{ states.sensor.time.state | [1:2] }}

比如这样,切出前2位就是“时”

我写出来了

message: "辛苦了,欢迎回家,今天是:{{states.sensor.date.state}},现在的时间是:{{states('sensor.time')|replace(':','点')}}分,当前室内温度为{{states('sensor.broadlink_sensor_temperature')}}度,湿度为百分之{{states('sensor.broadlink_sensor_humidity')}}。"
回复

使用道具 举报

123

主题

4628

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16059
金钱
11346
HASS币
45
发表于 2019-1-4 00:25:56 | 显示全部楼层
now().strftime("%H")  这个是小时,now().strftime("%M") 这个是分钟。剩下的你懂的。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-10 02:30 , Processed in 0.118807 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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