Lokale Transkription funktioniert nicht

Morphie

Premier Customer
Mitglied seit
9. März 2026
Beiträge
8
Hallo zusammen,

ich habe gerade einen lokalen Transkriptionsserver installiert:
- virtuelle Maschine (VMWare) mit GPU im Passthrough.
- 6 Cores
- 24 GB RAM
- 24 GB VRAM (nvidia P40)

Nach einigem hin und her bzgl. der nvidia-Treiber, läuft die Maschine jetzt und der TranscriberServer erkennt die GPU auch und nutzt diese.
1773039405900.png

In der 3CX-Adminconsole wird der Server auch als Online erkannt
1773039658673.png

Wenn ich jetzt aber einen Anruf transkribieren möchte, tut sich erst mal nichts. In der Konsole steht "Detecting speech [step 1 of 3]" und danach ist der Job quasi "weg".
Im Log File steht:
2026-03-09 06:25:45.5148|DEBUG|ConverterService.ConverterCommand|[TaskRunner] [PID=102574] 2026-03-09 06:25:45 => Detecting speech [step 1/3] [progress 0%]
2026-03-09 06:25:45.5210|DEBUG|ConverterService.ConverterCommand|[TaskRunner] [PID=102574] 2026-03-09 06:25:45 => Detecting speech [step 1/3] [progress 10%]
2026-03-09 06:25:45.5210|DEBUG|ConverterService.ConverterCommand|Detected progress=3 elapsed=0 expected total=0 starttime=09.03.2026 06:25:45 eta=09.03.2026 06:25:55 steps=3 step=1 descr=Detecting speech [step 1 of 3]
2026-03-09 06:25:45.5276|DEBUG|ConverterService.ConverterCommand|[TaskRunner] [PID=102574] 2026-03-09 06:25:45 => Detecting speech [step 1/3] [progress 20%]
2026-03-09 06:25:45.5276|DEBUG|ConverterService.ConverterCommand|Detected progress=7 elapsed=0 expected total=0 starttime=09.03.2026 06:25:45 eta=09.03.2026 06:25:55 steps=3 step=1 descr=Detecting speech [step 1 of 3]
2026-03-09 06:25:45.5330|DEBUG|ConverterService.ConverterCommand|[TaskRunner] [PID=102574] 2026-03-09 06:25:45 => Detecting speech [step 1/3] [progress 30%]
2026-03-09 06:25:45.5330|DEBUG|ConverterService.ConverterCommand|Detected progress=10 elapsed=0 expected total=0 starttime=09.03.2026 06:25:45 eta=09.03.2026 06:25:55 steps=3 step=1 descr=Detecting speech [step 1 of 3]
2026-03-09 06:25:45.5385|DEBUG|ConverterService.ConverterCommand|[TaskRunner] [PID=102574] 2026-03-09 06:25:45 => Detecting speech [step 1/3] [progress 40%]
2026-03-09 06:25:45.5385|DEBUG|ConverterService.ConverterCommand|Detected progress=13 elapsed=0 expected total=0 starttime=09.03.2026 06:25:45 eta=09.03.2026 06:25:55 steps=3 step=1 descr=Detecting speech [step 1 of 3]
2026-03-09 06:25:45.5447|DEBUG|ConverterService.ConverterCommand|[TaskRunner] [PID=102574] 2026-03-09 06:25:45 => Detecting speech [step 1/3] [progress 50%]
2026-03-09 06:25:45.5447|DEBUG|ConverterService.ConverterCommand|Detected progress=17 elapsed=0 expected total=0 starttime=09.03.2026 06:25:45 eta=09.03.2026 06:25:55 steps=3 step=1 descr=Detecting speech [step 1 of 3]
2026-03-09 06:25:45.5506|DEBUG|ConverterService.ConverterCommand|[TaskRunner] [PID=102574] 2026-03-09 06:25:45 => Detecting speech [step 1/3] [progress 60%]
2026-03-09 06:25:45.5506|DEBUG|ConverterService.ConverterCommand|Detected progress=20 elapsed=0 expected total=0 starttime=09.03.2026 06:25:45 eta=09.03.2026 06:25:55 steps=3 step=1 descr=Detecting speech [step 1 of 3]
2026-03-09 06:25:45.5561|DEBUG|ConverterService.ConverterCommand|[TaskRunner] [PID=102574] 2026-03-09 06:25:45 => Detecting speech [step 1/3] [progress 70%]
2026-03-09 06:25:45.5561|DEBUG|ConverterService.ConverterCommand|Detected progress=23 elapsed=0 expected total=0 starttime=09.03.2026 06:25:45 eta=09.03.2026 06:25:55 steps=3 step=1 descr=Detecting speech [step 1 of 3]
2026-03-09 06:25:45.5617|DEBUG|ConverterService.ConverterCommand|[TaskRunner] [PID=102574] 2026-03-09 06:25:45 => Detecting speech [step 1/3] [progress 80%]
2026-03-09 06:25:45.5617|DEBUG|ConverterService.ConverterCommand|Detected progress=27 elapsed=0 expected total=0 starttime=09.03.2026 06:25:45 eta=09.03.2026 06:25:55 steps=3 step=1 descr=Detecting speech [step 1 of 3]
2026-03-09 06:25:45.5675|DEBUG|ConverterService.ConverterCommand|[TaskRunner] [PID=102574] 2026-03-09 06:25:45 => Detecting speech [step 1/3] [progress 90%]
2026-03-09 06:25:45.5675|DEBUG|ConverterService.ConverterCommand|Detected progress=30 elapsed=0 expected total=0 starttime=09.03.2026 06:25:45 eta=09.03.2026 06:25:55 steps=3 step=1 descr=Detecting speech [step 1 of 3]
2026-03-09 06:25:45.5731|DEBUG|ConverterService.ConverterCommand|[TaskRunner] [PID=102574] 2026-03-09 06:25:45 => Detecting speech [step 1/3] [progress 100%]
2026-03-09 06:25:45.5731|DEBUG|ConverterService.ConverterCommand|Detected progress=33 elapsed=0 expected total=0 starttime=09.03.2026 06:25:45 eta=09.03.2026 06:25:55 steps=3 step=1 descr=Detecting speech [step 1 of 3]
2026-03-09 06:25:46.8763|ERROR|ConverterService.ExeRunner|/opt/3cxwm/transcriber/transcriber.sh Error: WARN 2026-03-09 06:25:46 => Could not complete http GET request to http://127.0.0.1:5251/transcriber/speechtotext/561e345f-ef13-44f7->
2026-03-09 06:25:46.8763|WARN|ConverterService.ConverterCommand|[TaskRunner] [PID=102574] WARN 2026-03-09 06:25:46 => Could not complete http GET request to http://127.0.0.1:5251/transcriber/speechtotext/561e345f-ef13-44f7-aec0-bf620b9d>

