Android Voice名称/代码是什么意思?

mik*_*son 7 android text-to-speech

我这样称呼Voice.getName()方法:

Set<Voice> voices = tts.getVoices();
String name = voice.getName();
Run Code Online (Sandbox Code Playgroud)

这将返回代码名称而不是友好的显示名称.我想要的是一个显示名称,但似乎没有办法得到这个.

是否可以将代码转换为有意义的内容以创建用户友好名称?并消除重复?很多声音相似 - 但只是有点不同.

这些是英国英国的一些代码:

en-GB-language
en-gb-x-rjs-local
en-gb-x-rjs-network
en-gb-x-fis-local
en-gb-x-fis-network
en-gb-x-fis#female_1-local
en-gb-x-rjs#female_1-local
en-gb-x-rjs#female_2-local
en-gb-x-fis#female_2-local
en-gb-x-rjs#male_1-local
Run Code Online (Sandbox Code Playgroud)

到目前为止我的想法:

  • 本地和网络意味着您的想法.然而,目前尚不清楚它们是否是同一个声音的两个版本,因为它们听起来有点不同(尽管不是很不同).
  • rjsfis重复很多,而且同时适用于男性和女性,但仅限于英国英语.似乎每种语言都有一组或两组不同的3个字母的首字母 - 也许它是一个区域代码.
  • 你可能会认为女性和女性2会有不同的配音天赋,但它们似乎只是略微不同的表现力.
  • 我认为en-gb-x-rjs#male_1-local并且en-gb-x-rjs-local完全相同
  • 所有返回相同的400质量.

有没有人对这些有更好的理解?

joe*_*joe 1

这可能有帮助,也可能没有帮助,但对于那些不直接使用 Android 的人来说,因此无法访问列出语音代码的 API,我刚刚在论坛线程上找到了这个 URL,它似乎列出了Android TTS 语音:

\n
https://dl.google.com/dl/android/tts/v2/voices-list-r1.proto\n
Run Code Online (Sandbox Code Playgroud)\n

将其读取为文本 (utf-8) 会产生一些解码错误,但这足以提取代码:

\n
en-GBGhttps://dl.google.com/dl/android/tts/v2/en-gb-x-fis-phone-hmm-r2.zvoice \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbddBfemaleJen-gb-x-fis-phone-hmmP\xef\xbf\xbdX\xef\xbf\xbd`hen-GB #1x\xef\xbf\xbd$\xef\xbf\xbd\nen-GBJhttps://dl.google.com/dl/android/tts/v2/en-gb-x-fis-diphone-usel-r2.zvoice \xd8\xbe0\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbddBfemaleJen-gb-x-fis-diphone-uselP\xef\xbf\xbdX\xef\xbf\xbd`hen-GB #1x\xef\xbf\xbd\xef\xbf\xbd\nen-GBGhttps://dl.google.com/dl/android/tts/v2/en-gb-x-rjs-phone-hmm-r2.zvoice \xef\xbf\xbd0\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbddBmaleJen-gb-x-rjs-phone-hmmP\xef\xbf\xbdX\xef\xbf\xbd`hen-GB #2x\xef\xbf\xbd\xef\xbf\xbd\nen-GBJhttps://dl.google.com/dl/android/tts/v2/en-gb-x-rjs-diphone-usel-r2.zvoice \xef\xbf\xbd\xef\xbf\xbd0\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbddBmaleJen-gb-x-rjs-diphone-uselP\xef\xbf\xbdX\xef\xbf\xbd`hen-GB #2x\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\nen-USGhttps://dl.google.com/dl/android/tts/v2/en-us-x-sfg-phone-hmm-r2.zvoice \xef\xbf\xbd*0\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbddBfemaleJen-us-x-sfg-phone-hmmP\xef\xbf\xbdX\xef\xbf\xbd`hren-USx\xef\xbf\xbd6\xef\xbf\xbd\nen-USJhttps://dl.google.com/dl/android/tts/v2/en-us-x-sfg-diphone-usel-r4.zvoice \xef\xbf\xbd\xef\xbf\xbd\n   0\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbddBfemaleJen-us-x-sfg-diphone-uselP\xef\xbf\xbdX\xef\xbf\xbd`hren-USx\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\nde-DEGhttps://dl.google.com/dl/android/tts/v2/de-de-x-nfh-phone-hmm-r2.zvoice \xef\xbf\xbd"0\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbddBfemaleJde-de-x-nfh-phone-hmmP\xef\xbf\xbdX\xef\xbf\xbd`hrde-DEx\xef\xbf\xbd+\xef\xbf\xbd\npt-BRGhttps://dl.google.com/dl/android/tts/v2/pt-br-x-afs-phone-hmm-r2.zvoice \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbddBfemaleJpt-br-x-afs-phone-hmmP\xef\xbf\xbdX\xef\xbf\xbd`hrpt-BRx\xef\xbf\xbd#\xef\xbf\xbd\nes-ESGhttps://dl.google.com/dl/android/tts/v2/es-es-x-ana-phone-hmm-r2.zvoice \xef\xbf\xbd#0\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbddBfemaleJes-es-x-ana-phone-hmmP\xef\xbf\xbdX\xef\xbf\xbd`hres-ESx\xef\xbf\xbd.\xef\xbf\xbd\nes-USGhttps://dl.google.com/dl/android/tts/v2/es-us-x-sfb-phone-hmm-r2.zvoice \xef\xbf\xbd*0\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbddBfemaleJes-us-x-sfb-phone-hmmP\xef\xbf\xbdX\xef\xbf\xbd`hres-USx\xef\xbf\xbd6\xef\xbf\xbd\nfr-FRGhttps://dl.google.com/dl/android/tts/v2/fr-fr-x-vlf-phone-hmm-r2.zvoice \xef\xbf\xbd.0\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbddBfemaleJfr-fr-x-vlf-phone-hmmP\xef\xbf\xbdX\xef\xbf\xbd`hrfr-FRx\xef\xbf\xbd>\xef\xbf\xbd\nit-ITGhttps://dl.google.com/dl/android/tts/v2/it-it-x-kda-phone-hmm-r2.zvoice \xef\xbf\xbd,0\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbddBfemaleJit-it-x-kda-phone-hmmP\xef\xbf\xbdX\xef\xbf\xbd`hrit-ITx\xef\xbf\xbd>\xef\xbf\xbd\nko-KRGhttps://dl.google.com/dl/android/tts/v2/ko-kr-x-ism-phone-hmm-r2.zvoice \xef\xbf\xbd00\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbddBfemaleJko-kr-x-ism-phone-hmmP\xef\xbf\xbdX\xef\xbf\xbd`hrko-KRx\xef\xbf\xbd:\n
Run Code Online (Sandbox Code Playgroud)\n

fis我仍然不知道这些代码的含义,但至少这给了我语言代码和、等代码之间的映射rjs,所以这是一个开始。

\n