You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中无需浏览器调用Google Transliterate API实现音译需求

如何在无浏览器环境下使用Google Transliterate API(已弃用但仍可用)

嘿,刚好之前帮朋友折腾过这个弃用的API,虽然Google早在2011年就宣布不维护它了,但确实还能凑合用在这类轻量的商家名称转写场景里。你要在EditText输入时不用浏览器直接调用它,其实核心就是直接发HTTP请求调用API接口——毕竟API本质就是个网络服务,不需要浏览器来做中间层,我给你拆解下具体怎么实现:

核心调用逻辑:直接请求API接口

这个Transliterate API是个简单的GET接口,你只需要用开发平台的HTTP客户端(比如Android的OkHttp、Python的requests)发送请求,带上必要参数就能拿到转写结果。

关键请求参数

  • langpair:必填,语言转换对格式是源语言代码|目标语言代码,比如英文转印地语是en|hi,英文转中文是en|zh,你可以根据需要替换成目标地区的语言代码(找对应的ISO 639-1语言代码就行)
  • text:必填,要转写的文本内容,比如Baskin Robbins
  • 可选参数:tlqt(控制转写质量,默认1)、ie(请求编码,一般设为UTF-8)

示例1:Android平台(用OkHttp实现)

如果你是在Android里做EditText的实时转写,可以这么搞:

首先在build.gradle里添加OkHttp依赖:

implementation 'com.squareup.okhttp3:okhttp:4.10.0'

然后写调用API的异步方法(别在主线程发网络请求哦):

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.json.JSONArray;
import org.json.JSONException;
import java.io.IOException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

// 转写文本的方法
private void fetchTransliteration(String inputText, String langPair) {
    OkHttpClient client = new OkHttpClient();

    // 对参数做URL编码,避免特殊字符报错
    String encodedLangPair = URLEncoder.encode(langPair, StandardCharsets.UTF_8);
    String encodedText = URLEncoder.encode(inputText, StandardCharsets.UTF_8);
    String requestUrl = "https://www.google.com/transliterate?langpair=" + encodedLangPair + "&text=" + encodedText;

    Request request = new Request.Builder()
            .url(requestUrl)
            .build();

    // 异步发送请求
    client.newCall(request).enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {
            // 请求失败的处理,比如给用户提示
            e.printStackTrace();
        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            if (response.isSuccessful() && response.body() != null) {
                String responseJson = response.body().string();
                // 解析返回的JSON(格式是二维数组:[["输入文本", ["转写结果1", "转写结果2"...]]])
                try {
                    JSONArray resultArray = new JSONArray(responseJson);
                    if (resultArray.length() > 0) {
                        JSONArray translOptions = resultArray.getJSONArray(0).getJSONArray(1);
                        if (translOptions.length() > 0) {
                            final String bestOption = translOptions.getString(0);
                            // 回到主线程更新EditText
                            runOnUiThread(() -> {
                                // 这里替换成你的EditText实例
                                yourEditText.setText(bestOption);
                            });
                        }
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }
    });
}

// 调用示例:比如在EditText的文本变化监听里触发
// fetchTransliteration("Baskin Robbins", "en|hi");

示例2:Python平台(用requests实现)

如果是后端或者脚本场景,用Python的requests库更简单:

import requests
import urllib.parse

def get_transliteration(text, lang_pair):
    base_url = "https://www.google.com/transliterate"
    params = {
        "langpair": lang_pair,
        "text": text
    }
    # 编码参数
    encoded_params = urllib.parse.urlencode(params)
    full_url = f"{base_url}?{encoded_params}"
    
    response = requests.get(full_url)
    if response.status_code == 200:
        result_data = response.json()
        # 取第一个转写结果
        if result_data and len(result_data) > 0:
            return result_data[0][1][0]
    return None

# 测试调用
print(get_transliteration("Baskin Robbins", "en|hi"))

重要注意事项

  • 弃用风险:这个API已经弃用十几年了,Google随时可能关停它,建议你同时准备一个备用方案(比如本地转写库或者其他免费的替代API)
  • 请求限制:Google会对请求频率做限制,别短时间内发太多请求,不然会被封IP
  • 编码问题:一定要对langpair和text做URL编码,不然特殊字符会导致请求失败
  • 语言代码:确认目标地区语言的正确ISO代码,比如泰文是th,阿拉伯文是ar,别用错了

内容的提问来源于stack exchange,提问作者Indark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:54:52