2026-03-09 06:25:47.0650|DEBUG|ConverterService.ExeRunner|[PID=102574] Console task finished
2026-03-09 06:25:47.0650|INFO|ConverterService.ExeRunner|Console task terminated [PID=102574] ExitCode=8 ErrorMessage=
2026-03-09 06:25:47.0650|ERROR|ConverterService.ExeRunner|[PID=102574] /opt/3cxwm/transcriber/transcriber.sh exitcode=8
2026-03-09 06:25:47.0650|INFO|ClusterManager.CMUtils|FileCleanup: /var/lib/3cxpbx/WebMeeting/Wavs/18bc2d5a3c265c891faa394494d515ed59aabcd8956d119678030bbbc0e18310.wav ConverterCommand: Deleting input file
2026-03-09 06:25:47.0650|INFO|ClusterManager.CMUtils|FileCleanup: /var/lib/3cxpbx/WebMeeting/Wavs/18bc2d5a3c265c891faa394494d515ed59aabcd8956d119678030bbbc0e18310.wav.cdr.json ConverterWav: Deleting CDR file
2026-03-09 06:25:47.0650|INFO|ConverterService.ConverterCommand|Convert Command Finished Id=583c697e0f657119c630626638d99b7f72ffbbc05c4f093dbb6f0ca30c91c4c1 CallId=R7@XXXX ExitCode=8
2026-03-09 06:25:47.0650|ERROR|ConverterService.ConverterTask|System.Exception: WARN 2026-03-09 06:25:46 => Could not complete http GET request to http://127.0.0.1:5251/transcriber/speechtotext/561e345f-ef13-44f7-aec0-bf620b9dd867: Conn>
at ConverterService.ConverterTask.<Start>b__26_0() in /app/ConverterService/ConverterTask.cs:line 43
2026-03-09 06:25:47.0650|INFO|ConverterService.ClusterManagerSession|ConversionWav finished, scheduling ConversionAnalytics R7@XXXX
2026-03-09 06:25:47.0650|ERROR|ConverterService.ClusterManagerSession|System.IO.FileNotFoundException: Could not find file '/var/lib/3cxpbx/WebMeeting/Wavs/18bc2d5a3c265c891faa394494d515ed59aabcd8956d119678030bbbc0e18310.wav.text.json'.>
at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, UnixFileMode openPermissions, Int64& fileLength, UnixFileMode& fileP>
at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.StreamReader.ValidateArgsAndOpenPath(String path, Encoding encoding, Int32 bufferSize)
at System.IO.File.ReadAllText(String path, Encoding encoding)
at ConverterService.ClusterManagerSession.NotifyConversionFinished(ISession session) in /app/ConverterService/ClusterManagerSession.cs:line 811

