LingChat
LingChat
最近在玩DeepSeek Harness,无意中发现了很多一直想做的想法,已经被别人做出来了。譬如这个叫LingChat的基于DeepSeek的鲸鱼娘的galagame游戏
作者的Github:https://github.com/SlimeBoyOwO/LingChat
配置TTS(最麻烦的)
在配置TTS的时候,走了很多弯路,特别是用GPU来跑。不过用Workbuddy+DeepSeekV4Flash修复了。修复的方法见下面,就是替换了最新的DirectML.dll,重启lingchat就好了。
还有几个配置必须要注意:
TTS的本地运行配置在【高级设置】【本地TTS】里面


要在【角色】里面配置TTS


缺了任何一步TTS都不能用。
如果你GPU跑不了TTS,就可以尝试我下面的解决方法。我也是用Workbuddy+DeepSeekV4Flash帮解决的,记得给AI看lingchat的日志。
LingChat 本地 TTS 走 GPU(DirectML)修复手册
适用环境:Windows 10(本机 22H2 / Build 19045),NVIDIA GTX 1650(4GB)
归档日期:2026-08-31
修复状态:✅ 已验证成功(GPU 显存占用 879 MiB,DML 推理确认运行)
1. 问题现象
- LingChat 本地 TTS 合成语音极慢(只有 CPU 推理速度)
- 应用日志
data\log\app\*.log反复出现如下错误:
1 | ERROR ort::ep: An error occurred when attempting to register `DmlExecutionProvider`: |
887A0004=DXGI_ERROR_UNSUPPORTED(设备接口或功能级别不受支持)
2. 根因分析
一句话结论:系统的 directml.dll 版本太旧(2020 年构建),不支持 ONNX Runtime 要求的 DML Feature Level 5.0,导致 DML 执行提供程序注册失败,应用回退到 CPU。
详细原因链:
| 环节 | 说明 |
|---|---|
| ONNX Runtime 的 DML EP | 初始化时调用 DMLCreateDevice1(..., DML_FEATURE_LEVEL_5_0, ...)(对应 dml_provider_factory.cc:551),要求显卡/DLL 支持 DML Feature Level 5.0 |
| 系统 DirectML.dll | C:\Windows\System32\directml.dll 版本为 1.0.200713-1013.1(2020-07-13 构建),只支持旧 Feature Level → 返回 887A0004 |
| 影响范围 | 无论选 AMD 核显还是 NVIDIA 独显都会失败(是 DLL 层面的问题,不是显卡选择问题) |
曾误判的方向(无效,供参考):
- 双显卡(AMD Vega 10 核显 + NVIDIA GTX 1650)下 DML 选错 GPU —— 不是根因
- 注册表
HKCU\Software\Microsoft\DirectX\UserGpuPreferences设置GpuPreference=2—— 无效。原因:该注册表只影响 DXGI 1.6 的EnumAdaptersByGpuPreference,不影响 ONNX Runtime 使用的D3D12CreateDevice(nullptr)默认适配器选择
3. 诊断方法(下次遇到可先自查)
1 | # 1. 查看系统 DirectML.dll 版本(若为 2020 年左右的 1.0.200713 即根因) |
4. 修复步骤(标准流程)
4.1 获取新版 DirectML.dll
方法一:使用本手册同目录的备份文件(推荐,已归档)
1 | 直接使用本文件夹内的 DirectML.dll(版本 1.15.4,支持 FL 5.0) |
方法二:从 NuGet 重新下载
1 | # 查询最新版本 |
4.2 部署到应用目录
1 | Copy-Item "DirectML.dll路径" "C:\Users\Brian\AppData\Local\LingChat\DirectML.dll" -Force |
原理:ONNX Runtime 加载 directml.dll 时优先从应用 exe 所在目录查找,因此放在 C:\Users\Brian\AppData\Local\LingChat\ 下会优先于系统目录的旧版被加载。不动系统文件,可随时删除回滚。
4.3 重启 LingChat
关闭并重新打开 LingChat,新 DLL 在进程启动时加载。
5. 验证方法
1 | # 1. 日志确认:重启后无 DmlExecutionProvider 错误 |
6. 升级 LingChat 后问题复发怎么办
应用升级可能覆盖/清理 DirectML.dll,导致同样问题复发。处理步骤:
重新复制归档的 DLL 到应用目录:
1
Copy-Item "C:\Users\Brian\WorkBuddy\2026-08-31-15-35-50\LingChat-DML修复\DirectML.dll" "C:\Users\Brian\AppData\Local\LingChat\DirectML.dll" -Force
重启 LingChat
按第 5 节验证
若新版应用已内置兼容的 DirectML/ONNX Runtime,则无需处理;是否内置可通过升级后日志是否报 887A0004 判断。
7. 相关配置信息(备忘)
| 项目 | 位置 |
|---|---|
| 推理设备配置 | C:\Users\Brian\AppData\Roaming\com.noiq.ling-chat\settings.json → features.local_tts_device |
| 设备值格式 | cpu / gpu / npu / device:<id>(id 为 DXGI 枚举索引) |
| UI 设置路径 | 设置 → 高级设置 → 本地 TTS → 推理设备 |
| 本地 TTS 模型 | C:\Users\Brian\AppData\Local\LingChat\data\models\tts-local\(ling-v2 249MB + deberta) |
| 应用日志 | C:\Users\Brian\AppData\Local\LingChat\data\log\app\ |
| 项目源码 | GitHub: SlimeBoyOwO/LingChat;TTS 引擎依赖 sbv2_core(shadow01a/sbv2-api) |
注意:UI 中显示的设备编号与实际驱动的显卡可能存在映射差异(本机 device:0 实际驱动 NVIDIA)。以 nvidia-smi 显存占用和实际语音质量为准。
8. 文件清单
| 文件 | 说明 |
|---|---|
DirectML.dll |
修复用运行库(Microsoft.AI.DirectML 1.15.4,win-x64,18.5MB) |
LingChat-DML修复手册.md |
本手册 |