zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
 
# -*- coding: utf-8 -*-
 
"""
机器翻译
"""
 
import re
import sys
import math
import time
from .base import AipBase
from .base import base64
from .base import json
from .base import urlencode
from .base import quote
 
class AipMt(AipBase):
    """
    机器翻译
    """
 
    __pictransV1Url = 'https://aip.baidubce.com/file/2.0/mt/pictrans/v1'
    __texttransV1Url = 'https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1'
    __texttransWithDictV1Url = 'https://aip.baidubce.com/rpc/2.0/mt/texttrans-with-dict/v1'
    __docTranslationCreateV2Url = 'https://aip.baidubce.com/rpc/2.0/mt/v2/doc-translation/create'
    __docTranslationQueryV2Url = 'https://aip.baidubce.com/rpc/2.0/mt/v2/doc-translation/query'
    __speechTranslationV2Url = 'https://aip.baidubce.com/rpc/2.0/mt/v2/speech-translation'
 
 
    def texttransV1(self, languageFrom, to, q, options=None):
        """
            文本翻译-通用版
            接口使用说明文档: https://ai.baidu.com/ai-doc/MT/4kqryjku9
        """
        options = options or {}
        data = {}
        data['from'] = languageFrom
        data['to'] = to
        data['q'] = q
        data.update(options)
        return self._request(self.__texttransV1Url, json.dumps(data, ensure_ascii=False), {
            'Content-Type': 'application/json',
        })
 
    def texttransWithDictV1(self, languageFrom, to, q, options=None):
        """
            文本翻译-词典版
            接口使用说明文档: https://ai.baidu.com/ai-doc/MT/nkqrzmbpc
        """
        options = options or {}
        data = {}
        data['from'] = languageFrom
        data['to'] = to
        data['q'] = q
        data.update(options)
        return self._request(self.__texttransWithDictV1Url, json.dumps(data, ensure_ascii=False), {
            'Content-Type': 'application/json',
        })
 
    def docTranslationCreateV2(self, languageFrom, to, input, options=None):
        """
            文档翻译
            接口使用说明文档: https://ai.baidu.com/ai-doc/MT/Xky9x5xub
        """
        options = options or {}
        data = {}
        data['languageFrom'] = languageFrom
        data['to'] = to
        data['input'] = input
        data.update(options)
        return self._request(self.__docTranslationCreateV2Url, json.dumps(data, ensure_ascii=False), {
            'Content-Type': 'application/json',
        })
 
    def docTranslationQueryV2(self, id, options=None):
        """
            文档翻译-文档状态查询
            接口使用说明文档: https://ai.baidu.com/ai-doc/MT/Xky9x5xub
        """
        options = options or {}
        data = {}
        data['id'] = id
        data.update(options)
        return self._request(self.__docTranslationQueryV2Url, json.dumps(data, ensure_ascii=False), {
            'Content-Type': 'application/json',
        })
 
    def speechTranslationV2(self, languageFrom, to, voice, format, options=None):
        """
            语音翻译
            接口使用说明文档: https://ai.baidu.com/ai-doc/MT/el4cmi76f
        """
        options = options or {}
        data = {}
        data['from'] = languageFrom
        data['to'] = to
        data['voice'] = base64.b64encode(voice).decode()
        data['format'] = format
        data.update(options)
        return self._request(self.__speechTranslationV2Url, json.dumps(data, ensure_ascii=False), {
            'Content-Type': 'application/json',
        })