Custom Transcribers
# support
e
I've tried connecting a custom transcriber to my agent, but as soon as I add: { "transcriber": { "provider": "custom-transcriber", "server": { "url": "cloudflare tunnel websocket url" } } } the agent can't be published and it's complaining that I need to use one of the dropdown options. What's wrong? https://cdn.discordapp.com/attachments/1409558204282830858/1409558204928491570/Skarmavbild_2025-08-25_kl._17.18.26.png?ex=68add0e0&is=68ac7f60&hm=a43034a021b25a710e61b7d5e916b8bb6efa0791f629355defa80b72b63548be&
c
Hey there, If you've updated your assistant with a custom transcriber through the API, you'll need to keep making updates there. Our UI only accepts values from the dashboard drop-downs and selection menus. Your assistant will still function even with the dashboard errors. Let us know if you have any questions
d
Hi there @EdelVoice. Did you make it work? When I set my custom one and try to use it, I do not receive any requests in my backend and I see in the call logs that Vapi is using Deepgram. I will really appreciate your support on this!
Hi, as I wrote above, the custom-transcriber is not working. Even though I have tested my backend and it is reachable from the internet and responds fine, when I try to use it through Vapi I receive NO requests and vapi defaults to deepgram. Please assist!
e
Hey, yeah I got it to work. Web-call defaults to DG which is a bit annoying, you need to call your agent by phone to try it out. If they have some dev-mode in the CLI that might also work. Other than that the only problem could be a non-compatible endpoint. What transcriber are you tryingto set up?
d
@EdelVoice You are a lifesaver! I would never have thought of testing with a phone. I am trying to integrate soniox. The first version of my code has some issues, I will work them out hopefully, now that I can test it! Many thanks!!!
e
No worries, I use soniox as well. You'll need a proxy to set up the correct wss configuration if you don't have one already.
d
Yes, this is the way I am going. Are you happy with the results? Is the latency OK?
e
I think I ended up having 300-400ms more latency with Soniox than Nova 3 or ink-whisper, but that was with the proxy being in the eu, so in reality probably 250ms extra with the proxy in the US. Problem for me is that the other STT options are shit at swedish so I'm kind of forced to use soniox for WER reasons. I'm mostly using LiveKit anyway and for that you don't need the proxy.
d
Same here... I need Greek and it seems the only viable option.
@User Guys, just make our life easy and integrate Soniox !!!
c
If you would like to see Soniox on our platform, feel free to add it to the feature request list here -->
b
Hey @EdelVoice , hoping you might have a second to offer some insight, as you've worked with Soniox before. I've been trying to set up a Python proxy on Railway to connect Vapi with Soniox, but I'm completely stuck on a persistent deployment issue, and I suspect it's a caching problem on Railway's side. No matter what I do, my service fails with this error the moment Vapi tries to connect: code Code TypeError: proxy_handler() missing 1 required positional argument: 'path' I know exactly what this error means, and I've already fixed it in my code by changing proxy_handler(vapi_ws) to proxy_handler(vapi_ws, path). The code in my GitHub repo is 100% correct. The crazy part is, even after I: Pushed the fix to GitHub. Renamed the main file from server.py to main.py to break the cache. Even completely deleted and recreated the service on Railway from the same repo. ...the new deployment still fails with the exact same error, as if it's running an old, ghost version of the code. Have you ever run into a super-stubborn caching issue like this on Railway? It feels like the platform isn't pulling the latest commit, even after a full redeploy. Any ideas would be a lifesaver. Thanks
e
In newer versions of websockets (10 and above), your handler function should only take one argument, like this: async def proxy_handler(ws): But in older versions, it expects two arguments: async def proxy_handler(ws, path): So what’s probably happening is that Railway is using a newer version than your local setup. Either update your code to the one-argument version and pin websockets==12.0 in your requirements.txt, or keep the two-argument version and pin websockets==9.1.
3 Views