ex

Fork of mbed-os-example-mbed5-blinky by mbed-os-examples

Committer:
TMBOY
Date:
Tue Jul 18 16:27:22 2017 +0800
Revision:
44:c1d8923072ba
?

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TMBOY 44:c1d8923072ba 1 # SpeechSynthesizer 语音合成
TMBOY 44:c1d8923072ba 2
TMBOY 44:c1d8923072ba 3 ## Table of Contents
TMBOY 44:c1d8923072ba 4
TMBOY 44:c1d8923072ba 5
TMBOY 44:c1d8923072ba 6 * [SpeechSynthesizer 语音合成](#speechsynthesizer-语音合成)
TMBOY 44:c1d8923072ba 7 * [Table of Contents](#table-of-contents)
TMBOY 44:c1d8923072ba 8 * [Speak指令](#speak指令)
TMBOY 44:c1d8923072ba 9 * [Stop指令](#stop指令)
TMBOY 44:c1d8923072ba 10 * [SpeechStarted事件](#speechstarted事件)
TMBOY 44:c1d8923072ba 11 * [SpeechFinished事件](#speechfinished事件)
TMBOY 44:c1d8923072ba 12 * [SpeechStopped事件](#speechstopped事件)
TMBOY 44:c1d8923072ba 13 * [SpeechSynthesizer状态上报](#speechsynthesizer状态上报)
TMBOY 44:c1d8923072ba 14
TMBOY 44:c1d8923072ba 15
TMBOY 44:c1d8923072ba 16 ## Speak指令
TMBOY 44:c1d8923072ba 17 需要扬声器语音播报的时候,返回这个指令。客户端收到这个指令后,需要把内容tts播报出来。听新闻返回的就是一个Speak指令。
TMBOY 44:c1d8923072ba 18 ```json
TMBOY 44:c1d8923072ba 19 {
TMBOY 44:c1d8923072ba 20 "header": {
TMBOY 44:c1d8923072ba 21 "namespace": "SpeechSynthesizer",
TMBOY 44:c1d8923072ba 22 "name": "Speak",
TMBOY 44:c1d8923072ba 23 "message_id": "message_id-1344"
TMBOY 44:c1d8923072ba 24 },
TMBOY 44:c1d8923072ba 25 "payload": {
TMBOY 44:c1d8923072ba 26 "channel":"Content", //可选,标志内容的优先级,默认为Dialog
TMBOY 44:c1d8923072ba 27 "token": "156",
TMBOY 44:c1d8923072ba 28 "type": "{{Text/SSML}}",
TMBOY 44:c1d8923072ba 29 "content": ["xxxx1", "xxxx2"],
TMBOY 44:c1d8923072ba 30 "speak_behavior": "REPLACE_ALL",
TMBOY 44:c1d8923072ba 31 "should_get_next_speech": true
TMBOY 44:c1d8923072ba 32 }
TMBOY 44:c1d8923072ba 33 }
TMBOY 44:c1d8923072ba 34 ```
TMBOY 44:c1d8923072ba 35 参数 | 描述 | 类型 | 必须
TMBOY 44:c1d8923072ba 36 --- | --- | --- | ---
TMBOY 44:c1d8923072ba 37 token | tts的token | string | 是
TMBOY 44:c1d8923072ba 38 type | TTS类型,type字段的两种取值:Text和SSML| string | 是
TMBOY 44:c1d8923072ba 39 content | 播报内容,content字段固定为数组,即使只有一条内容,也使用数组。| array | 是
TMBOY 44:c1d8923072ba 40 speak_behavior | 播报模式 REPLACE_ALL: 清空列表,立即播报;ENQUEUE: 把指令关联的tts添加到列表末尾,下一条预取的时候使用它 | string | 是
TMBOY 44:c1d8923072ba 41 channel | 播报内容的分类和优先级,取值:Dialog/Content/Alerts,请参考[directives的交互设计参考](../api/directives_design.md) | string | 否,默认为Dialog
TMBOY 44:c1d8923072ba 42
TMBOY 44:c1d8923072ba 43 ## Stop指令
TMBOY 44:c1d8923072ba 44 ```json
TMBOY 44:c1d8923072ba 45 {
TMBOY 44:c1d8923072ba 46 "header": {
TMBOY 44:c1d8923072ba 47 "namespace": "SpeechSynthesizer",
TMBOY 44:c1d8923072ba 48 "name": "Stop",
TMBOY 44:c1d8923072ba 49 "message_id": "message_id-1344"
TMBOY 44:c1d8923072ba 50 },
TMBOY 44:c1d8923072ba 51 "payload": {
TMBOY 44:c1d8923072ba 52 }
TMBOY 44:c1d8923072ba 53 }
TMBOY 44:c1d8923072ba 54 ```
TMBOY 44:c1d8923072ba 55
TMBOY 44:c1d8923072ba 56 ## SpeechStarted事件
TMBOY 44:c1d8923072ba 57 收到Speak指令后,开始播报之前,上报此事件。
TMBOY 44:c1d8923072ba 58 ```json
TMBOY 44:c1d8923072ba 59 {
TMBOY 44:c1d8923072ba 60 "device_event": {
TMBOY 44:c1d8923072ba 61 "header": {
TMBOY 44:c1d8923072ba 62 "namespace": "SpeechSynthesizer",
TMBOY 44:c1d8923072ba 63 "name": "SpeechStarted",
TMBOY 44:c1d8923072ba 64 "message_id": "message_id-1344"
TMBOY 44:c1d8923072ba 65 },
TMBOY 44:c1d8923072ba 66 "payload": {
TMBOY 44:c1d8923072ba 67 "token": "156",
TMBOY 44:c1d8923072ba 68 }
TMBOY 44:c1d8923072ba 69 }
TMBOY 44:c1d8923072ba 70 }
TMBOY 44:c1d8923072ba 71 ```
TMBOY 44:c1d8923072ba 72
TMBOY 44:c1d8923072ba 73 ## SpeechFinished事件
TMBOY 44:c1d8923072ba 74 播报完毕后,上报此事件。
TMBOY 44:c1d8923072ba 75 ```json
TMBOY 44:c1d8923072ba 76 {
TMBOY 44:c1d8923072ba 77 "device_event": {
TMBOY 44:c1d8923072ba 78 "header": {
TMBOY 44:c1d8923072ba 79 "namespace": "SpeechSynthesizer",
TMBOY 44:c1d8923072ba 80 "name": "SpeechFinished",
TMBOY 44:c1d8923072ba 81 "message_id": "message_id-1344"
TMBOY 44:c1d8923072ba 82 },
TMBOY 44:c1d8923072ba 83 "payload": {
TMBOY 44:c1d8923072ba 84 "token": "156"
TMBOY 44:c1d8923072ba 85 }
TMBOY 44:c1d8923072ba 86 }
TMBOY 44:c1d8923072ba 87 }
TMBOY 44:c1d8923072ba 88 ```
TMBOY 44:c1d8923072ba 89
TMBOY 44:c1d8923072ba 90 ## SpeechStopped事件
TMBOY 44:c1d8923072ba 91 用户说"暂停播放"、 "停止播放"后,会收到Stop指令,客户端执行完Stop指令后,即暂停播放后,需要上报此事件,云端会保存断点,供下一次继续播放使用。
TMBOY 44:c1d8923072ba 92 ```json
TMBOY 44:c1d8923072ba 93 {
TMBOY 44:c1d8923072ba 94 "device_event": {
TMBOY 44:c1d8923072ba 95 "header": {
TMBOY 44:c1d8923072ba 96 "namespace": "SpeechSynthesizer",
TMBOY 44:c1d8923072ba 97 "name": "SpeechStopped",
TMBOY 44:c1d8923072ba 98 "message_id": "message_id-1344"
TMBOY 44:c1d8923072ba 99 },
TMBOY 44:c1d8923072ba 100 "payload": {
TMBOY 44:c1d8923072ba 101 "token": "156",
TMBOY 44:c1d8923072ba 102 "offset_ms": 10000
TMBOY 44:c1d8923072ba 103 }
TMBOY 44:c1d8923072ba 104 }
TMBOY 44:c1d8923072ba 105 }
TMBOY 44:c1d8923072ba 106 ```
TMBOY 44:c1d8923072ba 107
TMBOY 44:c1d8923072ba 108 ## SpeechSynthesizer状态上报
TMBOY 44:c1d8923072ba 109
TMBOY 44:c1d8923072ba 110 正常请求中也需要上报SpeechSynthesizer当前的状态
TMBOY 44:c1d8923072ba 111
TMBOY 44:c1d8923072ba 112 ```json
TMBOY 44:c1d8923072ba 113 "device_status":{
TMBOY 44:c1d8923072ba 114 "SpeechSynthesizer":{
TMBOY 44:c1d8923072ba 115 "token":"xxx",//正在播放的音频流id
TMBOY 44:c1d8923072ba 116 "offset_ms":20000,//播放到多少ms了
TMBOY 44:c1d8923072ba 117 "player_activity":"PLAYING / FINISHED"
TMBOY 44:c1d8923072ba 118 }
TMBOY 44:c1d8923072ba 119 }
TMBOY 44:c1d8923072ba 120 ```