Skip to main content

使用postman调用Azure Translator接口处理音译和获取长度

分类:  Azure翻译服务 标签:  #Azure #翻译 #Translator 发布于: 2023-06-15 21:01:27

在开始这一节的学习之前,请按照前一节设置postman和了解基本的rest api的使用方法。

音译

在开始音译之前,请查看一下音译的语言支持情况,您可以参考文档:https://docs.microsoft.com/en-us/azure/cognitive-services/translator/language-support#transliteration, 检查该文档会发现类似下图的表示:
Language Script

音译是将一种语言的单词或者短语转换为该语言的音标或者发音表示,例如中文您好,世界!, 音译结果是:nín hǎo , shì jiè !(成汉语拼音了)

使用translate接口进行音译

我们在使用translate翻译接口时,通过更改参数,可以在翻译的同时使用音译,例如:

/translate?api-version=3.0&from=en&to=zh-hans&toScript=latn

Request body:

[
{
    "Text": "Hello, World!"
},
{
    "Text": "I am a teacher"
}
]

请求返回的结果如下:

[
    {
        "translations": [
            {
                "text": "世界您好!",
                "transliteration": {
                    "text": "shì jiè nín hǎo!",
                    "script": "Latn"
                },
                "to": "zh-Hans"
            }
        ]
    },
    {
        "translations": [
            {
                "text": "我是老师",
                "transliteration": {
                    "text": "wǒ shì lǎo shī",
                    "script": "Latn"
                },
                "to": "zh-Hans"
            }
        ]
    }
]

从上述可以观察到,通过额外的参数toScript即可完成音译。

仅仅需要音译而不需要翻译

我们上面的请求是在翻译的同时添加了音译,那么我们接下来使用transliterate接口仅仅只返回音译,而不翻译:

请求如下:

/transliterate?api-version=3.0&language=zh-hans&fromScript=Hans&toScript=Latn

Request Body如下:

[{"text":"我是老师","script":"Hans"},{"text":"您好,世界!","script":"Hans"}]

返回的结果是:

[
    {
        "text": "wǒ shì lǎo shī",
        "script": "Latn"
    },
    {
        "text": "nín hǎo , shì jiè !",
        "script": "Latn"
    }
]

如果你需要将中文转为汉语拼音,那么这个就可以用上了。

返回翻译的长度

我们在第一节介绍的时候提及了Azure Translator服务是如何计费的,是按照翻译的字数来计费的,如何统计翻译的字数也有很多说明,如果忘记了请回头翻一下之前的说明,我们这一节来看一下该服务提供的接口,用于返回需要统计的字数。

翻译的同时返回字数

在使用翻译接口的的时候只需要添加一个参数:includeSentenceLength=true, 即可以返回统计的字数。

例如:

/translate?api-version=3.0&from=en&to=zh-hans&to=ja&includeSentenceLength=true

Request Body:

[
{
    "Text": "Hello, World!"
},
{
    "Text": "I am a teacher"
}
]

返回的结果:

[
    {
        "translations": [
            {
                "text": "世界您好!",
                "to": "zh-Hans",
                "sentLen": {
                    "srcSentLen": [
                        13
                    ],
                    "transSentLen": [
                        5
                    ]
                }
            },
            {
                "text": "ハローワールド!",
                "to": "ja",
                "sentLen": {
                    "srcSentLen": [
                        13
                    ],
                    "transSentLen": [
                        8
                    ]
                }
            }
        ]
    },
    {
        "translations": [
            {
                "text": "我是老师",
                "to": "zh-Hans",
                "sentLen": {
                    "srcSentLen": [
                        14
                    ],
                    "transSentLen": [
                        4
                    ]
                }
            },
            {
                "text": "私は教師です",
                "to": "ja",
                "sentLen": {
                    "srcSentLen": [
                        14
                    ],
                    "transSentLen": [
                        6
                    ]
                }
            }
        ]
    }
]

如果对于计费有些疑问,你可以直接加上这个参数,返回对一下。实在不行就上案例给微软商务,让商务帮你核实账单。

不翻译只是统计一下句子长度

如果不翻译,仅仅是统计一下句子的长度,那么就用如下的接口:

/breaksentence?api-version=3.0

同时,该接口还能在某些语言上帮助您断句。

Request Body:

[
{
    "Text": "在5月31日召开的上海市新冠肺炎疫情防控新闻发布会上,上海市副市长宗明通报,根据我市持续巩固疫情防控成果、有序恢复正常生产生活秩序总体方案的安排,6月1日起,全市将进入第三阶段,即全面恢复全市正常生产生活秩序阶段"
}
]

返回的结果:

[
    {
        "detectedLanguage": {
            "language": "zh-Hans",
            "score": 1.0
        },
        "sentLen": [
            106
        ]
    }
]