Repository navigation
[BUG] STT in Godot fails with ONNXRuntimeError while registering CUDAExecutionProvider with 'No such file or directory' #646
Description
Activity
- changed the title
[-][BUG] STT fails with ONNXRuntimeError while registering `CUDAExecutionProvider` with _No such file or directory_[/-][+][BUG] STT fails with ONNXRuntimeError while registering `CUDAExecutionProvider` with 'No such file or directory'[/+]on Jul 27, 2026 - changed the title
[-][BUG] STT fails with ONNXRuntimeError while registering `CUDAExecutionProvider` with 'No such file or directory'[/-][+][BUG] STT fails with `ONNXRuntimeError` while registering `CUDAExecutionProvider` with 'No such file or directory'[/+]on Jul 27, 2026 - changed the title
[-][BUG] STT fails with `ONNXRuntimeError` while registering `CUDAExecutionProvider` with 'No such file or directory'[/-][+][BUG] STT in Godot fails with `ONNXRuntimeError` while registering `CUDAExecutionProvider` with 'No such file or directory'[/+]on Jul 27, 2026 Hello there, we tried reproducing the issue at one of our computers with AMD and were not able to reproduce. You are correctly assuming that we currently only support CUDA, and default to CPU if it is not available.
However, the logtrace looks strange:
2026-07-27T09:02:51.270541Z INFO ort::logging: Discovered OrtHardwareDevice {vendor_id:0x1002, device_id:0x67df, vendor:, type:1, metadata: [card_idx=1, pci_bus_id=0000:08:00.0, ]} 2026-07-27T09:02:51.270687Z INFO ort::logging: Discovered OrtHardwareDevice {vendor_id:0x1022, device_id:0x0, vendor:AMD, type:0, metadata: []}The second device is correctly identified as
vendor:AMD, the first one isvendor:, which I think is the culprit of the library selecting the card as CUDA.Are your drivers up to date? In the meantime, I will look into it at the onnx side.
Hey @krebso thanks for looking into this and trying to reproduce!
I checked the system on my side, and everything seems to be set up correctly. I don't appear to have a second GPU or another (or broken) GPU driver installed. My system and drivers are up to date.
Some additional checks I did:
lspci -nnshows only one VGA device: my Radeon RX 570 (1002:67df).lsmodshowsamdgpuloaded and noradeonmodule.glxinforeportsAMD Radeon RX 570 Series (radeonsi, polaris10, ACO).vulkaninforeports the RX 570 (RADV POLARIS10) as GPU 0 andllvmpipeas GPU 1. As far as I understand,llvmpipeis just the CPU-based software renderer, not another physical GPU.
So the
OrtHardwareDeviceenumeration also seems reasonable to me:# AMD RX 570 GPU OrtHardwareDevice { vendor_id:0x1002, device_id:0x67df, vendor: , type:1, metadata:[card_idx=1, pci_bus_id=0000:08:00.0] } # AMD Ryzen 5 1600 CPU OrtHardwareDevice { vendor_id:0x1022, device_id:0x0, vendor:AMD, type:0, metadata:[] }
The first device is clearly my RX 570 (type 1,
1002:67df), while the second appears to be the AMD CPU (type 0). My Ryzen 5 1600 does not have an integrated GPU, so I don't see any indication of a second GPU here.The only thing that still looks slightly strange is that the RX 570 has an empty
vendor:field, while the CPU is reported asvendor:AMD. I'm not sure whether that is significant or just how the enumeration currently works.If we take it as is, it seems the ONNX enumeration is reporting my GPU without the vendor string and NobodyWho then assumes it must be a CUDA card and so does not utilize another execution provider (like Vulkan or CPU) and then fails. Maybe just add a little check for empty vendor fields to fall back to the CPU provider?
Or could the actual problem instead be related to the fact that the RX 570 is a Polaris/GCN 4 GPU and isn't supported by the current ROCm versions? Perhaps the hardware is discovered correctly, but the GPU cannot actually be used by the relevant ONNX execution provider?
In any case there might be a try-catch-block needed for the GPU provider that falls back to the CPU provider if it fails (or something like that).
For reference, the ONNX Runtime API documentation for the hardware enumeration and the execution-provider documentation:
I'm happy to check anything else that could help narrow this down.
Describe the bug
When trying the new NobodyWhoSTT node on slightly older AMD hardware with current Fedora OS I get an error at
stt.transcribe_file("res://recording.mp3")and my recording is not transcribed.Output:
Debugger:
To Reproduce
Steps to reproduce the behavior:
recording.mp3)Or you can download my MRP: nobodywho-stt.zip (You need to download the nobodywho package and drop it into the
addonsfolder as I did not wanted to upload a 4GB zip file.)Expected behavior
Environment:
Additional context
Is the current implementation only available for NVIDIA hardware (see
CUDAExecutionProvider)? I saw that it succesfully registeredCPUExecutionProviderbut it seems it switches to CUDA once it starts transcription.