AI を組み込んだ言語検出

公開日: 2024 年 9 月 24 日、最終更新日: 2025 年 5 月 20 日

Browser Support

  • Chrome: 138.
  • Edge: not supported.
  • Firefox: not supported.
  • Safari: not supported.

Source

ある言語から別の言語にテキストを翻訳する前に、まず、指定されたテキストで使用されている言語を特定する必要があります。以前は、翻訳を行うには、テキストをクラウド サービスにアップロードし、サーバーで翻訳してから、結果をダウンロードする必要がありました。

Language Detector API はクライアントサイドで動作するため、ユーザーのプライバシーを保護できます。この処理を行う特定のライブラリを配布することもできますが、ダウンロードするには追加のリソースが必要になります。

言語検出を使用する場合

Language Detector API は、主に次のシナリオで役立ちます。

  • 入力テキストの言語を特定して翻訳できるようにする。
  • 入力テキストの言語を特定して、有害性検出などの言語固有のタスクに適切なモデルを読み込めるようにする。
  • 入力テキストの言語を特定して、オンライン ソーシャル ネットワーキング サイトなどで正しくラベル付けできるようにする。
  • 入力テキストの言語を特定して、アプリのインターフェースを適宜調整できるようにする。たとえば、ベルギーのサイトで、フランス語を話すユーザーに関連するインターフェースのみを表示する場合などです。

始める

ハードウェア要件を確認する

Chrome でこれらの API を使用して機能を操作するデベロッパーとユーザーには、次の要件があります。他のブラウザでは、オペレーティング要件が異なる場合があります。

Language Detector APITranslator API は、パソコン版 Chrome で動作します。これらの API はモバイル デバイスでは動作しません。

Prompt APISummarizer APIWriter APIRewriter APIProofreader API は、次の条件を満たす場合に Chrome で動作します。

  • オペレーティング システム: Windows 10 または 11、macOS 13 以降(Ventura 以降)、 Linux、またはChromebook Plus デバイスの ChromeOS(プラットフォーム 16389.0.0 以降)。 Gemini Nano を使用する API は、Chromebook Plus 以外のデバイスの Chrome for Android、iOS、ChromeOS ではまだサポートされていません 。
  • ストレージ: Chrome プロファイルを含むボリュームに 22 GB 以上の空き容量。
  • GPU または CPU: 組み込みモデルは GPU または CPU で実行できます。
    • GPU: 4 GB を超える VRAM。
    • CPU: 16 GB 以上の RAM と 4 個以上の CPU コア。
    • : 音声入力を使用する Prompt API には GPU が必要です。
  • ネットワーク: 無制限のデータまたは定額制接続。

Gemini Nano の正確なサイズは、ブラウザがモデルを更新する際に異なる場合があります。現在のサイズを確認するには、chrome://on-device-internals にアクセスしてください。

機能検出を実行して、ブラウザが Language Detector API をサポートしているかどうかを確認します。

if ('LanguageDetector' in self) {
  // The Language Detector API is available.
}

モデルのダウンロード

言語検出は、言語検出という特定のタスク向けにファインチューニングされたモデルに依存しています。API はブラウザに組み込まれていますが、サイトが API を初めて使用しようとすると、モデルがオンデマンドでダウンロードされます。Chrome では、このモデルは他のモデルと比較して非常に小さいものです。このモデルは他の Chrome 機能で使用されているため、すでに存在している可能性があります。

モデルを使用できる状態かどうかを確認するには、非同期の LanguageDetector.availability() 関数を呼び出します。availability() へのレスポンスが downloadable の場合は、ダウンロードに時間がかかる可能性があるため、ダウンロードの進行状況をリッスンしてユーザーに通知します。

ダウンロードをトリガーして言語検出器をインスタンス化するには、 ユーザーのアクティベーションを確認します。次に、非同期の LanguageDetector.create() 関数を呼び出します。

const detector = await LanguageDetector.create({
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  },
});

言語検出器を実行する

Language Detector API はランキング モデルを使用して、特定のテキストで使用されている可能性が最も高い言語を判断します。ランキング は機械学習の一種で、アイテムのリストを並べ替えることを目的としています。この場合、Language Detector API は言語を確率の高い順に並べ替えます。

detect() 関数は、最初の結果(最も可能性の高い回答)を返すか、信頼度でランク付けされた候補を反復処理できます。これは、{detectedLanguage, confidence} オブジェクトのリストとして返されます。confidence レベルは、0.0(信頼度が最も低い)から 1.0(信頼度が最も高い)までの値で表されます。

const someUserText = 'Hallo und herzlich willkommen!';
const results = await detector.detect(someUserText);
for (const result of results) {
  // Show the full list of potential languages with their likelihood, ranked
  // from most likely to least likely. In practice, one would pick the top
  // language(s) that cross a high enough threshold.
  console.log(result.detectedLanguage, result.confidence);
}
// (Output truncated):
// de 0.9993835687637329
// en 0.00038279531872831285
// nl 0.00010798392031574622
// ...

API プレイグラウンド

API プレイグラウンドで Language Detector API を試してみてください。テキストエリアに、さまざまな言語で記述されたテキストを入力します。

権限ポリシー、iframe、ウェブワーカー

デフォルトでは、Language Detector API はトップレベル ウィンドウとその同一オリジンの iframe でのみ使用できます。権限ポリシー allow="" 属性を使用して、API へのアクセスをクロスオリジン iframe に委任できます。

<!--
  The hosting site at https://main.example.com can grant a cross-origin iframe
  at https://cross-origin.example.com/ access to the Language Detector API by
  setting the `allow="language-detector"` attribute.
-->
<iframe src="https://cross-origin.example.com/" allow="language-detector"></iframe>

Language Detector API はウェブワーカーでは使用できません。これは、権限ポリシーのステータスを確認するために、各ワーカーの責任あるドキュメントを確立することが複雑であるためです。

フィードバックをお寄せください

Language Detector API を使用して構築したものをぜひお知らせください。X

Chrome の実装に関するフィードバックがある場合は、 Chromium のバグを報告してください。

早期プレビュー プログラム に参加して、新しい組み込み AI API をいち早く確認し、 メーリング リストでのディスカッションに参加してください。