🐨

Swift Translation APIとGoogle翻訳の精度を比較してみた

に公開

2024年9月から、Apple製品に標準で搭載されている翻訳機能がAPIとして提供されました。
今まではDeepL APIとかGoogle翻訳API、もしくは生成AIにリクエストを飛ばす必要がありましたが2,3行のコードで無料で翻訳機能を実装することができるようになります。
※ただしiOS18以上が条件です。

https://developer.apple.com/jp/videos/play/wwdc2024/10117/


精度はどんな感じか検証してみました。

評価対象

  • Swift Translation API
  • Google翻訳

評価方法

以下の二つの観点から評価を行う。

1. 定量的な評価

BLEUBERT ScoreCOMETを使います。
比較時に言語は同じじゃないといけない(日本語 - 英語での評価は出来ない)ので、現状一番賢いであろうo3が生成した英訳を正解(参照文)として、それと比較させます。

依存パッケージをインストール

uv add sacrebleu bert-score

コードはこちら

bertscore_eval.py
from bert_score import score

refs = [
    "We’ve adopted Redux for state management in our React components and are leveraging SWR for caching. ",
    "Please note, however, that certain user interactions can trigger asynchronous processes running in the background."
]
cands = [
    "Redux is used for the state management of React components, and SWR is used for the cache strategy.",
    "However, please note that depending on the user's reaction, asynchronous processing will be performed in the background."
]

def calculate_bertscore(candidates, references):
    P, R, F1 = score(candidates, references, model_type="bert-base-multilingual-cased", lang="ja", verbose=True)
    # print(f"Average Precision: {P.mean().item():.4f}")
    # print(f"Average Recall: {R.mean().item():.4f}")
    # print(f"Average F1: {F1.mean().item():.4f}")
    return P.mean().item(), R.mean().item(), F1.mean().item()
bleu_eval.py
import sacrebleu

candidates = ["I read a book."]
references = [["I read a book."]]

def calculate_bleu_score(candidates, references):
    bleu = sacrebleu.corpus_bleu(candidates, references)
    print(bleu.score)
    return bleu.score
comet_eval.py
from comet import download_model, load_from_checkpoint

model_path = download_model("Unbabel/wmt22-cometkiwi-da")
model = load_from_checkpoint(model_path)

def calculate_comet_score(src, mt, ref):
    data = [
        {"src": src, "mt": mt, "ref": ref}
    ]

    # Predict scores
    model_output = model.predict(data, batch_size=8)
    
    return model_output.system_score
main.py
from result import translation_results
from bleu_eval import calculate_bleu_score
from bertscore_eval import calculate_bertscore
from comet_eval import calculate_comet_score
import pandas as pd

def main():
    results = []

    for i, item in enumerate(translation_results):
        references = item["reference"]
        reference_japanese = item["original"]

        reference_jp_texts = "".join(reference_japanese)
        reference_en_texts = "".join(references)
        all_generated = item["generated"]

        for source, generated_text_list in all_generated.items():
            if not generated_text_list:
                continue
            cands_en_texts = "".join(generated_text_list)

            bleu_score = calculate_bleu_score([cands_en_texts], [[reference_en_texts]])
            P, R, F1 = calculate_bertscore([cands_en_texts], [reference_en_texts])
            comet_sys_score = calculate_comet_score(reference_jp_texts, cands_en_texts, reference_en_texts)

            results.append({
                "Item": i + 1,
                "Source": source,
                "BLEU": bleu_score,
                "BERTScore_P": f"{P:.4f}",
                "BERTScore_R": f"{R:.4f}",
                "BERTScore_F1": f"{F1:.4f}",
                "COMET_Score": comet_sys_score,
            })

    df = pd.DataFrame(results)
    print(df.to_markdown(index=False))

if __name__ == "__main__":
    main()


正解文はGitHub Modelsにあるo3モデルで作ってもらった

2. 定性的な評価

英語ができれば自分で評価できるんですが、今回はGPT-4.1に代わりにやってもらいます。
コードはこちら

eval_translation_agent.py
from pydantic import BaseModel

class EvalCategoryScore(BaseModel):
    score: int
    comment: str

class EvalTranlationResult(BaseModel):
    accuracy: EvalCategoryScore         # 意味の忠実度・用語選択など
    fluency: EvalCategoryScore          # 文法・流暢さ・自然さ
    style: EvalCategoryScore            # 文体・トーン・ニュアンス・書式
    overall: int
    review_comments: str


