首页 > 编程问答 >Google Translate API 客户端没有“Translate_image”属性

Google Translate API 客户端没有“Translate_image”属性

时间:2024-08-01 06:36:53浏览次数:11  
标签:python google-cloud-platform google-translate google-translation-api google-clou

import os
from google.cloud import translate_v3beta1 as translate



def upload_and_translate(input_dir, output_dir, target_language):
    """Uploads all images in a directory, translates them using Google Translate, and downloads the translated images to a specified output directory.

    Args:
        input_dir: The directory containing the images to be translated.
        output_dir: The directory to which the translated images will be downloaded.
        target_language: The target language for the translation.
    """

    # Create a Google Translate client.
    client = translate.Client()

    # Get a list of all the files in the input directory.
    files = os.listdir(input_dir)

    # Iterate over the files and upload them to Google Translate.
    for file in files:
        with open(os.path.join(input_dir, file), "rb") as f:
            # Upload the image to Google Translate.
            response = client.translate_image(
                f,
                target_language=target_language,
            )

            # Download the translated image.
            with open(os.path.join(output_dir, file), "wb") as f:
                f.write(response.translated_image)

# Example usage:
if __name__ == "__main__":
    input_dir = "example\path\to\things"
    output_dir = "example\path\to\finishedthings"
    target_language = "en"
    upload_and_translate(input_dir, output_dir, target_language)

尝试使用此脚本来翻译一个包含 jpg 文件的文件夹,谷歌翻译网站会很乐意接受这些文件,但不知道从这里该怎么做。

AttributeError:

'Client' object has no attribute 'translate_image'

AttributeError: module 'google.cloud.translate_v3beta1' has no attribute 'Client'

在我尝试时都显示运行这个,当这个脚本显然在过去为其他人工作过时。

不使用虚拟环境,因为我读到这是没有必要的。依赖项也已重新安装。


是对的,Google Cloud Translate API 中没有直接名为 translate_image 的函数。此外, google.cloud.translate_v3beta1 库主要用于文本翻译。

要翻译图像,需要结合使用 Optical Character Recognition (OCR) 和 Google Cloud Translation API。

以下是如何执行此操作的步骤:

  1. 使用 OCR 引擎提取图像中的文本。 可以使用 Cloud Vision API 的 DOCUMENT_TEXT_DETECTION 功能。
  2. 将提取的文本发送到 Google Cloud Translation API 进行翻译。 使用 google.cloud.translate_v3 库中的 TranslationServiceClient
  3. (可选)可以使用原始图像并将翻译后的文本覆盖在检测到的文本区域上。 这需要一些图像处理工作。

以下是使用 Python 中的 Cloud Vision API 和 Cloud Translation API 翻译图像的示例代码:

import os
from google.cloud import vision
from google.cloud import translate_v3 as translate

def translate_image(image_path, target_language="en"):
    """使用 Google Cloud Vision API 和 Translation API 翻译图像。

    Args:
        image_path: 图像的路径。
        target_language: 目标语言代码。

    Returns:
        翻译后的文本或出现错误时为 None。
    """

    # 实例化 Cloud Vision 客户端
    client = vision.ImageAnnotatorClient()

    # 从文件中加载图像
    with open(image_path, "rb") as image_file:
        content = image_file.read()

    image = vision.Image(content=content)

    # 执行文本检测
    response = client.document_text_detection(image=image)
    text = response.full_text_annotation.text

    # 如果检测到文本,则将其翻译
    if text:
        translate_client = translate.TranslationServiceClient()
        location = "global"
        parent = f"projects/your-project-id/locations/{location}"

        response = translate_client.translate_text(
            request={
                "parent": parent,
                "contents": [text],
                "mime_type": "text/plain",
                "target_language_code": target_language,
            }
        )

        # 返回翻译后的文本
        return response.translations[0].translated_text
    else:
        return None

# 示例用法:
image_path = "path/to/your/image.jpg"
target_language = "es" # 例如,翻译成西班牙语

translated_text = translate_image(image_path, target_language)

if translated_text:
    print(f"翻译后的文本:{translated_text}")
else:
    print("无法从图像中提取文本。")

请记住,需要执行以下操作:

  • 安装必要的库: pip install google-cloud-vision google-cloud-translate
  • 设置的 Google Cloud 项目并启用 Vision API 和 Translation API。
  • 在的代码中设置的凭据。 可以设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量以指向的服务帐户密钥文件。

这种方法使用 OCR 首先从图像中提取文本,然后将其发送到 Translation API。这样,就可以翻译图像中的文本。

标签:python,google-cloud-platform,google-translate,google-translation-api,google-clou
From: 78615111

相关文章