このページの本文へ

松本典子の「はじめよう!Azure Logic Apps/Power Automateでノーコード/ローコード」 第29回

Microsoft Teamsに投稿されたメッセージを日本語に翻訳する

DeepLコネクタ公開! 多言語自動翻訳の仕組みをノーコードで作ろう

2023年08月21日 08時00分更新

文● 松本典子 編集● 大塚/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

 こんにちは、Microsoft MVP(Azure / Business Applications)の松本典子です。

 数多くの言語に対応し、自然で流暢な翻訳文を出力すると評判の自動翻訳サービス「DeepL」。そのAzure Logic Apps/Power Automate用公式コネクタが公開(プレビューリリース)されました。そこで今回は、「Microsoft Translator」コネクタとDeepLコネクタを組み合わせて、多言語のメッセージを自動翻訳する仕組みをノーコードで作成してみましょう。

1. 事前準備

 今回はDeepLコネクタを利用し、「Microsoft Teams」に投稿された多言語のメッセージを日本語に自動翻訳するワークフローを作成します。なお、今回の記事ではPower Automateで説明しますが、Logic Apps/Power Automateのどちらでも利用できます。

1-1. Microsoft Teamsのチャネル作成

 まずはTeamsに、DeepLの翻訳結果を投稿するためのチャネルを1つ作成しておきます。今回は「DeepL翻訳」というチャネル名にしました。

1-2. DeepL APIの準備

 「DeepL」コネクタを使用するには、「DeepL API Free(無料版)」または「DeepL API Pro(有料版)」のサブスクリプションが必要です。今回は、1か月に50万文字まで翻訳できるFreeのAPIを利用します。

 DeepL APIページにアクセスします。

