From c2e4e3c2e9be855277d9f4fa9cd0544892ff829a Mon Sep 17 00:00:00 2001
From: 游雁 <zhifu.gzf@alibaba-inc.com>
Date: 星期三, 30 八月 2023 09:57:30 +0800
Subject: [PATCH] Merge branch 'main' of github.com:alibaba-damo-academy/FunASR add

---
 funasr/runtime/html5/readme.md |  161 ++++++++++++++++++++++++-----------------------------
 1 files changed, 73 insertions(+), 88 deletions(-)

diff --git a/funasr/runtime/html5/readme.md b/funasr/runtime/html5/readme.md
index e60d588..2cde826 100644
--- a/funasr/runtime/html5/readme.md
+++ b/funasr/runtime/html5/readme.md
@@ -1,108 +1,93 @@
-# online asr demo for html5
+([绠�浣撲腑鏂嘳(./readme_zh.md)|English)
 
-## requirement
-### python
-```shell
-flask
-gevent
-pyOpenSSL
-```
+# Speech Recognition Service Html5 Client Access Interface
 
-### javascript
-[html5 recorder.js](https://github.com/xiangyuecn/Recorder)
-```shell
-Recorder 
-```
+The server deployment uses the websocket protocol. The client can support html5 webpage access and microphone input or file input. There are two ways to access the service:
+- Method 1: 
 
-### demo
-![img](https://github.com/alibaba-damo-academy/FunASR/tree/main/funasr/runtime/html5/demo.gif)
+  Directly connect to the html client, manually download the client ([click here](https://github.com/alibaba-damo-academy/FunASR/tree/main/funasr/runtime/html5/static)) to the local computer, and open the index.html webpage to enter the wss address and port number.
 
-## wss or ws protocol for ws_server_online
-1) wss: browser microphone data --> html5 demo server --> js wss api --> wss asr online srv #for certificate generation just look back
+- Method 2: 
 
-2) ws: browser microphone data  --> html5 demo server --> js wss api --> nginx wss server --> ws asr online srv
+   Html5 server, automatically download the client to the local computer, and support access by mobile phones and other devices.
 
-## 1.html5 demo start
-### ssl certificate is required
+## Starting Speech Recognition Service
+
+Support the deployment of Python and C++ versions, where
+
+- Python version
+  
+  Directly deploy the Python pipeline, support streaming real-time speech recognition models, offline speech recognition models, streaming offline integrated error correction models, and output text with punctuation marks. Single server, supporting a single client.
+
+- C++ version
+  
+  funasr-runtime-sdk, supports one-key deployment, version 0.1.0, supports offline file transcription. Single server, supporting requests from hundreds of clients.
+
+### Starting Python Version Service
+
+#### Install Dependencies
 
 ```shell
-usage: h5Server.py [-h] [--host HOST] [--port PORT] [--certfile CERTFILE]
-                   [--keyfile KEYFILE]
-python h5Server.py --port 1337
-```
-## 2.asr online srv start
-[detail for online asr](https://github.com/alibaba-damo-academy/FunASR/tree/main/funasr/runtime/python/websocket)
-Online asr provides wss or ws way. if started in ws way, nginx is required for relay.
-### wss way, ssl certificate is required
-```shell
-python ws_server_online.py --certfile server.crt --keyfile server.key  --port 5921
-```
-### ws way
-```shell
-python ws_server_online.py  --port 5921
+pip3 install -U modelscope funasr flask
+# Users in mainland China, if encountering network issues, can install with the following command:
+# pip3 install -U modelscope funasr -i https://mirror.sjtu.edu.cn/pypi/web/simple
+git clone https://github.com/alibaba/FunASR.git && cd FunASR
 ```
 
-## 3.open browser to access html5 demo
-https://youraddress:port/static/index.html
+#### Start ASR Service
 
-## 4.modify asr address in html according to your environment
-asr address in index.html must be wss
-
-
-
-## certificate generation by yourself
-generated certificate may not suitable for all browsers due to security concerns. you'd better buy or download an authenticated ssl certificate from authorized agency.
+#### wss Method
 
 ```shell
-### 1) Generate a private key
-openssl genrsa -des3 -out server.key 1024
- 
-### 2) Generate a csr file
-openssl req -new -key server.key -out server.csr
- 
-### 3) Remove pass
-cp server.key server.key.org 
-openssl rsa -in server.key.org -out server.key
- 
-### 4) Generated a crt file, valid for 1 year
-openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
+cd funasr/runtime/python/websocket
+python funasr_wss_server.py --port 10095
 ```
 
-## nginx configuration (you can skip it if you known)
-https and wss protocol are required by browsers when want to open microphone and websocket.  
-if [online asr](https://github.com/alibaba-damo-academy/FunASR/tree/main/funasr/runtime/python/websocket) run in ws way, you should use nginx to convert wss to ws.
-### nginx wss->ws configuration example
+For detailed parameter configuration and analysis, please click [here](https://github.com/alibaba-damo-academy/FunASR/tree/main/funasr/runtime/python/websocket).
+
+#### Html5 Service (Optional)
+
+If you need to use the client method mentioned above to access it, you can start the html5 service
+
 ```shell
-events {                                                                                                            [0/1548]
-    worker_connections  1024;
-    accept_mutex on;
-  }
-http {
-  error_log  error.log;
-  access_log  access.log;
-  server {
-
-    listen 5921 ssl http2;  # nginx listen port for wss
-    server_name www.test.com;
-
-    ssl_certificate     /funasr/server.crt;
-    ssl_certificate_key /funasr/server.key;
-    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
-    ssl_ciphers         HIGH:!aNULL:!MD5;
-
-    location /wss/ {
-
-
-      proxy_pass http://127.0.0.1:1111/;  # asr online model ws address and port
-      proxy_http_version 1.1;
-      proxy_set_header Upgrade $http_upgrade;
-      proxy_set_header Connection "upgrade";
-      proxy_read_timeout 600s;
-
-    }
-  }
+h5Server.py [-h] [--host HOST] [--port PORT] [--certfile CERTFILE] [--keyfile KEYFILE]             
 ```
+As shown in the example below, pay attention to the IP address. If accessing from another device (such as a mobile phone), you need to set the IP address to the real public IP address.
+```shell
+cd funasr/runtime/html5
+python h5Server.py --host 0.0.0.0 --port 1337
+```
+
+After starting, enter ([https://127.0.0.1:1337/static/index.html](https://127.0.0.1:1337/static/index.html)) in the browser to access it.
+
+### Starting C++ Version Service
+
+Since there are many dependencies for C++, it is recommended to deploy it using docker, which supports one-key start of the service.
+
+
+```shell
+curl -O https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/shell/funasr-runtime-deploy-offline-cpu-zh.sh;
+sudo bash funasr-runtime-deploy-offline-cpu-zh.sh install --workspace /root/funasr-runtime-resources
+```
+For detailed parameter configuration and analysis, please click [here](https://github.com/alibaba-damo-academy/FunASR/blob/main/funasr/runtime/docs/SDK_tutorial_zh.md).
+
+## Client Testing
+
+### Method 1
+
+Directly connect to the html client, manually download the client ([click here](https://github.com/alibaba-damo-academy/FunASR/tree/main/funasr/runtime/html5/static)) to the local computer, and open the index.html webpage, enter the wss address and port number to use.
+
+### Method 2
+
+Html5 server, automatically download the client to the local computer, and support access by mobile phones and other devices. The IP address needs to be consistent with the html5 server. If it is a local computer, you can use 127.0.0.1.
+
+```shell
+https://127.0.0.1:1337/static/index.html
+```
+
+Enter the wss address and port number to use.
+
 
 ## Acknowledge
 1. This project is maintained by [FunASR community](https://github.com/alibaba-damo-academy/FunASR).
-2. We acknowledge [AiHealthx](http://www.aihealthx.com/) for contributing the html5 demo.
\ No newline at end of file
+2. We acknowledge [AiHealthx](http://www.aihealthx.com/) for contributing the html5 demo.

--
Gitblit v1.9.1