This commit is contained in:
雾聪 2023-06-13 19:40:06 +08:00
commit 720c048410
9 changed files with 52 additions and 31 deletions

View File

@ -493,9 +493,9 @@ class Speech2TextParaformer:
else:
if pre_token_length[i] == 0:
yseq = torch.tensor(
[self.asr_model.sos] + [self.asr_model.eos], device=yseq.device
[self.asr_model.sos] + [self.asr_model.eos], device=pre_acoustic_embeds.device
)
score = torch.tensor(0.0, device=yseq.device)
score = torch.tensor(0.0, device=pre_acoustic_embeds.device)
else:
yseq = am_scores.argmax(dim=-1)
score = am_scores.max(dim=-1)[0]

View File

@ -296,13 +296,14 @@ class E2EVadModel(nn.Module):
self.sil_frame = 0
self.frame_probs = []
assert self.output_data_buf[-1].contain_seg_end_point == True
drop_frames = int(self.output_data_buf[-1].end_ms / self.vad_opts.frame_in_ms)
real_drop_frames = drop_frames - self.last_drop_frames
self.last_drop_frames = drop_frames
self.data_buf_all = self.data_buf_all[real_drop_frames * int(self.vad_opts.frame_in_ms * self.vad_opts.sample_rate / 1000):]
self.decibel = self.decibel[real_drop_frames:]
self.scores = self.scores[:, real_drop_frames:, :]
if self.output_data_buf:
assert self.output_data_buf[-1].contain_seg_end_point == True
drop_frames = int(self.output_data_buf[-1].end_ms / self.vad_opts.frame_in_ms)
real_drop_frames = drop_frames - self.last_drop_frames
self.last_drop_frames = drop_frames
self.data_buf_all = self.data_buf_all[real_drop_frames * int(self.vad_opts.frame_in_ms * self.vad_opts.sample_rate / 1000):]
self.decibel = self.decibel[real_drop_frames:]
self.scores = self.scores[:, real_drop_frames:, :]
def ComputeDecibel(self) -> None:
frame_sample_length = int(self.vad_opts.frame_length_ms * self.vad_opts.sample_rate / 1000)

View File

@ -41,7 +41,7 @@ python h5Server.py --host 0.0.0.0 --port 1337
`Tips:` asr service and html5 service should be deployed on the same device.
```shell
cd ../python/websocket
python wss_srv_asr.py --port 1095
python wss_srv_asr.py --port 10095
```

View File

@ -49,7 +49,7 @@ python h5Server.py --host 0.0.0.0 --port 1337
#### wss方式
```shell
cd ../python/websocket
python wss_srv_asr.py --port 1095
python wss_srv_asr.py --port 10095
```
### 浏览器打开地址

View File

@ -19,7 +19,7 @@
<div class="div_class_recordControl">
asr服务器地址(必填):
<br>
<input id="wssip" type="text" style=" width: 100%;height:100%" value="wss://127.0.0.1:1095/"/>
<input id="wssip" type="text" style=" width: 100%;height:100%" value="wss://127.0.0.1:10095/"/>
<br>
<br>
<div style="border:2px solid #ccc;">
@ -36,6 +36,7 @@
<br>
<div id="info_div">请点击开始</div>
<div class="div_class_buttons">
<button id="btnConnect">连接</button>
<button id="btnStart">开始</button>
<button id="btnStop">停止</button>

View File

