做一些测试来合成葡萄牙语书的部分内容(pt-BR( 我注意到,如果包含罗马数字的章节名称高于 XXIX (39(,则不被识别为数字。
像数字L(50(或LX(60(不会正确合成为数字,它将读作字母。使用"say-as"SSMLS 标记不会导致任何更改。
这是意料之中的吗?有什么可能的解决方法吗?
意料之中的吗?
我希望,是的,开发人员通常懒得实现通用解决方案。
有什么可能的解决方法吗?
自己预处理文本并将数字转换为单词。
您拥有的另一个选项是自定义模型,如 https://console.bluemix.net/docs/services/text-to-speech/custom-intro.html#customIntro 中所述
这里有一个简短的例子
使用此命令创建自定义模型
curl -X POST -u ***:*** --header "Content-Type: application/json" --data "{"name":"cURL Test","language":"en-US", "description":"Customization test via cURL"}" "https://stream.watsonplatform.net/text-to-speech/api/v1/customizations"
上面的命令将返回customization_id(在本例中为e250e7ee-fbec-47e8-a1b8-59435c1b18e3(
然后使用此命令添加翻译
curl -X PUT -u ***:*** --header "Content-Type: application/json" --data "{"translation":"thirty"}" "https://stream.watsonplatform.net/text-to-speech/api/v1/customizations/e250e7ee-fbec-47e8-a1b8-59435c1b18e3/words/XXX"
最后,尝试一下
curl -X GET -u ***:*** --header "Accept: audio/wav" --output xxx.wav "https://stream.watsonplatform.net/text-to-speech/api/v1/synthesize?text=chapter%20XXX&customization_id=e250e7ee-fbec-47e8-a1b8-59435c1b18e3"
它将生成一个音频文件,上面写着"第三十章">
对于 PT-BR,请参阅 https://console.bluemix.net/docs/services/text-to-speech/custom-models.html#customModels,以便您可以使用"语言"选项并将 XXX 翻译成"trinta"