system_prompt = """
あなたは「英訳評価エージェント」です。
TOP-LEVEL でバイリンガルの翻訳チェッカーとして、日本語原文とその英訳を厳密に比較し、数値評価とレビュー文を生成してください。以下の指示と出力形式を必ず守ってください。

――― 評価対象の受け取り方 ―――
ユーザーは次の書式で入力します。
日本語: <日本語原文>
英訳文: <英訳文>

――― 評価観点と採点基準 ―――
Accuracyは100点満点で、意味の忠実度・用語選択の基準で採点してください。
Fluencyは100点満点で、文法・流暢さ・自然さの基準で採点してください。
Styleは100点満点で、文体・トーン・ニュアンス・書式の基準で採点してください。
Overall Scoreは100点満点で、3観点三つを踏まえた全体的な英訳精度を採点してください。
Review Commentsは全体的な印象や、特に優れている点、改善が必要な点を具体的に記載。

――― 追加ルール ―――
・採点は厳格かつ客観的に。
・コメントでは、問題箇所や優れている点を具体的に示す。
・訳例の全面書き換えは求められない限り提示しない。
・専門用語や文脈が特殊な場合は、その適切さを特に確認する。
"""

def print_eval_result_markdown(result: EvalTranlationResult):
    print("==== Translation Quality Report ====\n")
    print("Summary Table")
    print("| Category | Score (/100) | Comment |")
    print(f"| Accuracy | {result.accuracy.score} | {result.accuracy.comment} |")
    print(f"| Fluency | {result.fluency.score} | {result.fluency.comment} |")
    print(f"| Style | {result.style.score} | {result.style.comment} |")
    print(f"| Overall | {result.overall} | ― |")
    print("\nReview Comments\n" + result.review_comments)
    print("\n==== End Report ====\n")
genai.py
from openai import AzureOpenAI
from eval_translation_agent import EvalTranlationResult, system_prompt

def eval_tranlation_english(text):
    openai_client = AzureOpenAI(
        api_key="<your api key>",
        azure_endpoint="<your endpoint>",
        api_version="2024-12-01-preview",
    )

    response = openai_client.beta.chat.completions.parse(
        model="gpt-4.1",
        messages=[
            {
                "role": "system",
                "content": system_prompt
            },
            {
                "role": "user",
                "content": text
            }
        ],
        temperature=0,
        response_format=EvalTranlationResult
    )
    return response.choices[0].message.parsed
main.py
from eval_translation_agent import print_eval_result_markdown
from result import translation_results
from genai import eval_tranlation_english

def main():
    for i, item in enumerate(translation_results):
        reference_japanese = item["original"]
        reference_jp_texts = "".join(reference_japanese)
        all_generated = item["generated"]

        for source, generated_text_list in all_generated.items():
            cands_en_texts = "".join(generated_text_list)
            if not generated_text_list:
                continue
            prompt = f"日本語:{reference_jp_texts}\n英訳文:{cands_en_texts}"
            eval_json = eval_tranlation_english(prompt)
            print_eval_result_markdown(eval_json)

if __name__ == "__main__":
    main()

テストに使う文章

英訳といっても色んなケースが存在するので、今回は以下の4つの文章で実施。

1. 日常会話(リアルタイムチャット)

文章:

明日の打ち合わせ、14時からになったってさ。
場所はいつものコワーキングスペースでよろしくね!
あ、資料はGoogleドライブにアップしといたからチェックといてー

o3が生成した正解文:

Just a heads-up—the meeting tomorrow has been moved to 2:00 p.m.
We’ll meet at the usual coworking space.
By the way, I’ve already uploaded the materials to Google Drive, so please take a look when you have a moment.

評価ポイント:

  • 口語表現「ってさ」「しといた」「といてー」の自然な変換
  • 外来語「コワーキングスペース」の表記統一
  • 文脈に応じた省略表現の処理
  • タスク指示の明確さ

2. IT系の文章(業界固有表現のワード)

文章:

Reactコンポーネントの状態管理にはReduxを採用し、キャッシュ戦略にはSWRを活用しています。
ただし、ユーザーのリアクション(反応)によっては、非同期処理がバックグラウンドで実行される点にご注意ください。

o3が生成した正解文:

We’ve adopted Redux for state management in our React components and are leveraging SWR for caching.
Please note, however, that certain user interactions can trigger asynchronous processes running in the background.

