Clarify multilingual ASR support
Browse files- README.md +4 -5
- static/app.js +0 -1
- static/index.html +1 -1
- transcribe_file.py +3 -3
README.md
CHANGED
|
@@ -9,7 +9,7 @@ tags:
|
|
| 9 |
- int8
|
| 10 |
- int4
|
| 11 |
language:
|
| 12 |
-
-
|
| 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 |
-
|
| 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=
|
| 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
|
| 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="
|
| 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 =
|
| 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="
|
| 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
|
| 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)
|