mirror of
https://github.com/modelscope/FunASR
synced 2025-09-15 14:48:36 +08:00
funasr sdk
This commit is contained in:
parent
af36cb6b7f
commit
748fabf22f
@ -169,7 +169,7 @@ After completing the deployment of FunASR offline file transcription service on
|
||||
|
||||
### python-client
|
||||
```shell
|
||||
python wss_client_asr.py --host "127.0.0.1" --port 10095 --mode offline --audio_in "./data/wav.scp" --send_without_sleep --output_dir "./results"
|
||||
python funasr_wss_client.py --host "127.0.0.1" --port 10095 --mode offline --audio_in "./data/wav.scp" --send_without_sleep --output_dir "./results"
|
||||
```
|
||||
|
||||
Introduction to command parameters:
|
||||
|
||||
@ -186,7 +186,7 @@ python -m funasr.export.export_model --model-name /path/to/finetune/speech_paraf
|
||||
|
||||
### python-client
|
||||
```shell
|
||||
python wss_client_asr.py --host "127.0.0.1" --port 10095 --mode offline --audio_in "./data/wav.scp" --send_without_sleep --output_dir "./results"
|
||||
python funasr_wss_client.py --host "127.0.0.1" --port 10095 --mode offline --audio_in "./data/wav.scp" --send_without_sleep --output_dir "./results"
|
||||
```
|
||||
命令参数介绍:
|
||||
```text
|
||||
|
||||
@ -275,7 +275,7 @@ Requirement already satisfied: click>=8.0.4 in /usr/local/lib/python3.8/dist-pac
|
||||
Looking in indexes: http://mirrors.cloud.aliyuncs.com/pypi/simple/
|
||||
Requirement already satisfied: websockets in /usr/local/lib/python3.8/dist-packages (from -r /root/funasr_samples/python/requirements_client.txt (line 1)) (11.0.3)
|
||||
|
||||
Run python3 /root/funasr_samples/python/wss_client_asr.py --host 127.0.0.1 --port 10095 --mode offline --audio_in /root/funasr_samples/audio/asr_example.wav --send_without_sleep --output_dir ./funasr_samples/python
|
||||
Run python3 /root/funasr_samples/python/funasr_wss_client.py --host 127.0.0.1 --port 10095 --mode offline --audio_in /root/funasr_samples/audio/asr_example.wav --send_without_sleep --output_dir ./funasr_samples/python
|
||||
|
||||
...
|
||||
...
|
||||
@ -284,7 +284,7 @@ Requirement already satisfied: websockets in /usr/local/lib/python3.8/dist-packa
|
||||
Exception: sent 1000 (OK); then received 1000 (OK)
|
||||
end
|
||||
|
||||
If failed, you can try (python3 /root/funasr_samples/python/wss_client_asr.py --host 127.0.0.1 --port 10095 --mode offline --audio_in /root/funasr_samples/audio/asr_example.wav --send_without_sleep --output_dir ./funasr_samples/python) in your Shell.
|
||||
If failed, you can try (python3 /root/funasr_samples/python/funasr_wss_client.py --host 127.0.0.1 --port 10095 --mode offline --audio_in /root/funasr_samples/audio/asr_example.wav --send_without_sleep --output_dir ./funasr_samples/python) in your Shell.
|
||||
|
||||
```
|
||||
|
||||
@ -292,7 +292,7 @@ end
|
||||
|
||||
If you want to directly run the client for testing, you can refer to the following simple instructions, taking the Python version as an example:
|
||||
```shell
|
||||
python3 wss_client_asr.py --host "127.0.0.1" --port 10095 --mode offline --audio_in "../audio/asr_example.wav" --send_without_sleep --output_dir "./results"
|
||||
python3 funasr_wss_client.py --host "127.0.0.1" --port 10095 --mode offline --audio_in "../audio/asr_example.wav" --send_without_sleep --output_dir "./results"
|
||||
```
|
||||
|
||||
Command parameter instructions:
|
||||
|
||||
@ -37,7 +37,7 @@ sudo bash funasr-runtime-deploy-offline-cpu-zh.sh install --workspace /root/funa
|
||||
我们以Python语言客户端为例,进行说明,支持多种音频格式输入(.wav, .pcm, .mp3等),也支持视频输入(.mp4等),以及多文件列表wav.scp输入,其他版本客户端请参考文档([点击此处](#客户端用法详解))
|
||||
|
||||
```shell
|
||||
python3 wss_client_asr.py --host "127.0.0.1" --port 10095 --mode offline --audio_in "../audio/asr_example.wav" --output_dir "./results"
|
||||
python3 funasr_wss_client.py --host "127.0.0.1" --port 10095 --mode offline --audio_in "../audio/asr_example.wav" --output_dir "./results"
|
||||
```
|
||||
|
||||
## 客户端用法详解
|
||||
@ -56,7 +56,7 @@ python3 wss_client_asr.py --host "127.0.0.1" --port 10095 --mode offline --audio
|
||||
若想直接运行client进行测试,可参考如下简易说明,以python版本为例:
|
||||
|
||||
```shell
|
||||
python3 wss_client_asr.py --host "127.0.0.1" --port 10095 --mode offline --audio_in "../audio/asr_example.wav" --output_dir "./results"
|
||||
python3 funasr_wss_client.py --host "127.0.0.1" --port 10095 --mode offline --audio_in "../audio/asr_example.wav" --output_dir "./results"
|
||||
```
|
||||
|
||||
命令参数说明:
|
||||
|
||||
@ -8,7 +8,7 @@ import argparse
|
||||
import json
|
||||
import traceback
|
||||
from multiprocessing import Process
|
||||
from funasr.fileio.datadir_writer import DatadirWriter
|
||||
# from funasr.fileio.datadir_writer import DatadirWriter
|
||||
|
||||
import logging
|
||||
|
||||
@ -72,11 +72,13 @@ from queue import Queue
|
||||
|
||||
voices = Queue()
|
||||
offline_msg_done=False
|
||||
|
||||
ibest_writer = None
|
||||
|
||||
if args.output_dir is not None:
|
||||
writer = DatadirWriter(args.output_dir)
|
||||
ibest_writer = writer[f"1best_recog"]
|
||||
# if os.path.exists(args.output_dir):
|
||||
# os.remove(args.output_dir)
|
||||
|
||||
if not os.path.exists(args.output_dir):
|
||||
os.makedirs(args.output_dir)
|
||||
|
||||
|
||||
async def record_microphone():
|
||||
@ -186,6 +188,10 @@ async def message(id):
|
||||
text_print = ""
|
||||
text_print_2pass_online = ""
|
||||
text_print_2pass_offline = ""
|
||||
if args.output_dir is not None:
|
||||
ibest_writer = open(os.path.join(args.output_dir, "text.{}".format(id)), "w+", encoding="utf-8")
|
||||
else:
|
||||
ibest_writer = None
|
||||
try:
|
||||
while True:
|
||||
|
||||
@ -193,13 +199,15 @@ async def message(id):
|
||||
meg = json.loads(meg)
|
||||
wav_name = meg.get("wav_name", "demo")
|
||||
text = meg["text"]
|
||||
if ibest_writer is not None:
|
||||
ibest_writer["text"][wav_name] = text
|
||||
|
||||
if ibest_writer is not None:
|
||||
text_write_line = "{}\t{}\n".format(wav_name, text)
|
||||
ibest_writer.write(text_write_line)
|
||||
|
||||
if meg["mode"] == "online":
|
||||
text_print += "{}".format(text)
|
||||
text_print = text_print[-args.words_max_print:]
|
||||
# os.system('clear')
|
||||
os.system('clear')
|
||||
print("\rpid" + str(id) + ": " + text_print)
|
||||
elif meg["mode"] == "offline":
|
||||
text_print += "{}".format(text)
|
||||
@ -216,7 +224,7 @@ async def message(id):
|
||||
text_print = text_print_2pass_offline + "{}".format(text)
|
||||
text_print_2pass_offline += "{}".format(text)
|
||||
text_print = text_print[-args.words_max_print:]
|
||||
# os.system('clear')
|
||||
os.system('clear')
|
||||
print("\rpid" + str(id) + ": " + text_print)
|
||||
offline_msg_done=True
|
||||
|
||||
@ -227,17 +235,6 @@ async def message(id):
|
||||
|
||||
|
||||
|
||||
async def print_messge():
|
||||
global websocket
|
||||
while True:
|
||||
try:
|
||||
meg = await websocket.recv()
|
||||
meg = json.loads(meg)
|
||||
print(meg)
|
||||
except Exception as e:
|
||||
print("Exception:", e)
|
||||
#traceback.print_exc()
|
||||
exit(0)
|
||||
|
||||
async def ws_client(id, chunk_begin, chunk_size):
|
||||
if args.audio_in is None:
|
||||
|
||||
@ -243,7 +243,7 @@ async def async_asr(websocket, audio_in):
|
||||
param_dict=websocket.param_dict_punc)
|
||||
# print("offline", rec_result)
|
||||
if 'text' in rec_result:
|
||||
message = json.dumps({"mode": "2pass-offline", "text": rec_result["text"], "wav_name": websocket.wav_name})
|
||||
message = json.dumps({"mode": websocket.mode, "text": rec_result["text"], "wav_name": websocket.wav_name})
|
||||
await websocket.send(message)
|
||||
|
||||
|
||||
@ -260,7 +260,7 @@ async def async_asr_online(websocket, audio_in):
|
||||
if "text" in rec_result:
|
||||
if rec_result["text"] != "sil" and rec_result["text"] != "waiting_for_more_voice":
|
||||
# print("online", rec_result)
|
||||
message = json.dumps({"mode": "2pass-online", "text": rec_result["text"], "wav_name": websocket.wav_name})
|
||||
message = json.dumps({"mode": websocket.mode, "text": rec_result["text"], "wav_name": websocket.wav_name})
|
||||
await websocket.send(message)
|
||||
|
||||
if len(args.certfile)>0:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user