der Service scheint aber zumindest zu laufen und auch auf Port 5251 zu lauschen.
1773040146769.png

Hat jemand ne Idee woran das liegen könnte?

Grüße,
Morphie
 
Weiß jemand, mit welcher "Compute Capability" das enthaltene whisper.cpp gebaut wird?
Meine GPU kann scheinbar nur bis CC6.1 und ich vermute, dass diese nicht mehr beim kompilieren angegeben wurde.
 
Zur Info: Das Problem ist jetzt gelöst.

Lösung: es wird intern das whisper.net-Package verwendet (zu finden bei Github & Nuget).
Dieser Wrapper bietet neben CUDA auch andere Runtimes an, z.B. auch CPU (war sehr langsam, nicht zu empfehlen) aber auch die Vulkan API.
Ich habe mir das Vulkan Package also von NuGet heruntergeladen und nach "/opt/3cxwm/transcriber/transcriber-server_bin/runtimes/vulkan/linux-x64" kopiert.
zusätzlich habe ich natürlich noch vulkan an sich auf der Maschine installiert:
apt install vulkan-tools libvulkan1

Nach einem Neustart läuft es jetzt wie gewünscht - und schnell
:)
 
Hi, danke für die Antwort.
Aber das Problem lag nicht am VRAM, sondern an der eingesetzten Library, bzw. einer Inkompatibilität mit der schon in die Jahre gekommenen Grafikkarte.

Da man die GPU aber im Gebrauchtmarkt für unter 250 EUR bekommt, bin ich mit meiner Lösung jetzt sehr zufrieden :)
 
  • Like
Reaktionen: avraammich_3CX
Hi @Morphie,

RTX Treiber sind an sich Voraussetzung.
P40 ist hier problematisch.
P40 sowie ich die Info habe unterstützt keine neuesten RTX Features.

Freud mich dass es geklappt hat.
 
Nach einem Neustart läuft es jetzt wie gewünscht - und schnell
*interessiert*

Frage: kannst du ermessen wie schnell diese Karte ist, z.B. Latenz und wie viele Token / s die Karte mit dem Modell schafft?
 
ich versuche die Tage da mal was zu benchmarken. Oder sind dir irgendwelche Infos bekannt, die ich aus den bestehenden Logs ziehen kann?
 

Statistik des Forums

Themen
44.411
Beiträge
232.703
Mitglieder
78.327
Neuestes Mitglied
jlx