Deepgram UniMRCP Plugin

Deepgram offers a plugin for speech recognition for the UniMRCP Server (UMS), which is a popular open-source project that offers cross-platform MRCP services. To use this plugin with self-hosted deployments, you must take some additional steps.

Deploying UniMRCP Self-Hosted

In addition to the installation guide posted at UMS Deepgram SR - Deb Installation Manual, the following changes are required to successfully integrate umsdeepgram with a self-hosted deployment.

Adding a new service-endpoint for self-hosted

In the umsdeepgram.xml configuration file, add a service-endpoint child element to the service-endpoints element. You must specify the self-hosted deployment’s IP address and port number in the service-uri attribute. The URI's path is /v1/listen/stream, and the protocol should use only a web socket (ws), not a secure web socket (wss).

<service-endpoints load-balancing="round-robin" fail-over="true">
      <service-endpoint enable="true" service-uri="ws://SELF_HOSTED_IP_ADDRESS:SELF_HOSTED_PORT/v1/listen/stream"/>
</service-endpoints>

This can coexist alongside a hosted service-endpoint.

<service-endpoints load-balancing="round-robin" fail-over="true">
      <service-endpoint enable="true" service-uri="ws://SELF_HOSTED_IP_ADDRESS:SELF_HOSTED_PORT/v1/listen/stream"/>
      <service-endpoint enable="true" service-uri="wss://api.deepgram.com/v1/listen"/>
</service-endpoints>

Deepgram License Key

Authorization is performed at the request level for the hosted Deepgram API by including an API key in your request headers. In contrast, authorization for self-hosted Deepgram environments is performed at the container level, and individual requests that are able to hit your private self-hosted environment are assumed to be authorized already (possibly in some previous layer of your networking stack).

For the UniMRCP plugin, the deepgram.subscription.key file must exist and match the schema specified in the plugin installation instructions. For the hosted Deepgram API, this means setting the auth-key field with a valid Deepgram API key. If you are using both the hosted API and your own self-hosted environment, make sure to set this value.

If you are exclusively using your self-hosted environment, the auth-key value can be empty, such as:

{
	"auth-key": ""
}