chua commited on
Commit
9a6be16
·
1 Parent(s): bc8e2a9

Clarify multilingual ASR support

Browse files
Files changed (4) hide show
  1. README.md +4 -5
  2. static/app.js +0 -1
  3. static/index.html +1 -1
  4. transcribe_file.py +3 -3
README.md CHANGED
@@ -9,7 +9,7 @@ tags:
9
  - int8
10
  - int4
11
  language:
12
- - zh
13
  library_name: onnx
14
  pipeline_tag: automatic-speech-recognition
15
  license: apache-2.0
@@ -27,7 +27,7 @@ repository: https://github.com/AutoArk/open-audio-opd
27
  </div>
28
 
29
  Audio8-ASR-0.1B ONNX Runtime is a self-contained local inference package for
30
- Chinese automatic speech recognition. It includes ONNX Runtime inference code,
31
  a browser UI, a local HTTP API, tokenizer/config files, and decoder/audio-head
32
  precision variants.
33
 
@@ -163,7 +163,7 @@ engine = OnnxCacheAsrEngine(
163
  )
164
  result = engine.transcribe(
165
  Path("/path/to/audio.wav").read_bytes(),
166
- language="Chinese",
167
  max_new_tokens=128,
168
  hotwords=None,
169
  )
@@ -181,7 +181,6 @@ form data:
181
  ```bash
182
  curl --noproxy "*" -fsS -X POST http://127.0.0.1:7860/asr \
183
  -F "audio=@/path/to/audio.wav" \
184
- -F "language=Chinese" \
185
  -F "max_new_tokens=128" \
186
  -F "cache_precision=int8" \
187
  -F "audio_precision=int8" \
@@ -191,7 +190,7 @@ curl --noproxy "*" -fsS -X POST http://127.0.0.1:7860/asr \
191
  Form fields:
192
 
193
  - `audio`: required audio file. WAV is recommended; `librosa`/`soundfile` handle common formats.
194
- - `language`: optional, currently intended for `Chinese`.
195
  - `max_new_tokens`: optional generation cap; default is `128`.
196
  - `cache_precision`: optional decoder precision, one of `fp32`, `int8`, `int4`, `auto`.
197
  - `audio_precision`: optional audio tower precision, one of `fp32`, `int8`, `auto`.
 
9
  - int8
10
  - int4
11
  language:
12
+ - multilingual
13
  library_name: onnx
14
  pipeline_tag: automatic-speech-recognition
15
  license: apache-2.0
 
27
  </div>
28
 
29
  Audio8-ASR-0.1B ONNX Runtime is a self-contained local inference package for
30
+ multilingual automatic speech recognition. It includes ONNX Runtime inference code,
31
  a browser UI, a local HTTP API, tokenizer/config files, and decoder/audio-head
32
  precision variants.
33
 
 
163
  )
164
  result = engine.transcribe(
165
  Path("/path/to/audio.wav").read_bytes(),
166
+ language=None,
167
  max_new_tokens=128,
168
  hotwords=None,
169
  )
 
181
  ```bash
182
  curl --noproxy "*" -fsS -X POST http://127.0.0.1:7860/asr \
183
  -F "audio=@/path/to/audio.wav" \
 
184
  -F "max_new_tokens=128" \
185
  -F "cache_precision=int8" \
186
  -F "audio_precision=int8" \
 
190
  Form fields:
191
 
192
  - `audio`: required audio file. WAV is recommended; `librosa`/`soundfile` handle common formats.
193
+ - `language`: optional language hint. Leave empty for automatic recognition.
194
  - `max_new_tokens`: optional generation cap; default is `128`.
195
  - `cache_precision`: optional decoder precision, one of `fp32`, `int8`, `int4`, `auto`.
196
  - `audio_precision`: optional audio tower precision, one of `fp32`, `int8`, `auto`.
