# 本地语音转写服务(eai_agentplatform-asr.service)的环境变量样例。 # # 装机:sudo cp deploy/asr.env /opt/eai_agentplatform-asr/asr.env # 端口不在这里配 —— 它写在 unit 的 ExecStart 上(--port 8090), # 与后端 config/ai_config.json 里 audio_route_local_whisper.base_url 的 8090 # 是同一个值。改端口要同时改这两处,否则后端起不来时界面会显示 # 「本地路由不健康」,而真实原因是对不上端口。 # 这里注释掉的那行只是记录这个耦合,别指望它生效: # ASR_PORT=8090 # 计算精度。8G 显存要和 llama-server 共用,float16 会 OOM(原型机实测, # 见 bugs_and_errors.md E06)。int8_float16 是这台机器的可用档位。 ASR_COMPUTE_TYPE=int8_float16 # 模型目录**不在这里配**:serve.py 按 `脚本所在目录/models` 找,也就是 # /opt/eai_agentplatform-asr/models(软链或实体目录都行,见 DELIVERY.md 第 1 节)。 # 把模型放到别处就得改 asr_core.py,不如把目录放对。 # 家目录指到 cache/,**必须有这一行**。 # # 原型机上服务以 eaiadmin 跑,~ 可写,所以从没暴露过;装成服务后两件事同时变: # unit 里 ProtectHome=true 挡住 /home,而系统账号 eai_agentplatform 的家目录 # (/home/eai_agentplatform)压根不存在。pyannote 起步时要写 # ~/.pyannote/database.yml,于是每次转写都以 PermissionError 收场 —— # 而报错发生在说话人分离那一段,看起来像模型坏了,其实是没地方写配置。 # # 指到 cache/ 是因为 unit 的 ReadWritePaths 只放开了这一个目录; # 顺带让 torch / matplotlib 之类的 dotfile 也落在同一个可写位置。 # 换目录要连 unit 的 ReadWritePaths 一起改。 HOME=/opt/eai_agentplatform-asr/cache # 离线开关。权重全部是本地文件(faster-whisper 直接读目录、pyannote 的 # config.yaml 已改写成本地文件路径),正常情况下一个网络请求都不发。 # 这两个开关是安全网:万一哪条分支想回 huggingface.co,本机到那边是**不通**的, # 表现会是挂起几分钟而不是报错 —— 加上开关,它立刻失败,日志里一眼能看出来。 HF_HOME=/opt/eai_agentplatform-asr/cache/huggingface HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 # 故意没有 PYTORCH_CUDA_ALLOC_CONF 之类的分配器开关:这台机器的显存配置 # (int8_float16 + 转写前后释放模型)是实测调出来的,见 bugs_and_errors.md E06。 # 没在这台机器上验过的旋钮不要加进来 —— 加错了表现是 OOM, # 而 OOM 看起来又像「模型太大」,很容易往错误的方向查。