-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path未命名绘图.drawio
205 lines (205 loc) · 20.2 KB
/
未命名绘图.drawio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
<mxfile host="app.diagrams.net" modified="2021-04-30T09:20:13.405Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36" etag="c_DMlCEork6yRU5L1ZKE" version="14.5.8" type="github" pages="2">
<diagram id="ESvmmhUmxTBA3f6USQD_" name="第 1 页">
<mxGraphModel dx="1718" dy="662" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="ng8fVR_bc8W_mGURFbqn-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#b1ddf0;strokeColor=#10739e;" edge="1" parent="1" source="ng8fVR_bc8W_mGURFbqn-1" target="ng8fVR_bc8W_mGURFbqn-6">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="205" y="270" />
<mxPoint x="340" y="270" />
<mxPoint x="340" y="400" />
<mxPoint x="268" y="400" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ng8fVR_bc8W_mGURFbqn-1" value="Arvato机房" style="pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=#10739e;fillColor=#b1ddf0;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.servers.datacenter;" vertex="1" parent="1">
<mxGeometry x="150" y="110" width="110" height="110" as="geometry" />
</mxCell>
<mxCell id="ng8fVR_bc8W_mGURFbqn-2" value="Skyes机房" style="pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=#10739e;fillColor=#b1ddf0;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.servers.datacenter;" vertex="1" parent="1">
<mxGeometry x="440" y="110" width="110" height="110" as="geometry" />
</mxCell>
<mxCell id="ng8fVR_bc8W_mGURFbqn-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#b1ddf0;strokeColor=#10739e;" edge="1" parent="1" source="ng8fVR_bc8W_mGURFbqn-3" target="ng8fVR_bc8W_mGURFbqn-9">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="597" y="270" />
<mxPoint x="410" y="270" />
<mxPoint x="410" y="430" />
<mxPoint x="433" y="430" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ng8fVR_bc8W_mGURFbqn-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#b1ddf0;strokeColor=#10739e;" edge="1" parent="1" source="ng8fVR_bc8W_mGURFbqn-3" target="ng8fVR_bc8W_mGURFbqn-6">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="597" y="270" />
<mxPoint x="410" y="270" />
<mxPoint x="410" y="430" />
<mxPoint x="268" y="430" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ng8fVR_bc8W_mGURFbqn-3" value="中转机(讯飞提供)<br>172.16.92.11" style="shape=mxgraph.cisco.hubs_and_gateways.universal_gateway;html=1;pointerEvents=1;dashed=0;fillColor=#b1ddf0;strokeColor=#10739e;strokeWidth=2;verticalLabelPosition=bottom;verticalAlign=top;align=center;outlineConnect=0;" vertex="1" parent="1">
<mxGeometry x="570" y="164" width="54" height="56" as="geometry" />
</mxCell>
<mxCell id="ng8fVR_bc8W_mGURFbqn-4" value="" style="strokeColor=#10739e;shadow=1;strokeWidth=1;rounded=1;absoluteArcSize=1;arcSize=2;fillColor=#b1ddf0;" vertex="1" parent="1">
<mxGeometry x="293" y="330" width="140" height="44" as="geometry" />
</mxCell>
<mxCell id="ng8fVR_bc8W_mGURFbqn-5" value="VPN Gateway" style="dashed=0;connectable=0;html=1;fillColor=#b1ddf0;strokeColor=#10739e;shape=mxgraph.gcp2.gateway;part=1;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=5;fontSize=12;" vertex="1" parent="ng8fVR_bc8W_mGURFbqn-4">
<mxGeometry y="0.5" width="32" height="32" relative="1" as="geometry">
<mxPoint x="5" y="-16" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="ng8fVR_bc8W_mGURFbqn-6" value="FS01<br><span style="color: rgb(51 , 51 , 51) ; font-family: , &#34;blinkmacsystemfont&#34; , &#34;segoe ui&#34; , &#34;pingfang sc&#34; , &#34;hiragino sans gb&#34; , &#34;microsoft yahei&#34; , &#34;helvetica neue&#34; , &#34;helvetica&#34; , &#34;arial&#34; , sans-serif ; background-color: rgb(255 , 255 , 255)">172.18.36.218</span>" style="shape=mxgraph.cisco.servers.sip_proxy_server;html=1;pointerEvents=1;dashed=0;fillColor=#b1ddf0;strokeColor=#10739e;strokeWidth=2;verticalLabelPosition=bottom;verticalAlign=top;align=center;outlineConnect=0;" vertex="1" parent="1">
<mxGeometry x="245" y="460" width="45" height="70" as="geometry" />
</mxCell>
<mxCell id="ng8fVR_bc8W_mGURFbqn-9" value="FS02<br><span style="color: rgb(51 , 51 , 51) ; font-family: , &#34;blinkmacsystemfont&#34; , &#34;segoe ui&#34; , &#34;pingfang sc&#34; , &#34;hiragino sans gb&#34; , &#34;microsoft yahei&#34; , &#34;helvetica neue&#34; , &#34;helvetica&#34; , &#34;arial&#34; , sans-serif ; background-color: rgb(255 , 255 , 255)">172.18.36.236</span>" style="shape=mxgraph.cisco.servers.sip_proxy_server;html=1;pointerEvents=1;dashed=0;fillColor=#b1ddf0;strokeColor=#10739e;strokeWidth=2;verticalLabelPosition=bottom;verticalAlign=top;align=center;outlineConnect=0;" vertex="1" parent="1">
<mxGeometry x="410" y="460" width="45" height="70" as="geometry" />
</mxCell>
<mxCell id="ng8fVR_bc8W_mGURFbqn-16" value="<div>Skyes机房</div><div><span> </span>1、Skyes呼叫中心不支持SIP协议,由爱因提供一台中转机做协议转换,部署在上海Skyes机房;</div><div><span> </span>2、中转机为Linux系统,IP:172.16.92.11,账号:root,密码:iflyteksouth,注:若VPN重连IP可能会发生变化;</div><div><span> </span>3、中转机经VPN网关访问爱因部署在阿里云的两台FreeSwitch服务器,中转机对两台FS服务器有做探活检测,请求会优先打到FS02,若FS02超时(32s),会再转接到FS01;</div><div><span> </span>4、VPN类型为IPSecVPN,由爱因在阿里云上采购,每年5月份需做一次续费,相关配置也可在阿里云后台查到;</div><div><span> </span>5、目前VPN的路上策略仅允许中转机访问FS01和FS02,不允许访问爱因其他服务器;</div><div><span> </span>6、中转机信令采用UDP协议发传输,送到FS服务器5060端口;</div><div><span> </span>7、中转机媒体流采用UDP协议传输,未指定端口段,即FS默认的端口段。</div><div><br></div><div>Arvato机房</div><div><span> </span>1、Arvato呼叫中心支持SIP,不需要中转机;同时,不需要爱因提供IPSecVPN设备;</div><div><span> </span>2、Arvato只对接到FS01,没做探活切换,VPN路由策略只允许访问FS01;</div><div><span> </span>3、VPN网关与Skyes共用同一套;信令与媒体流与Skyes第6、7点一致。</div><div><br></div>" style="text;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="590" y="330" width="550" height="270" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
<diagram id="q9-W6lvfLEJVs3o5c8PB" name="第 2 页">
<mxGraphModel dx="1504" dy="1851" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="ZaGUo094ZKQwnA8RUyoK-0" />
<mxCell id="ZaGUo094ZKQwnA8RUyoK-1" parent="ZaGUo094ZKQwnA8RUyoK-0" />
<mxCell id="xxe0TyBy9cfBVcG6Gukx-0" value="1: 实时英文语音流" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;" edge="1" parent="ZaGUo094ZKQwnA8RUyoK-1" source="xxe0TyBy9cfBVcG6Gukx-1" target="xxe0TyBy9cfBVcG6Gukx-16">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-1" value="User Agent" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" vertex="1" parent="ZaGUo094ZKQwnA8RUyoK-1">
<mxGeometry x="285" y="140" width="30" height="60" as="geometry" />
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-19" value="3: vad断句" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=1;entryDx=0;entryDy=0;exitX=0.75;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="ZaGUo094ZKQwnA8RUyoK-1" source="xxe0TyBy9cfBVcG6Gukx-3" target="xxe0TyBy9cfBVcG6Gukx-16">
<mxGeometry relative="1" as="geometry">
<mxPoint x="630" y="410" as="targetPoint" />
<Array as="points">
<mxPoint x="335" y="400" />
<mxPoint x="590" y="400" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-3" value="英文ASR" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="ZaGUo094ZKQwnA8RUyoK-1">
<mxGeometry x="260" y="470" width="100" height="60" as="geometry" />
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-4" value="5: 中文文本" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;exitX=0.75;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="ZaGUo094ZKQwnA8RUyoK-1" source="xxe0TyBy9cfBVcG6Gukx-16" target="xxe0TyBy9cfBVcG6Gukx-7">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="650" y="400" />
<mxPoint x="915" y="400" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-5" value="英-&gt;中翻译" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="ZaGUo094ZKQwnA8RUyoK-1">
<mxGeometry x="570" y="470" width="100" height="60" as="geometry" />
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-6" value="6: 中文语音流" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="ZaGUo094ZKQwnA8RUyoK-1" source="xxe0TyBy9cfBVcG6Gukx-7" target="xxe0TyBy9cfBVcG6Gukx-16">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="940" y="360" />
<mxPoint x="680" y="360" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-7" value="中文TTS" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="ZaGUo094ZKQwnA8RUyoK-1">
<mxGeometry x="890" y="470" width="100" height="60" as="geometry" />
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-25" value="1: 实时中文语音流" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.25;entryDx=0;entryDy=0;startArrow=none;startFill=0;" edge="1" parent="ZaGUo094ZKQwnA8RUyoK-1" source="xxe0TyBy9cfBVcG6Gukx-9" target="xxe0TyBy9cfBVcG6Gukx-16">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-9" value="User Agent" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" vertex="1" parent="ZaGUo094ZKQwnA8RUyoK-1">
<mxGeometry x="920" y="140" width="30" height="60" as="geometry" />
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-31" value="6: 英文语音流" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;" edge="1" parent="ZaGUo094ZKQwnA8RUyoK-1" source="xxe0TyBy9cfBVcG6Gukx-11" target="xxe0TyBy9cfBVcG6Gukx-16">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="310" y="40" />
<mxPoint x="560" y="40" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-11" value="英文TTS" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="ZaGUo094ZKQwnA8RUyoK-1">
<mxGeometry x="260" y="-190" width="100" height="60" as="geometry" />
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-13" value="中-&gt;英翻译" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="ZaGUo094ZKQwnA8RUyoK-1">
<mxGeometry x="570" y="-190" width="100" height="60" as="geometry" />
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-27" value="3: vad断句" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;exitX=0.25;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="ZaGUo094ZKQwnA8RUyoK-1" source="xxe0TyBy9cfBVcG6Gukx-15" target="xxe0TyBy9cfBVcG6Gukx-16">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="905" />
<mxPoint x="650" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-15" value="中文ASR" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="ZaGUo094ZKQwnA8RUyoK-1">
<mxGeometry x="880" y="-190" width="100" height="60" as="geometry" />
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-18" value="2: 听写" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="ZaGUo094ZKQwnA8RUyoK-1" source="xxe0TyBy9cfBVcG6Gukx-16" target="xxe0TyBy9cfBVcG6Gukx-3">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="560" y="360" />
<mxPoint x="310" y="360" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-20" value="4: 翻译" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;startArrow=classic;startFill=1;" edge="1" parent="ZaGUo094ZKQwnA8RUyoK-1" source="xxe0TyBy9cfBVcG6Gukx-16" target="xxe0TyBy9cfBVcG6Gukx-5">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-24" value="7: 实时中文语音流" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=none;startFill=0;exitX=1;exitY=0.75;exitDx=0;exitDy=0;" edge="1" parent="ZaGUo094ZKQwnA8RUyoK-1" source="xxe0TyBy9cfBVcG6Gukx-16" target="xxe0TyBy9cfBVcG6Gukx-9">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-26" value="2: 听写" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;startArrow=none;startFill=0;exitX=1;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="ZaGUo094ZKQwnA8RUyoK-1" source="xxe0TyBy9cfBVcG6Gukx-16" target="xxe0TyBy9cfBVcG6Gukx-15">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="680" y="40" />
<mxPoint x="930" y="40" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-28" value="4: 翻译" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=classic;startFill=1;" edge="1" parent="ZaGUo094ZKQwnA8RUyoK-1" source="xxe0TyBy9cfBVcG6Gukx-16" target="xxe0TyBy9cfBVcG6Gukx-13">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-29" value="5: 英文文本" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;startArrow=none;startFill=0;exitX=0.25;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="ZaGUo094ZKQwnA8RUyoK-1" source="xxe0TyBy9cfBVcG6Gukx-16" target="xxe0TyBy9cfBVcG6Gukx-11">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="590" />
<mxPoint x="335" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-32" value="7: 实时英文语音流" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=none;startFill=0;exitX=0;exitY=0.25;exitDx=0;exitDy=0;" edge="1" parent="ZaGUo094ZKQwnA8RUyoK-1" source="xxe0TyBy9cfBVcG6Gukx-16" target="xxe0TyBy9cfBVcG6Gukx-1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-16" value="后端服务" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="ZaGUo094ZKQwnA8RUyoK-1">
<mxGeometry x="560" y="140" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-37" value="" style="group" vertex="1" connectable="0" parent="ZaGUo094ZKQwnA8RUyoK-1">
<mxGeometry x="80" y="-190" width="80" height="350" as="geometry" />
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-33" value="" style="shape=curlyBracket;whiteSpace=wrap;html=1;rounded=1;" vertex="1" parent="xxe0TyBy9cfBVcG6Gukx-37">
<mxGeometry x="60" width="20" height="350" as="geometry" />
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-34" value="中-&gt;英" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;" vertex="1" parent="xxe0TyBy9cfBVcG6Gukx-37">
<mxGeometry y="165" width="50" height="20" as="geometry" />
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-38" value="" style="group" vertex="1" connectable="0" parent="ZaGUo094ZKQwnA8RUyoK-1">
<mxGeometry x="80" y="180" width="80" height="350" as="geometry" />
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-39" value="" style="shape=curlyBracket;whiteSpace=wrap;html=1;rounded=1;" vertex="1" parent="xxe0TyBy9cfBVcG6Gukx-38">
<mxGeometry x="60" width="20" height="350" as="geometry" />
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-40" value="英-&gt;中" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;" vertex="1" parent="xxe0TyBy9cfBVcG6Gukx-38">
<mxGeometry y="165" width="50" height="20" as="geometry" />
</mxCell>
<mxCell id="xxe0TyBy9cfBVcG6Gukx-41" value="技术要点<br><div>1、通讯协议使用WebSocket;</div><div>2、浏览器端使用recorder录音,需要开启https;</div><div>3、前端录音数据通过ArrayBuffer序列化传送到后端;</div>4、后端接收到语音流后调用听写引擎(ASR),以VAD信号作为标识,进行翻译;<br>5、翻译结果送到TTS引擎,将实时语音流传送到接收端。<br><br>技术细节<br>1、为每个用户生成用户号码,发起会话时只需要输入对方号码即可发起会话,前期实现要求双方必须都在线;<br>2、用户间的会话必须支持多对多(N:N),后端维护好会话关系(可以以会话ID作为会议室ID,类似socket.io的room概念),前期实可以只实现1:1;<br>3、demo阶段不考虑录音、转写结果的存储,打印相应的结果Log即可;<br>4、。。。" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;fontSize=16;" vertex="1" parent="ZaGUo094ZKQwnA8RUyoK-1">
<mxGeometry x="1050" y="-200" width="1070" height="230" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>