18 KiB
複数言語のサポート
スケッチノート作成者: Nitya Narasimhan。画像をクリックすると拡大表示されます。
このビデオでは、Azureの音声サービスの概要を説明します。以前のレッスンで扱った音声からテキストへの変換やテキストから音声への変換に加え、このレッスンで取り上げる音声の翻訳についても紹介しています。
🎥 上の画像をクリックしてビデオを視聴してください
レクチャー前のクイズ
はじめに
これまでの3つのレッスンでは、音声をテキストに変換する方法、言語の理解、テキストを音声に変換する方法について学びました。これらはすべてAIによって実現されています。AIが人間のコミュニケーションを支援できるもう一つの分野が言語翻訳です。これは、英語からフランス語のように、ある言語を別の言語に変換する技術です。
このレッスンでは、AIを使ってテキストを翻訳する方法を学び、スマートタイマーが複数の言語でユーザーとやり取りできるようにする方法を学びます。
このレッスンで学ぶ内容は以下の通りです:
🗑 このプロジェクトの最後のレッスンです。このレッスンと課題を完了した後は、クラウドサービスをクリーンアップするのを忘れないでください。課題を完了するためにサービスが必要なので、まず課題を完了してください。
必要に応じて、プロジェクトのクリーンアップガイドを参照してください。
テキストを翻訳する
テキスト翻訳は70年以上にわたって研究されてきたコンピュータサイエンスの課題であり、AIとコンピュータの性能向上のおかげで、現在では人間の翻訳者に匹敵するレベルに近づいています。
💁 その起源はさらに遡り、9世紀のアラビアの暗号学者アル・キンディにまで至ります。彼は言語翻訳の技術を開発しました。
機械翻訳
テキスト翻訳は、異なる言語ペア間で翻訳を行う技術として知られる機械翻訳(MT)から始まりました。MTは、ある言語の単語を別の言語に置き換えることで機能しますが、単純な単語の置き換えでは意味が通じない場合に、フレーズや文の一部を正しく翻訳するための技術を追加します。
🎓 翻訳ツールが1つの言語から別の言語への翻訳をサポートする場合、これらは「言語ペア」として知られています。異なるツールは異なる言語ペアをサポートしており、すべての言語ペアを網羅しているわけではありません。例えば、ある翻訳ツールが英語からスペイン語、スペイン語からイタリア語をサポートしていても、英語からイタリア語はサポートしていない場合があります。
例えば、「Hello world」を英語からフランス語に翻訳する場合、「Hello」を「Bonjour」、「world」を「le monde」に置き換えることで、「Bonjour le monde」という正しい翻訳が得られます。
しかし、異なる言語が同じことを表現する方法が異なる場合、単純な置き換えではうまくいきません。例えば、英語の「My name is Jim」はフランス語では「Je m'appelle Jim」となります。これは直訳すると「私は自分をジムと呼びます」という意味になります。「Je」はフランス語で「私」を意味し、「moi」は「私自身」を意味しますが、母音で始まる動詞と結合して「m'」となります。「appelle」は「呼ぶ」を意味し、「Jim」は名前なので翻訳されません。単語の順序も問題になります。「Je m'appelle Jim」を単純に置き換えると「I myself call Jim」となり、英語とは異なる単語の順序になります。
💁 一部の単語は翻訳されることがありません。例えば、私の名前はどの言語でも「Jim」のままです。異なるアルファベットを使用する言語や、異なる音に異なる文字を使用する言語に翻訳する場合、単語は音訳されることがあります。これは、元の単語と同じ音を再現するために適切な文字や記号を選択することを意味します。
また、イディオム(慣用句)も翻訳の課題です。イディオムは、言葉の直訳とは異なる意味を持つフレーズです。例えば、英語のイディオム「I've got ants in my pants」は、文字通り「ズボンの中にアリがいる」という意味ではなく、「落ち着きがない」という意味です。これをドイツ語に翻訳すると、ドイツ語版の「お尻にハチがいる」という表現に変える必要があります。
💁 地域によっても複雑さが異なります。例えば、アメリカ英語では「pants」は外衣を指しますが、イギリス英語では「pants」は下着を指します。
✅ 複数の言語を話せる場合、直接翻訳できないフレーズをいくつか考えてみてください。
機械翻訳システムは、特定のフレーズやイディオムを翻訳する方法を記述した大規模なルールデータベースと、可能な選択肢から適切な翻訳を選ぶ統計的手法に依存しています。これらの統計的手法は、人間が複数の言語に翻訳した膨大なデータベースを使用して、最も可能性の高い翻訳を選択する技術であり、統計的機械翻訳と呼ばれます。一部のシステムでは、中間言語を使用して翻訳を行う方法もあります。この方法では、新しい言語を追加する際に、すべての言語間で翻訳するのではなく、中間言語との間で翻訳を行います。
ニューラル翻訳
ニューラル翻訳は、AIの力を活用して翻訳を行う方法で、通常は1つのモデルを使用して文全体を翻訳します。これらのモデルは、人間が翻訳した膨大なデータセット(ウェブページ、本、国連の文書など)を使用してトレーニングされています。
ニューラル翻訳モデルは、フレーズやイディオムの膨大なデータベースを必要としないため、機械翻訳モデルよりも通常小型です。現代のAIサービスでは、統計的機械翻訳とニューラル翻訳を組み合わせた技術がよく使用されています。
どの言語ペアにも1対1の翻訳は存在しません。異なる翻訳モデルは、トレーニングに使用されたデータに応じて、わずかに異なる結果を生成します。また、翻訳は必ずしも対称的ではありません。ある言語から別の言語に翻訳し、さらに元の言語に戻すと、元の文とは少し異なる結果になることがあります。
✅ Bing翻訳、Google翻訳、またはAppleの翻訳アプリなど、異なるオンライン翻訳ツールを試してみてください。いくつかの文を翻訳して比較してみましょう。また、1つのツールで翻訳し、別のツールで元に戻すことも試してみてください。
翻訳サービス
アプリケーションから音声やテキストを翻訳するために使用できるAIサービスはいくつかあります。
Cognitive Services 音声サービス
これまでのレッスンで使用してきた音声サービスには、音声認識の翻訳機能があります。音声を認識する際に、同じ言語でのテキストだけでなく、他の言語でのテキストも取得することができます。
💁 この機能は音声SDKでのみ利用可能で、REST APIには翻訳機能が組み込まれていません。
Cognitive Services 翻訳サービス
翻訳サービスは、特定の翻訳機能を提供する専用のサービスで、1つの言語から1つ以上のターゲット言語にテキストを翻訳することができます。翻訳だけでなく、不適切な表現をマスクする機能や、特定の単語や文の翻訳を指定する機能もサポートしています。これにより、翻訳したくない用語や、特定のよく知られた翻訳を使用することができます。
例えば、シングルボードコンピュータ「Raspberry Pi」を指す文「I have a Raspberry Pi」をフランス語に翻訳する場合、「Raspberry Pi」という名前をそのまま保持し、「J’ai un Raspberry Pi」とする必要があります。「J’ai une pi aux framboises」(ラズベリーのパイ)と翻訳してはいけません。
翻訳リソースを作成する
このレッスンでは、翻訳リソースが必要です。REST APIを使用してテキストを翻訳します。
タスク - 翻訳リソースを作成する
-
ターミナルまたはコマンドプロンプトから、以下のコマンドを実行して、
smart-timer
リソースグループに翻訳リソースを作成します。az cognitiveservices account create --name smart-timer-translator \ --resource-group smart-timer \ --kind TextTranslation \ --sku F0 \ --yes \ --location <location>
<location>
をリソースグループを作成した場所に置き換えてください。 -
翻訳サービスのキーを取得します:
az cognitiveservices account keys list --name smart-timer-translator \ --resource-group smart-timer \ --output table
キーの1つをコピーしてください。
翻訳を使ってアプリケーションで複数言語をサポートする
理想的には、アプリケーション全体ができるだけ多くの異なる言語を理解できるべきです。音声認識から言語理解、音声での応答まで対応する必要があります。ただし、これは非常に多くの作業を伴います。翻訳サービスを使用することで、アプリケーションの開発時間を短縮することができます。
例えば、英語を使用してエンドツーエンドで動作するスマートタイマーを構築しているとします。英語の音声を理解し、それをテキストに変換し、英語で言語理解を行い、英語で応答を構築し、英語の音声で応答する仕組みです。日本語をサポートしたい場合、まず日本語の音声を英語のテキストに翻訳し、アプリケーションのコア部分はそのままにして、応答テキストを日本語に翻訳してから日本語の音声で応答するようにすることができます。これにより、日本語サポートを迅速に追加することができ、後で完全なエンドツーエンドの日本語サポートを提供することができます。
💁 機械翻訳に依存する欠点は、異なる言語や文化が同じことを表現する方法が異なるため、翻訳が期待する表現と一致しない可能性があることです。
機械翻訳は、ユーザーが作成したコンテンツを作成時に翻訳するアプリやデバイスの可能性も広げます。SF作品では、しばしば「ユニバーサルトランスレーター」と呼ばれるデバイスが登場します。これらは、異星人の言語を(通常は)アメリカ英語に翻訳するデバイスです。このようなデバイスは、異星人の部分を除けば、もはやSFではなく現実の科学です。音声やテキストのリアルタイム翻訳を提供するアプリやデバイスはすでに存在しています。
その一例が、以下のビデオで紹介されているMicrosoft Translatorモバイルアプリです。
🎥 上の画像をクリックしてビデオを視聴してください
このようなデバイスが利用可能であれば、特に旅行中や、相手の言語を知らない場合に役立つでしょう。空港や病院で自動翻訳デバイスを利用できれば、アクセシビリティの向上に大いに貢献します。
✅ 調査してみましょう:市販されている翻訳IoTデバイスはありますか?スマートデバイスに組み込まれた翻訳機能はどうでしょうか?
👽 真のユニバーサルトランスレーター(異星人と話すためのもの)は存在しませんが、Microsoft Translatorはクリンゴン語をサポートしています。Qapla’!
AIサービスを使ってテキストを翻訳する
この翻訳機能をスマートタイマーに追加するために、AIサービスを使用することができます。
タスク - AIサービスを使ってテキストを翻訳する
以下のガイドに従って、IoTデバイスでテキストを翻訳する方法を学びましょう:
🚀 チャレンジ
機械翻訳は、スマートデバイス以外のIoTアプリケーションにどのように役立つでしょうか?話し言葉だけでなく、テキストにおいても翻訳がどのように役立つか考えてみてください。
レクチャー後のクイズ
復習と自己学習
- Wikipediaの機械翻訳のページで機械翻訳についてさらに学びましょう。
- Wikipediaのニューラル機械翻訳のページでニューラル機械翻訳についてさらに学びましょう。
- Microsoftの音声サービスでサポートされている言語のリストを、Microsoft Docsの音声サービスの言語と音声サポートのドキュメントで確認してください。
課題
免責事項:
この文書は、AI翻訳サービス Co-op Translator を使用して翻訳されています。正確性を期すよう努めておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があります。元の言語で記載された原文が正式な情報源と見なされるべきです。重要な情報については、専門の人間による翻訳を推奨します。この翻訳の利用に起因する誤解や誤認について、当社は一切の責任を負いません。