mirror of
https://github.com/modelscope/FunASR
synced 2025-09-15 14:48:36 +08:00
add ws_server_online support wss
This commit is contained in:
parent
d3c47020b6
commit
00de451100
@ -17,9 +17,15 @@ Recorder
|
||||
### demo页面如下
|
||||

|
||||
|
||||
## 具体数据流向:
|
||||
浏览器https麦克风 --> html5 demo服务 --> js wss接口 --> nginx服务 --> ws asr online srv
|
||||
|
||||
## 两种ws_server_online连接模式
|
||||
### 1)直接连接模式,浏览器https麦克风 --> html5 demo服务 --> js wss接口 --> wss asr online srv(证书生成请往后看)
|
||||
```shell
|
||||
python ws_server_online.py --certfile server.crt --keyfile server.key --port 5921
|
||||
```
|
||||
### 2)nginx中转,浏览器https麦克风 --> html5 demo服务 --> js wss接口 --> nginx服务 --> ws asr online srv
|
||||
```shell
|
||||
python ws_server_online.py --port 5921
|
||||
```
|
||||
## 1.html5 demo服务启动
|
||||
### 启动html5服务,需要ssl证书(自己生成请往后看)
|
||||
|
||||
@ -28,17 +34,15 @@ usage: h5Server.py [-h] [--host HOST] [--port PORT] [--certfile CERTFILE]
|
||||
[--keyfile KEYFILE]
|
||||
python h5Server.py --port 1337
|
||||
```
|
||||
## 2.启动ws asr online srv
|
||||
## 2.启动ws or wss asr online srv
|
||||
[具体请看online asr](https://github.com/alibaba-damo-academy/FunASR/tree/main/funasr/runtime/python/websocket)
|
||||
目前online asr只提供ws接口,需要通过nginx将wss转发到该online asr端口上
|
||||
online asr只提供两种ws和wss模式,wss模式可以直接启动,无需nginx中转。否则需要通过nginx将wss转发到该online asr的ws端口上
|
||||
|
||||
## 3.修改wsconnecter.js里asr接口地址
|
||||
wsconnecter.js里配置online asr服务地址路径,这里配置的是nginx的wss端口
|
||||
wsconnecter.js里配置online asr服务地址路径,这里配置的是wss端口
|
||||
var Uri = "wss://xxx:xxx/"
|
||||
|
||||
## 4.配置nginx并启动
|
||||
|
||||
## 5.浏览器打开地址测试
|
||||
## 4.浏览器打开地址测试
|
||||
https://127.0.0.1:1337/static/index.html
|
||||
|
||||
|
||||
|
||||
@ -59,6 +59,7 @@ function getConnState( connState ) {
|
||||
} else if ( connState === 2 ) {
|
||||
stop();
|
||||
console.log( 'connecttion error' );
|
||||
setTimeout(function(){btnStart.disabled = true;info_div.innerHTML='connecttion error';}, 4000 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -72,6 +72,7 @@ function WebSocketConnectMethod( config ) { //定义socket连接方法类
|
||||
}
|
||||
|
||||
function onError( e ) {
|
||||
info_div.innerHTML="连接"+e;
|
||||
console.log(e);
|
||||
stateHandle(2);
|
||||
}
|
||||
|
||||
@ -7,7 +7,7 @@ import threading
|
||||
import logging
|
||||
import tracemalloc
|
||||
import numpy as np
|
||||
|
||||
import ssl
|
||||
from parse_args import args
|
||||
from modelscope.pipelines import pipeline
|
||||
from modelscope.utils.constant import Tasks
|
||||
@ -94,7 +94,16 @@ async def async_asr_online(websocket,audio_in):
|
||||
await websocket.send(message)
|
||||
|
||||
|
||||
if len(args.certfile)>0:
|
||||
ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
|
||||
|
||||
start_server = websockets.serve(ws_serve, args.host, args.port, subprotocols=["binary"], ping_interval=None)
|
||||
# Generate with Lets Encrypt, copied to this location, chown to current user and 400 permissions
|
||||
ssl_cert = args.certfile
|
||||
ssl_key = args.keyfile
|
||||
|
||||
ssl_context.load_cert_chain(ssl_cert, keyfile=ssl_key)
|
||||
start_server = websockets.serve(ws_serve, args.host, args.port, subprotocols=["binary"], ping_interval=None,ssl=ssl_context)
|
||||
else:
|
||||
start_server = websockets.serve(ws_serve, args.host, args.port, subprotocols=["binary"], ping_interval=None)
|
||||
asyncio.get_event_loop().run_until_complete(start_server)
|
||||
asyncio.get_event_loop().run_forever()
|
||||
Loading…
Reference in New Issue
Block a user