# TTS播放器

# 协议类型

消息类型 名称 必须实现
directive voice_out
event tts.text_in

# context

"unios_context": {
  ....
  "tts_player": {
    "version": "1.0"
  },
  ...
}
1
2
3
4
5
6
7
参数 类型 说明 必填
version String 模块版本,现在是1.0

# directive

TTS播放
当接收到TTS播放指令的时候,需要使用合适的播放器来播放里面的内容

回复示例

{
  "unios_directives": [
    ...,
    {
      "header": {
        "name": "tts_player.voice_out"
      },
      "payload": {
        "url": "http://music.unios.cn/tts/sadf.mp3?token=xxxxxxxx",
        "behavior": "SERIAL",
        "metadata": {
          "text": "xxxx"
        }
      }
    }
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
参数 类型 说明 必填
behavior String - SERIAL:串行TTS,执行时阻塞,播完TTS才可以执行下一个指令
- PARALLEL:并行,执行不阻塞,开始播放TTS时可以同时执行后续指令。若该字段未出现,默认为SERIAL
url String TTS播放地址(mp3格式)
metadata.text String TTS音频的原始文本

举例
当云端要通过TTS回复用户的请求时,收到的unios_directive如下:

{
  "unios_directives": [
    ...,
    {
      "header": {
        "name": "tts_player.voice_out"
      },
      "payload": {
        "url": "http://tts.unios.cn/tts/sadf.mp3?token=xxxxxxxx",
        "behavior": "SERIAL",
        "metadata": {
            "text": "北京市今天晴,零下4度到10度,和昨天的温度差不多,空气质量优"
        }
      }
    }
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

说明

  • 当收到SERIAL的TTS时,代表这个TTS需要阻塞其他的指令,需要在这个TTS播放完成后,才可以执行后续的指令。
  • 当收到PARALLEL的TTS时,代表这个TTS不需要阻塞,当开始播放这个TTS后,就可以开始执行后续的指令。

# event

文本合成
有的时候,设备需要生成TTS来回复用户,此时设备可以发送文本请求,UniOS 将会把文本合成音频,然后通过unios_directive返回给一条能够播放的TTS。

请求示例

{
    "unios_header": {
        ...
    },
    "unios_context": {
        ...
    },
    "unios_event": {
        "header": {
            "name": "tts_player.tts.text_in",
            "message_id": "xxxxxxxx"
        },
        "payload": {
           "text": "fdasfdsalkjfdsakjfjffdsafdsa"
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
参数 类型 说明 必填
unios_header Object 构建的通用 unios_header
unios_context Object 构建的通用 unios_context
text String 需要合成的文本