評価ポイント:

  • "React" がJavaScriptライブラリとして訳されているか
  • "キャッシュ" が「一時保存」→ "cache" と訳されているか(現金: cash との混同防止
  • (反応)の補足説明が自然に組み込まれているか
  • "バックグラウンド" が「裏側で」→ "in the background" と適切変換されているか

3. 文化的なニュアンスが含まれる文章(日本固有のワード)

文章:

このお菓子は『手みやげ』に最適で、『お茶菓子』としても『おつまみ』としても楽しめます。
『もったいない』をコンセプトに、規格外野菜を活用しています。

o3が生成した正解文:

This confection is perfect as a small gift to bring when visiting someone, and it can be enjoyed both as a tea-time treat and as a snack to pair with drinks.
Embracing the spirit of “mottainai”—avoiding waste—we craft it using cosmetically imperfect vegetables.

評価ポイント:

  • 日本文化固有の概念(手みやげ/もったいない)の翻訳方法
  • 多義語「おつまみ」の文脈に応じた解釈
  • キャッチコピーのニュアンス保持
  • 商品コンセプトの正確な伝達

4. ビジネスメール(フォーマル文書向け)

文章:

平素より格別のご高配を賜り厚く御礼申し上げます。
さて、この度弊社システムのメンテナンスに伴い、下記期間につきまして一部サービスがご利用いただけませんこと、謹んでお詫び申し上げます。

o3が生成した正解文:

We would like to express our sincere gratitude for your continued support.
Please be advised that, due to scheduled system maintenance, certain services will be unavailable during the period specified below.
We apologize for any inconvenience this may cause.

評価ポイント:

  • 敬語表現の適切なフォーマル度
  • 定型表現「平素より~」の自然な変換
  • 謙譲語/尊敬語のニュアンス再現
  • ビジネス文書としての体裁保持

Translation APIの実装

SwiftUIで実装します。(UIKitでも実装可能)

import Translation
import SwiftUI

@available(iOS 18.0, *)
struct TranslationScreenView: View {
    @State private var sourceText = "こんにちは"
    @State private var targetText = ""
    
    @State private var configuration: TranslationSession.Configuration?
    
    var body: some View {
        VStack {
            Text(sourceText).padding()
            Button("翻訳") {
                triggerTranslation()
            }.padding()
            Text(targetText).padding()
            
        }.translationTask(configuration) { session in
            do {
                let response = try await session.translate(sourceText)
                print(response.targetText)
                targetText = response.targetText
            } catch {
                print("Translation failed: \(error)")
            }
        }
    }
    
    private func triggerTranslation() {
        guard configuration == nil else {
            configuration?.invalidate()
            return
        }
        
        configuration = TranslationSession.Configuration(
            source: Locale.Language(identifier: "ja"),
            target:  Locale.Language(identifier: "en"))
    }
}

アプリを立ち上げると以下のようなUIになって、ボタンを押すと英訳文が下に表示されます。
実装自体は非常にシンプルで、Configurationのsourceとtargetを変更したら色んな言語に対応することができます。

翻訳結果

1. 日常会話(リアルタイムチャット)

Swift Translation API:

"Tomorrow's meeting starts at 14:00."
"The place is the usual coworking space, please take care of it!"
"Oh, I uploaded the materials to Google Drive, so check them out."

Google翻訳:

"The meeting tomorrow will start at 2pm."
"It will be at the usual coworking space!"
"Oh, I uploaded the materials to Google Drive so check it out."

2. IT系の文章(業界固有表現のワード)

Swift Translation API:

"Redux is used for the state management of React components, and SWR is used for the cache strategy."
"However, please note that depending on the user's reaction, asynchronous processing will be performed in the background."

Google翻訳:

"We use Redux to manage the state of React components, and SWR for caching strategy."
"However, please note that asynchronous processing will be executed in the background depending on the user's reaction."

3. 文化的なニュアンスが含まれる文章(日本固有のワード)

Swift Translation API:

"This snack is perfect for "souvenirs" and can be enjoyed both as "tea sweets" and "snacks"."
"With the concept of "waste", we use non-standard vegetables."

Google翻訳:

"This sweet is perfect as a souvenir, and can be enjoyed as a tea snack or as a snack."
"Based on the concept of "mottainai," it uses non-standard vegetables."

4. ビジネスメール(フォーマル文書向け)

Swift Translation API:

"I would like to thank you very much for your exceptional support."
"Well, due to the maintenance of our system, we sincerely apologize that some services will not be available during the following period."

Google翻訳:

"We would like to express our sincere gratitude for your continued support."
"We would like to sincerely apologize for the inconvenience caused to our system maintenance, which will mean that some services will be unavailable during the following period."

定量評価

1. 日常会話(リアルタイムチャット)

API BLEU BERTScore_P BERTScore_R BERTScore_F1 COMET_Score
✅ swift-tranlation-api 21.955 0.8294 0.7583 0.7923 0.795373
❌ google-translation 17.217 0.8649 0.7715 0.8155 0.813745

2. IT系の文章(業界固有表現のワード)

API BLEU BERTScore_P BERTScore_R BERTScore_F1 COMET_Score
✅ swift-tranlation-api 9.64741 0.8114 0.8075 0.8094 0.844593
❌ google-translation 8.93243 0.8333 0.8297 0.8315 0.843592

3. 文化的なニュアンスが含まれる文章(日本固有のワード)

API BLEU BERTScore_P BERTScore_R BERTScore_F1 COMET_Score
❌ swift-tranlation-api 10.926 0.7962 0.7394 0.7667 0.727464
✅ google-translation 11.7429 0.8499 0.7683 0.807 0.714154

4. ビジネスメール(フォーマル文書向け)

API BLEU BERTScore_P BERTScore_R BERTScore_F1 COMET_Score
❌ swift-tranlation-api 8.6207 0.8103 0.7802 0.795 0.809689
✅ google-translation 44.8106 0.8657 0.8564 0.861 0.805863

定性評価結果

1. 日常会話(リアルタイムチャット)

Swift Traslation API...75点
全体として意味は伝わりますが、細かいニュアンスやカジュアルな雰囲気が十分に再現されていません。特に『になったってさ』の伝聞表現や、『よろしくね』の自然な依頼表現、『あ、』のカジュアルな挿入など、英語らしい表現に工夫の余地があります。文のつなぎやトーンをより自然にすると、さらに良い翻訳になります。

Category Score Comment
Accuracy 80 全体的に意味は伝わっていますが、いくつか細かいニュアンスが抜けています。例えば、「になったってさ」は『そうなったらしい』という伝聞のニュアンスですが、英訳では単に『starts at 14:00』と断定的に訳されています。また、『よろしくね』のニュアンス(依頼・親しみ)は『please take care of it!』ではやや不自然です。
Fluency 75 文法的には大きな誤りはありませんが、『please take care of it!』はこの文脈では不自然です。また、文と文の間にスペースがなく、やや読みにくいです。『check them out』はカジュアルで良いですが、全体的にもう少し自然なつなぎ方が望ましいです。
Style 70 原文のカジュアルで親しみやすいトーンが、英訳ではややぎこちなくなっています。『please take care of it!』は直訳的で、英語の自然な依頼表現とは異なります。『あ、』のカジュアルな呼びかけも再現されていません。

✅ Google翻訳...81点
全体として意味は伝わっており、カジュアルなトーンもある程度維持されているが、伝聞表現や依頼のニュアンスなど、細かい部分で原文のニュアンスがやや弱い。文の区切りや口語表現の自然さを改善すると、より良い翻訳になる。

Category Score Comment
Accuracy 85 全体的に意味は伝わっているが、いくつか細かいニュアンスが抜けている。例えば、「になったってさ」は「I heard」や「apparently」などの伝聞表現があるとより忠実。また、「よろしくね!」のニュアンスが英訳ではやや弱い。
Fluency 80 文法的には大きな誤りはないが、文と文の間にスペースがなく、やや読みにくい。"so check it out"はややカジュアルすぎる印象もある。
Style 78 原文のカジュアルさや親しみやすさはある程度再現されているが、"よろしくね!"のニュアンスや、"チェックといてー"の軽い依頼の感じがやや直訳的で、もう少し自然な口語表現が望ましい。


2. 日常会話(リアルタイムチャット)

Swift Traslation API...90点
全体として、原文の意味はほぼ正確に伝わっており、技術的な用語も適切に訳されています。ただし、細かいニュアンスや自然な英語表現の面で若干の改善余地があります。特に "user's reaction" の表現や、注意喚起の文の流れをより自然にすると、さらに質の高い翻訳になります。

Category Score Comment
Accuracy 92 全体的に意味は正確に伝わっていますが、「ユーザーのリアクション(反応)」の訳が "user's reaction" となっており、やや曖昧です。文脈によっては "user interaction" や "user response" の方が適切な場合があります。また、「キャッシュ戦略にはSWRを活用しています」の "活用" は "is used" でも意味は通じますが、"leveraged" や "utilized" の方がニュアンスが近いです。
Fluency 88 文法的には正しいですが、"However, please note that depending on the user's reaction, asynchronous processing will be performed in the background." の部分がやや不自然で、"depending on" の後の主語が曖昧です。"Asynchronous processing may be performed in the background depending on user interactions." のようにするとより自然です。また、2文目の前にスペースがなく、句読点の使い方にやや不備があります。
Style 90 全体的に丁寧で説明的なトーンは維持されていますが、"please note that" の使い方がやや直訳的で、もう少し自然な注意喚起の表現が望ましいです。"キャッシュ戦略にはSWRを活用しています" の部分も、"leveraged" などを使うとより専門的なニュアンスが出ます。

Google翻訳...87点
全体として、原文の意味は十分に伝わっており、技術用語の選択も適切です。ただし、細かい表現や自然さの面で改善の余地があります。特に "reaction" より "interaction"、"will be executed" より "may/can be executed" など、より自然な英語表現を選ぶとさらに良くなります。また、書式上のスペース抜けにも注意が必要です。

Category Score Comment
Accuracy 90 全体的に意味は正確に伝わっていますが、いくつか細かい点で改善の余地があります。例えば、「キャッシュ戦略にはSWRを活用しています」の "for caching strategy" は "as a caching strategy" または "for our caching strategy" の方がより自然です。また、「ユーザーのリアクション(反応)」の "reaction" は "interaction" の方が一般的です。
Fluency 85 文法的には大きな誤りはありませんが、"However, please note that asynchronous processing will be executed in the background depending on the user's reaction." の部分がやや不自然で、"will be executed" よりも "may be executed" や "can be executed" の方が自然です。また、"depending on the user's reaction" も "depending on how the user interacts" などの方が流暢です。
Style 85 全体的にフォーマルなトーンは維持されていますが、"However, please note that..." の前にスペースがなく、書式上のミスがあります。また、原文のニュアンス(注意喚起)がやや直接的すぎる印象です。


3. 文化的なニュアンスが含まれる文章(日本固有のワード)

Swift Traslation API...65点
全体として意味は伝わりますが、用語選択やニュアンスの面で改善の余地があります。特に『手みやげ』や『もったいない』の訳語選択に注意が必要です。また、英語としてより自然な表現にすることで、原文の魅力や多用途性、ポジティブなコンセプトがより伝わるでしょう。

Category Score Comment
Accuracy 70 全体的な意味は伝わっていますが、いくつかの用語選択とニュアンスに問題があります。『手みやげ』は単なる'souvenir'ではなく、訪問時の贈り物というニュアンスがあり、'souvenir'だと旅行土産の意味が強くなります。また、『お茶菓子』は'tea sweets'でも伝わりますが、やや直訳的です。『おつまみ』は単なる'snacks'よりも、飲み物(特にお酒)と一緒に楽しむものというニュアンスが抜けています。『もったいない』のコンセプトも、単に'waste'と訳すと否定的な意味合いが強くなり、日本語の「資源を大切にする」ポジティブなニュアンスが失われています。
Fluency 65 文法的には大きな誤りはありませんが、'With the concept of "waste"'は不自然で、英語話者には違和感があります。また、'can be enjoyed both as "tea sweets" and "snacks".'の部分もやや直訳的で、より自然な表現が望まれます。全体的に直訳調で、英語としての流れがややぎこちないです。
Style 60 日本語原文の柔らかく親しみやすいトーンや、贈り物・お茶請け・おつまみとしての多用途性のニュアンスが十分に表現されていません。'With the concept of "waste"'はやや硬く、原文のポジティブなスタイルが損なわれています。

Google翻訳...80点
意味はほぼ正確に伝わっていますが、細部のニュアンスや表現の自然さに改善の余地があります。特に『手みやげ』のニュアンスや『snack』の重複、文のつながりに注意が必要です。『もったいない』の説明や規格外野菜の表現も、もう少し自然な英語表現が望ましいでしょう。

Category Score Comment
Accuracy 85 全体的に意味は伝わっていますが、いくつか細かい点で改善の余地があります。『手みやげ』は単なる'souvenir'よりも、贈り物や訪問時の手土産というニュアンスが強いので、'gift'や'present'の方がより適切かもしれません。また、『お茶菓子』と『おつまみ』の両方に対応できる点は正しく訳されています。『もったいない』の説明も適切ですが、'non-standard vegetables'はやや直訳的で、'imperfect'や'irregular'などの表現も考えられます。
Fluency 75 文法的には大きな誤りはありませんが、'as a tea snack or as a snack.'の部分が繰り返し感があり、'snack'が重複している印象です。また、'Based on the concept of "mottainai," it uses non-standard vegetables.'の前に文を区切るためのスペースが抜けており、全体的にやや不自然なつながりになっています。
Style 80 全体的に丁寧なトーンですが、原文の温かみや日本文化特有のニュアンス(特に『もったいない』や『手みやげ』)がやや弱くなっています。引用符の使い方は適切です。


4. ビジネスメール(フォーマル文書向け)

Swift Traslation API...72点
全体として意味は伝わっていますが、ビジネス文書としての定型表現や丁寧さ、自然な流れが不足しています。特に冒頭の挨拶や謝罪の表現は、英語のビジネスメールでよく使われる表現(例:Thank you for your continued support. / We sincerely apologize for any inconvenience this may cause.)に置き換えると、より自然でフォーマルな印象になります。今後は、直訳ではなく、英語圏のビジネス文書の慣習に合わせた表現を意識するとさらに良くなります。

Category Score Comment
Accuracy 80 日本語原文の意味は概ね正確に伝わっていますが、いくつか細かいニュアンスが抜けています。特に「平素より格別のご高配を賜り厚く御礼申し上げます」の部分は、英語ではやや直訳的で、ビジネス文書でよく使われる定型表現(例:Thank you for your continued support.)の方が自然です。また、『謹んでお詫び申し上げます』の丁寧さや謙譲のニュアンスがやや弱いです。
Fluency 70 文法的には大きな誤りはありませんが、"Well," で始まるのはビジネス文書としては不自然です。また、文のつなぎや表現がややぎこちなく、"I would like to thank you very much for your exceptional support." もやや不自然です。全体的にもう少し洗練された表現が望まれます。
Style 65 日本語原文のフォーマルで丁寧なビジネス文書のトーンが、英訳では十分に再現されていません。特に冒頭の挨拶や謝罪の部分で、英語のビジネスメールでよく使われる定型表現や丁寧な言い回しが不足しています。

Google翻訳...70点
全体として意味は伝わりますが、ビジネス文書としての丁寧さや格式、自然な英語表現に課題があります。特に『caused to our system maintenance』の部分は文法的にも意味的にも不適切で、より自然な表現(due to our system maintenance)に修正が必要です。また、原文の冒頭の感謝表現も、より丁寧な英語表現(e.g., 'We would like to express our sincere appreciation for your continued patronage.')が望ましいです。

Category Score Comment
Accuracy 75 全体的な意味は伝わっていますが、いくつかの点で原文のニュアンスや丁寧さが十分に反映されていません。特に「格別のご高配を賜り厚く御礼申し上げます」の部分は、単なる『continued support』ではやや簡略化されすぎています。また、『caused to our system maintenance』は不自然で、正しくは『due to our system maintenance』などが適切です。
Fluency 65 文法的な誤りや不自然な表現が目立ちます。特に『caused to our system maintenance』は英語として不自然で意味が通じにくいです。また、文が長くなりすぎており、句読点の使い方(ピリオドの後にスペースがないなど)も改善の余地があります。
Style 70 日本語原文の非常に丁寧なビジネス文書のトーンが、英訳ではややカジュアルかつ直接的になっています。『We would like to sincerely apologize』は丁寧ですが、全体として日本語の謙譲表現や格式が十分に再現されていません

総評

英訳の精度検証は生成AIを使うのが間違いないです。(定量評価はあまり当てにならなかった..)
最初「お、精度も良いし無料で使えるの強!」って思ってましたが、精度的にはGoogle翻訳とどっこいどっこいって感じですかね。
とはいえ、やはり無料で使えるは結構ありがたい。
生成AIを使えばもっと良い精度の英訳は出せますが、その分待機時間が少し発生するんでUXを考えると速攻で英訳してくれるSwift Translation APIの方が良いのではと思いました。

ヘッドウォータース

Discussion