"""讯飞录音文件转写(LFASR)诊断:验证 XFYUN_APPID/XFYUN_LFASR_SECRET_KEY + 订单链路是否通。 用法(.env 在仓库根): .venv/Scripts/python.exe scripts/diag_lfasr.py <音频文件> [cn|en] 上传 → 轮询到订单完成 → 打印时长/耗时/转写文本。 ASCII 标签输出(Windows 控制台 GBK,不打 emoji);secret 不打印。 """ import os import sys import time _ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) if _ROOT not in sys.path: sys.path.insert(0, _ROOT) def _load_env(path: str) -> None: try: from dotenv import load_dotenv load_dotenv(path) return except Exception: pass try: with open(path, encoding="utf-8") as f: for line in f: line = line.strip() if not line or line.startswith("#") or "=" not in line: continue k, v = line.split("=", 1) os.environ.setdefault(k.strip(), v.strip().strip('"').strip("'")) except FileNotFoundError: pass _load_env(os.path.join(_ROOT, ".env")) from core.asr_lfasr import LfasrError, transcribe_file # noqa: E402 def main() -> int: print(f"[env] XFYUN_APPID={os.getenv('XFYUN_APPID') or '(missing)'} " f"LFASR_SECRET_KEY={'set' if os.getenv('XFYUN_LFASR_SECRET_KEY') else '(missing)'}") if len(sys.argv) < 2: print("[usage] diag_lfasr.py