Skip to content

FAQ

How can I convert mic-v1 voice templates to noctua?

As of the 5.0.0 release, we introduced a new voice verification algorithm named noctua.
The templates generated by the older mic-v1 algorithm are incompatible with noctua.

Important

By default, the server now initializes with the noctua algorithm. Therefore, previously generated mic-v1 voice templates won't work with the server unless additional configuration is applied. To use the mic-v1 algorithm, configure the voice verification component as follows:

$ docker run -d --name idvoice_server --publish 8080:8080 \
             -e IDRND_VOICESDK_VERIFY_INIT_DATAS="mic-v1" \
             -e IDRND_VOICESDK_VERIFY_DEFAULT_INIT_DATA="mic-v1" \
             voicesdk-server:5.0.0

To facilitate migration and avoid re-enrolling users, we have provided an optional component with an API to convert mic-v1 templates into the noctua format.

Here’s an example of how to configure IDVoice Server for voice template conversion:

$ docker run -d --name vrss --publish 8080:8080 \
             -e IDRND_VOICESDK_COMPONENTS_TEMPLATE_CONVERTER="true" \
             voicesdk-server:5.0.0

To convert a template, you need to perform an HTTP POST request to the endpoint /voice_template_converter/convert_voice_template with a Content-Type: application/json header, and include a mic-v1 voice template string in the body.

# Start a server with both mic-v1 and noctua verification algorithms enabled,
# along with the template converter component.
$ docker run --detach --name vrss --publish 8080:8080 \
             -e IDRND_VOICESDK_COMPONENTS_TEMPLATE_CONVERTER="true" \
             -e IDRND_VOICESDK_VERIFY_INIT_DATAS="mic-v1,noctua" \
             voicesdk-server:5.0.0

# Create a mic-v1 template
$ curl --silent --show-error \
  -X POST -F wav_file=@audio.wav \
  http://localhost:8080/voice_template_factory/create_voice_template_from_file?configuration=mic-v1 \
  > mic-v1-template.txt

# Check the mic-v1 voice template init-data id
# Expected output: `"[R85SDNW]"`
$ curl --silent --show-error \
  -X POST -H "Content-Type: application/json" --data @mic-v1-template.txt \
  http://localhost:8080/voice_template_factory/get_voice_template_init_data_id

# Convert it to noctua
$ curl --silent --show-error \
  -XPOST -H "Content-Type: application/json" --data @mic-v1-template.txt \
  http://localhost:8080/voice_template_converter/convert_voice_template \
  > noctua-template.txt

# Check that the new template has the noctua init-data id
# Expected output: "[NOCTUA]"
$ curl --silent --show-error \
  -XPOST -H "Content-Type: application/json" --data @noctua-template.txt \
  http://localhost:8080/voice_template_factory/get_voice_template_init_data_id