DeepL APIページ(https://www.deepl.com/pro-api?cta=menu-pro-api)

 「無料で登録する」をクリックして、まずはメールアドレスとパスワードを登録します。

アカウントの設定

 次の画面では、名前、住所、クレジットカード情報※注など指示に従って入力していきます。

※注:無料のFreeプランでも、APIの不正利用を防ぐためにクレジットカード情報の登録が必要となっています。また、カード登録の段階で「カードが拒否されました。 (Error Code: WHWSL5)」というエラーが出る場合があります。これはカード会社のセキュリティチェックにより、第三者による不正使用ではないかの確認のため、DeepL APIでのカード利用が制限されている状態です。このエラーコードが出た場合は、カード会社へ問い合わせをし、一時的な制限解除を依頼してください。

DeepL API Freeを無料で登録する

 最後に、上図のような「確認」ページが表示されます。利用規約などを確認したうえで「無料で登録する」をクリックすると、DeepL APIが利用できるようになります。

1-3. DeepL 認証キーの確認

 DeepL APIページの右上に、先ほど登録したメールアドレスが表示されています(表示されていない場合は「ログイン」してください)。

 メールアドレスをクリックすると、プルダウンメニューに「アカウント」の項目が表示されるのでクリックします。

DeepL APIで使用する認証キー

 アカウント情報が表示されるページの下方に、DeepL APIの認証キーが表示されています。この認証キーはDeepLコネクタの接続に利用します。注意書きにもあるとおり、他人には公開しない(知られない)ように気をつけてください。

2. ワークフロー全体図

ワークフロー全体図

 今回作成するワークフローの全体像は上図のとおりです。

 Microsoft Teamsの特定チャネル(DeepL翻訳チャネル)に新しいメッセージが投稿された際に、メッセージが日本語以外の言語であればDeepLで自動翻訳を行い、翻訳したメッセージをチャネルに投稿する仕組みです。

2-1. トリガーの設定

 まずはMicrosoft Teamsの指定のチャネルに新しいメッセージが投稿されたら、それをトリガーとしてワークフローが起動するように設定します。

トリガーの設定

 検索窓に「Teams」と入力して、「Microsoft Teams」コネクタを選択します。トリガー一覧から「チャネルに新しいメッセージが追加されたとき」をクリックします。

 (1)チーム:一覧から該当するチームを選択
 (2)チャネル:「1-1. Microsoft Teamsのチャネル作成」で作成したチャネル名を選択

2-2. アクションの設定:Htmlからテキスト

 Microsoft Teamsから送信されたメッセージはHTML形式になっているので、次のアクションでテキスト形式に変換します。

アクションの設定:Htmlからテキスト

 検索窓に「HTML」と入力して「Content Conversion」コネクタを選択し、アクション一覧から「Html からテキスト」をクリックします。

 「コンテンツ」には、動的なコンテンツから「メッセージ 本文 コンテンツ」を選択します。

2-3. アクションの設定:言語の検出

 テキスト形式に変換したメッセージの言語を判定します。これには「Microsoft Translator V2」コネクタの言語コード検出アクションを利用します。

アクションの設定:「Microsoft Translator V2」コネクタの接続

 まず検索窓に「翻訳」と入力して、「Microsoft Translator V2」コネクタを選択します。

 今回利用するMicrosoft Translator V2コネクタは、「Subscription Key」が空白でも利用可能です。初めて利用するときは「接続名」のみ入力して作成すると、1日あたり5万5000文字、1分あたり100リクエストまで無料で利用できます。

アクションの設定:言語の検出

 アクション一覧から「言語の検出」をクリックします。「テキスト」には、「Htmlからテキスト」の動的なコンテンツから「本文」を選択します。

2-4. アクションの設定:条件

 検出した言語コードを利用して、メッセージが日本語かその他の言語かの判定を行います。

アクションの設定:「コントロール」コネクタ

 「組み込み」タブをクリックし、「コントロール」コネクタをクリックします。

アクションの設定:条件

 アクション一覧から「条件」をクリックします。

アクションの設定:条件

 以下の内容で条件を設定します。

 (1)動的なコンテンツ「言語の検出」の「言語コード」を選択
 (2)次の値に等しい
 (3)「ja」と入力

 これにより、メッセージが日本語(言語コード「ja」)であれば「はいの場合」の処理を、他の言語であれば「いいえの場合」の処理が行われます。

2-4-1. 条件:はいの場合

 上述のとおり、メッセージが日本語のときは「はいの場合」に設定されたアクションが実行されます。

条件:はいの場合

 ただし今回、日本語のメッセージは翻訳しないので、ここでは何もアクションを設定しません。

2-4-2. 条件:いいえの場合

 メッセージが日本語以外のときは「いいえの場合」の処理が実行されます。

条件:いいえの場合

 今回はここに、DeepLコネクタを使ったメッセージの自動翻訳処理を追加します。まず、「いいえの場合」の中の「アクションの追加」をクリックします。

2-4-2-1. アクションの設定:Translate text, use this for general text translation

条件:アクションの設定:Translate text, use this for general text translation

 検索窓に「DeepL」と入力して、「DeepL」コネクタを選択します。続いてアクション一覧から、「Translate text, use this for general text translation(テキストの翻訳:一般的なテキスト翻訳ではこれを使います)」を選択します。

DeePLコネクタの接続

 初めて「DeepL」コネクタを利用する場合は、上図のような表示になります。まずはコネクタ経由でDeepL APIに接続するための設定を行います。

 (1)接続名:わかりやすい名前を入力(今回は「DeepL-PowerAutomate」としました)
 (2)Plan Selection:今回は「DeepL API Free」を選択
 (3)API Key:「1-3. DeepL 認証キーの確認」の内容をコピペ

 以上の内容を入力したら、「作成」をクリックします。

条件:アクションの設定:Translate text, use this for general text translation

 以下のように必須項目のみ設定します。

 (1)Text to be translated:翻訳対象とするテキスト。「Html からテキスト」の動的なコンテンツ「本文」を選択
 (2)Target Language:翻訳先の言語。一覧から「JA」(日本語)を選択

 この設定により、DeepLが日本語以外のメッセージを日本語に自動翻訳します。

2-4-2-2. アクションの設定:チャネル内のメッセージで応答します

 最後に、DeepLで自動翻訳した内容をMicrosoft Teamsの指定チャネルに投稿します。

アクションの設定:チャネル内のメッセージで応答します

 検索窓に「Teams」と入力して、「Microsoft Teams」コネクタを選択します。アクション一覧から「チャネル内のメッセージで応答します」をクリックします。

 (1)投稿者:「Flow bot」を選択
 (2)投稿先:「Channel」を選択
 (3)Message ID:「チャネルに新しいメッセージが追加されたとき」の動的なコンテンツから「メッセージID」を選択
 (4)Team:一覧から該当のチームを選択
 (5)Channel:「1-1. Microsoft Teamsのチャネル作成」で作成したチャネル名を選択
 (6)Message:自動翻訳した内容とわかるように「[このメッセージはDeepLで翻訳されました]」という文言を入力。その後に「Translate text, use this for general text translation」の動的なコンテンツから「Text」を選択
 (7)(6)で動的なコンテンツ「Text」を選択すると、自動的に「Apple to each」が設定されます

 以上でワークフローが完成しました。最後は忘れずに、「DeepL-Teams翻訳」などわかりやすい名前をつけてワークフローを保存してください。

3. 実行結果

 実際にワークフローを動かしてみましょう。「1-1. Microsoft Teamsのチャネル作成」で作成したチャネルに、まずは日本語のメッセージを投稿してみます。

日本語のメッセージを投稿

 新規メッセージの投稿によってワークフローは起動しますが、メッセージが日本語の場合は翻訳処理はなされず、返信はありません。

英語のメッセージを投稿。自動翻訳の結果が返信された

中国語のメッセージを投稿。こちらも自動翻訳された

 一方で、日本語以外の言語でメッセージを投稿し、しばらく待つと、上図のようにDeepLの翻訳結果が返信されます。

最後に

 今回は、Microsoft TranslatorコネクタとDeepLコネクタを組み合わせることで、メッセージを自動翻訳する仕組みを作成しました。

 なおMicrosoft Teamsコネクタのトリガーは、メッセージ投稿後に即時実行されるわけではないため、投稿してから翻訳結果が返信されるまで、最大で3分程度かかります。コネクタの特性を理解して利用すると便利な仕組みがノーコードで作成できるので、ぜひ活用してみてください。

参考資料

●DeepLコネクタ(プレビュー)リファレンス
●Microsoft Power Automateで使えるDeepL APIのカスタムコネクタ

カテゴリートップへ

この連載の記事