@ -23,12 +23,14 @@ var rec = Recorder({
var sampleBuf=new Int16Array();
// 定义按钮响应事件
var btnStart = document.getElementById('btnStart');
btnStart.onclick = start;
btnStart.onclick = record;
var btnStop = document.getElementById('btnStop');
btnStop.onclick = stop;
btnStop.disabled = true;
btnStart.disabled = true;
btnConnect= document.getElementById('btnConnect');
btnConnect.onclick = start;
var rec_text="";
var offline_text="";
@ -38,7 +40,7 @@ var info_div = document.getElementById('info_div');
//now_ipaddress=now_ipaddress.replace("https://","wss://");
//now_ipaddress=now_ipaddress.replace("static/index.html","");
//document.getElementById('wssip').value=now_ipaddress;
function getAsrMode(){
var item = null;
@ -64,16 +66,18 @@ function getJsonMessage( jsonMsg ) {
var asrmodel=JSON.parse(jsonMsg.data)['mode'];
if(asrmodel=="2pass-offline")
{
offline_text=offline_text+rectxt.replace(/ +/g,"");
offline_text=offline_text+rectxt; //.replace(/ +/g,"");
rec_text=offline_text;
}
else
{
rec_text=rec_text+rectxt.replace(/ +/g,"");
rec_text=rec_text+rectxt; //.replace(/ +/g,"");
}
var varArea=document.getElementById('varArea');
varArea.value=rec_text;
console.log( "offline_text: " + asrmodel+","+offline_text);
console.log( "rec_text: " + rec_text);
}
@ -82,11 +86,14 @@ function getJsonMessage( jsonMsg ) {
function getConnState( connState ) {
if ( connState === 0 ) {
rec.open( function(){
rec.start();
console.log("开始录音");
//rec.open( function(){
// rec.start();
// console.log("开始录音");
});
//});
btnStart.disabled = false;
btnConnect.disabled = true;
info_div.innerHTML='连接成功!请点击开始';
} else if ( connState === 1 ) {
//stop();
} else if ( connState === 2 ) {
@ -95,11 +102,19 @@ function getConnState( connState ) {
alert("连接地址"+document.getElementById('wssip').value+"失败,请检查asr地址和端口并确保h5服务和asr服务在同一个域内。或换个浏览器试试。");
btnStart.disabled = true;
info_div.innerHTML='请点击开始';
info_div.innerHTML='请点击连接';
}
}
function record()
{
rec.open( function(){
rec.start();
console.log("开始");
btnStart.disabled = true;
});
}
// 识别启动、停止、清空操作
function start() {
@ -107,14 +122,15 @@ function start() {
clear();
//控件状态更新
info_div.innerHTML="正在连接asr服务器请等待...";
//启动连接
var ret=wsconnecter.wsStart();
if(ret==1){
isRec = true;
btnStart.disabled = true;
btnStop.disabled = false;
info_div.innerHTML="正在连接asr服务器请等待...";
btnConnect.disabled=true;
}
}
@ -147,7 +163,10 @@ function stop() {
btnStop.disabled = true;
setTimeout(function(){
console.log("call stop ws!");
wsconnecter.wsStop();btnStart.disabled = false;info_div.innerHTML="请点击开始";}, 3000 );
wsconnecter.wsStop();
btnStart.disabled = true;
btnConnect.disabled=false;
info_div.innerHTML="请点击连接";}, 3000 );
rec.stop(function(blob,duration){
console.log(blob);

View File

@ -33,7 +33,7 @@ parser.add_argument("--ngpu",
help="0 for cpu, 1 for gpu")
parser.add_argument("--ncpu",
type=int,
default=1,
default=4,
help="cpu cores")
parser.add_argument("--certfile",
type=str,

View File

@ -67,9 +67,9 @@ async def ws_reset(websocket):
websocket.param_dict_asr_online = {"cache": dict()}
websocket.param_dict_vad = {'in_cache': dict(), "is_final": True}
websocket.param_dict_asr_online["is_final"]=True
audio_in=b''.join(np.zeros(int(16000),dtype=np.int16))
inference_pipeline_vad(audio_in=audio_in, param_dict=websocket.param_dict_vad)
inference_pipeline_asr_online(audio_in=audio_in, param_dict=websocket.param_dict_asr_online)
# audio_in=b''.join(np.zeros(int(16000),dtype=np.int16))
# inference_pipeline_vad(audio_in=audio_in, param_dict=websocket.param_dict_vad)
# inference_pipeline_asr_online(audio_in=audio_in, param_dict=websocket.param_dict_asr_online)
await websocket.close()

View File

@ -1 +1 @@
0.5.8
0.6.1