static/app.js CHANGED
@@ -193,7 +193,6 @@ async function uploadBlob(blob, name = "recording.wav") {
193
  latency.textContent = "--";
194
  const form = new FormData();
195
  form.append("audio", blob, name);
196
- form.append("language", "Chinese");
197
  form.append("max_new_tokens", maxTokens.value || "128");
198
  form.append("cache_precision", selectedPrecision);
199
  form.append("audio_precision", selectedAudioPrecision);
 
193
  latency.textContent = "--";
194
  const form = new FormData();
195
  form.append("audio", blob, name);
 
196
  form.append("max_new_tokens", maxTokens.value || "128");
197
  form.append("cache_precision", selectedPrecision);
198
  form.append("audio_precision", selectedAudioPrecision);
static/index.html CHANGED
@@ -1,5 +1,5 @@
1
  <!doctype html>
2
- <html lang="zh-CN">
3
  <head>
4
  <meta charset="utf-8" />
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
 
1
  <!doctype html>
2
+ <html lang="en">
3
  <head>
4
  <meta charset="utf-8" />
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
transcribe_file.py CHANGED
@@ -34,7 +34,7 @@ def transcribe_file(
34
  backend: str = "onnx_cache",
35
  cache_precision: str = "int8",
36
  audio_precision: str = "int8",
37
- language: str | None = "Chinese",
38
  max_new_tokens: int = 128,
39
  provider: str = "CPUExecutionProvider",
40
  threads: int | None = None,
@@ -80,11 +80,11 @@ def parse_args() -> argparse.Namespace:
80
  parser.add_argument("--backend", choices=["onnx_cache", "onnx"], default=os.environ.get("ASR_BACKEND", "onnx_cache"))
81
  parser.add_argument("--cache_precision", choices=["fp32", "int8", "int4", "auto"], default=os.environ.get("ASR_CACHE_PRECISION", "int8"))
82
  parser.add_argument("--audio_precision", choices=["fp32", "int8", "auto"], default=os.environ.get("ASR_AUDIO_PRECISION", "int8"))
83
- parser.add_argument("--language", default="Chinese")
84
  parser.add_argument("--max_new_tokens", type=int, default=128)
85
  parser.add_argument("--provider", default=os.environ.get("ORT_PROVIDER", "CPUExecutionProvider"))
86
  parser.add_argument("--threads", type=int, default=int(os.environ.get("ORT_THREADS", "0")))
87
- parser.add_argument("--hotwords", default=None, help="Comma or Chinese-comma separated hotwords, disabled when omitted.")
88
  parser.add_argument("--hotword_topk", type=int, default=50)
89
  parser.add_argument("--hotword_start_boost", type=float, default=6.0)
90
  parser.add_argument("--hotword_continuation_boost", type=float, default=8.0)
 
34
  backend: str = "onnx_cache",
35
  cache_precision: str = "int8",
36
  audio_precision: str = "int8",
37
+ language: str | None = None,
38
  max_new_tokens: int = 128,
39
  provider: str = "CPUExecutionProvider",
40
  threads: int | None = None,
 
80
  parser.add_argument("--backend", choices=["onnx_cache", "onnx"], default=os.environ.get("ASR_BACKEND", "onnx_cache"))
81
  parser.add_argument("--cache_precision", choices=["fp32", "int8", "int4", "auto"], default=os.environ.get("ASR_CACHE_PRECISION", "int8"))
82
  parser.add_argument("--audio_precision", choices=["fp32", "int8", "auto"], default=os.environ.get("ASR_AUDIO_PRECISION", "int8"))
83
+ parser.add_argument("--language", default=None, help="Optional language hint. Omit for automatic recognition.")
84
  parser.add_argument("--max_new_tokens", type=int, default=128)
85
  parser.add_argument("--provider", default=os.environ.get("ORT_PROVIDER", "CPUExecutionProvider"))
86
  parser.add_argument("--threads", type=int, default=int(os.environ.get("ORT_THREADS", "0")))
87
+ parser.add_argument("--hotwords", default=None, help="Comma separated hotwords, disabled when omitted.")
88
  parser.add_argument("--hotword_topk", type=int, default=50)
89
  parser.add_argument("--hotword_start_boost", type=float, default=6.0)
90
  parser.add_argument("--hotword_continuation_boost", type=float, default=8.0)