IBM Cloud Docs
Migrating from neural voices

Migrating from neural voices

IBM Cloud

The IBM Watson® Text to Speech service offers enhanced neural voices and expressive neural voices. All neural voices were removed from the service on 31 March 2023. New enhanced neural and expressive neural voices are available for obsolete Australian English, Dutch Netherlands, and Korean neural voices. This topic describes the steps that you need to take to migrate from obsolete neural voices to enhanced or expressive neural voices.

Step 1: Identify the new voices to which you can migrate

Identify the new voices that you can use in place of the obsolete neural voices. Table 1 lists the new voices to which you can migrate.

Table 1. Voices to which you can migrate from neural voices
Language Obsolete neural voices Enhanced neural and expressive neural voices
Australian English en-AU_CraigVoice
en-AU_MadisonVoice
en-AU_SteveVoice
en-AU_HeidiExpressive (expressive neural)
en-AU_JackExpressive (expressive neural)
Dutch Netherlands nl-NL_EmmaVoice
nl-NL_LiamVoice
nl-NL_MerelV3Voice (enhanced neural)
Korean ko-KR_HyunjunVoice
ko-KR_SiWooVoice
ko-KR_YoungmiVoice
ko-KR_YunaVoice
ko-KR_JinV3Voice (enhanced neural)

Step 2: Use the new voices in speech synthesis

Use the new voices in speech synthesis requests to determine their effectiveness for your application. For example, the following example uses the obsolete Australian English voice en-AU_CraigVoice:

curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: application/json" \
--header "Accept: audio/wav" \
--data "{\"text\":\"hello world\"}" \
--output hello_world.wav \
"{url}/v1/synthesize?voice=en-AU_CraigVoice"

The following example replaces the obsolete voice with the Australian English voice en-AU_JackExpressive:

curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: application/json" \
--header "Accept: audio/wav" \
--data "{\"text\":\"hello world\"}" \
--output hello_world.wav \
"{url}/v1/synthesize?voice=en-AU_JackExpressive"

Repeat this substitution for each use of an obsolete voice in your application.

Step 3: Update any custom models that are based on the neural voices

If you used custom models to create a dictionary of custom words for your neural voices, you need to verify that the custom words work properly with the enhanced neural or expressive neural voices. At a minimum, you need to compare the phonetic symbols that you used with custom words for neural voices with the symbols that are available for the enhanced neural and expressive neural voices. Table 2 provides links to the topics that provide the phonetic symbols for the obsolete neural voices and for the enhanced neural and expressive neural voices.

Table 2. Phonetic symbols for obsolete neural voices and for enhanced neural and expressive neural voices
Language Phonetic symbols for obsolete neural voices Phonetic symbols for enhanced neural and expressive neural voices
Australian English English (Australian) symbols (obsolete) English (Australian) symbols
Dutch Netherlands Dutch (Netherlands) symbols (obsolete) Dutch (Netherlands) symbols
Korean Korean symbols (obsolete) Korean symbols

You need to be aware of the following information when validating your custom words:

  • Enhanced neural and expressive neural voices support both standard International Phonetic Alphabet (IPA) and IBM Symbolic Phonetic Representation (SPR) phonetic symbols. Obsolete neural voices supported only IPA symbols.
  • Enhanced neural and expressive neural voices use IPA symbols that are different from those that are available with obsolete neural voices. Some overlap exists, but you need to verify and test the translations of all words to ensure that they are defined to your satisfaction.
  • If you update custom words in a custom model, adding a new translation for a word that already exists overwrites the word's existing translation.

Because custom models are based on languages, not on specific voices, you do not need to create new custom models. But you might find it easier to work with new models to avoid confusion between existing and new custom words that the models contain.

For more information about about working with custom models and entries for custom words, see the following topics: