File size: 1,186 Bytes
261e6ac
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import sys, glob, torch, warnings
warnings.filterwarnings("ignore")
from transformers import pipeline
asr = pipeline("automatic-speech-recognition", model="openai/whisper-large-v3-turbo",
               device=0, torch_dtype=torch.bfloat16)
INTENDED = {
 "lyra_line1.wav": "\u6211\u5514\u4fc2\u771f\u4eba\uff0c\u4f46\u6211\u4e00\u6a23\u6703\u5531\u5230\u4f60\u5fc3\u5165\u9762\u3002",
 "lyra_line2.wav": "\u5927\u5bb6\u597d\uff0c\u6211\u4fc2 LYRA\uff0c\u4e00\u500b\u55ce\u6a5f\u5668\u5165\u9762\u51fa\u4e16\u5605\u6b4c\u624b\u3002",
 "lyra_line3.wav": "\u9999\u6e2f\u5605\u591c\u6669\uff0c\u9713\u8679\u71c8\u7167\u4f4f\u6211\u54cb\u5605\u56de\u61b6\u3002",
}
for f in sorted(glob.glob("/marimo/ai_studio/assets/audio/lyra_line*.wav")):
    name = f.split("/")[-1]
    for lang in ("yue","zh"):
        try:
            t = asr(f, generate_kwargs={"language":lang,"task":"transcribe"})["text"].strip()
            print(f"[{lang}] {name}: {t}", flush=True)
            print(f"      intended: {INTENDED.get(name,'')}", flush=True)
            break
        except Exception as e:
            print(f"[{lang}] {name} ERR {type(e).__name__}: {str(e)[:80]}", flush=True)
print("ASR_DONE")