ショートカットアプリを楽しむ(1):翻訳するショートカット
iOS/iPadOS 12以降、「ショートカット」というアプリをApple社が無償提供しています。使い方次第でさまざま便利なことができるので人気のアプリです。
今回はショートカットアプリで「日本語を話して、それを英語に翻訳し、英語で伝える」ことができる仕組みを作りながら、ショートカットの作り方の基本の考え方を知る note です。
ショートカットについての説明、インストールや初期設定については、今回の説明では省略しますが、指伝話メモリからショートカットを呼び出すことについて書いた説明書「指伝話メモリ1-2-3! ショートカットアプリ・入門編」を参考にしていただくと良いと思います。
https://yubidenwa.jp/products/memory/ym123-shortcutappbasic/
完成形のイメージ
画面をタップすると、自分が話す言葉を聞き取って英語に訳して音声で伝えてくれる、という仕組みを作ってみます。
そこで行われる処理は次の3ステップに分けられます。
処理1.話す言葉を聞き取り、テキスト(文字)にする
処理2.テキスト(文字)を、翻訳して英語のテキストにする。
処理3.英語のテキストを、読み上げる。
処理の考え方
自動販売機はお金を入れると飲み物がでてきます。こういった仕組みを 処理 と呼んでいます。
1つ目の処理「話す言葉を聞き取り、テキスト(文字)にする」は、お金の代わりに「話した言葉」を入れ、飲み物の代わりに「テキスト(文字)」がでてくる自動販売機です。
何かを渡して、何かをもらう、これが処理です。プログラミングというと難しいイメージがありますが、簡単に考えると、こういう処理の連続を示したものがプログラムです。
ショートカットの処理(アクション)
ショートカットには、さまざまな処理が事前に準備されています。アクション と呼ばれているものです。全部を自分で一から準備しなくても、ある程度のことをやってくれる処理は部品として用意されていますので、私たちはその部品を組み合わせて新しい処理を作ればよいです。
今回作るのは、次の3つの処理ですが、それぞれの処理はショートカットのアクションとして既に用意されているので、それを選んでつなげれば出来上がりとなります。
処理1.話す言葉を聞き取り、テキスト(文字)にする
→ テキストを音声入力
処理2.テキスト(文字)を、翻訳して英語のテキストにする。
→ Microsoftでテキストを翻訳
処理3.英語のテキストを、読み上げる。
→ テキストを読み上げる
ショートカットの作成
新規ショートカットを作成します。3つのアクションは、いずれも 書類 のカテゴリーに入っていますので、ショートカットの編集画面に3つのアクションを順番に追加します。
テキストを音声入力 のところで表示を増やして内容を確認してください。言語は初期値では 日本語(日本)となっています。つまり、日本語で話しかけることになります。ここはそのままで結構です。
Microsoftでテキストを翻訳 のところを見ると、初期値は 検出された言語を英語 に翻訳 となっています。ここもそのままで結構です。
テキストを読み上げる のところで表示を増やして内容を確認してください。言語は初期値では 日本語(日本) になっていますが、ここでは翻訳された英語を読み上げるので、 英語(イギリス) に変更します(英語は何種類かあるので他の英語でも構いません)。
画面右上の 次へ をタップし、ショートカット名をつけて(英語に翻訳、としておきます)完了します。
作成されたショートカットは、ショートカットアプリから呼び出す他、ホーム画面のウィジェットから実行することもできます。
フランス語を話すようにしてみたり、英語で話しかけて日本語にする機能に変更したりして遊んでください。
解説
ショートカットでは、「誰かに何かを渡して頼むと、他のものになって返してくれる」仕組みを組み合わせて使うものです。
それぞれのアクションがどんな仕組みになっているかは、ショートカットのアクションの一覧で i マークをタップすると解説が表示されます。
テキストを音声入力 では、「音声で話された内容をテキストに書き起こし、結果を次のアクションに渡します。」となっています。結果が テキスト となっており、この処理が終わると、話したことばがテキストになって戻ってくることがわかります。
Microsoftでテキストを翻訳 では、「アクションに渡されたテキストを別の言語に翻訳します」となっています。入力が テキスト で出力も テキスト です。テキストを渡すと翻訳してテキストを返す処理です。
テキストを読み上げる では、「入力されたテキストを読み上げる」となっています。入力は テキスト で出力は (テキスト)入力 となっています。渡されたテキストを読み上げ、そのテキストを結果として次の処理にそのまま渡しています。ここでは英語に翻訳されたテキストです。
今回は処理はここまでですが、例えば、英語に翻訳されたテキストを今度は日本語に翻訳しなおしてそれを読み上げる、といった処理にする場合に、渡されたテキストを使って処理を続けることができます。
こんなのを作ってみましょう(練習問題)
今回のショートカットを改良して、次のようなショートカットを作ってみました。是非、挑戦してみてください。答え合わせのショートカットは本文の最後にリンクを掲載しています。
1)日本語で話しかけると翻訳して英語を話すのに続いて、その英語を逆に日本語に翻訳して日本語で話すショートカット。正しく翻訳できたかな?と確かめることができますね。(確認翻訳ショートカット)
2)1に加えて、英語に翻訳されたテキストの内容をクリップボードにコピーして後で貼り付け(ペースト)で使えるようにしておくショートカット。正しく翻訳できた内容を他のアプリに貼り付けることができると便利です。共有 カテゴリーにあるアクション クリップボードにコピー を使います。(確認翻訳コピーショートカット)
3)最初に翻訳したい言葉を言い、次に音声で「英語」「フランス語」「ドイツ語」のいずれかを言うと、指定した言語に翻訳して音声で伝えるショートカット。スクリプティング カテゴリーにあるアクション If文 と 変数を設定 を使います。変数というともうお手上げという方のために、次回解説します。(3ヶ国語翻訳ショートカット)
蛇足
名前を仮にfさんと呼びますが、通訳をしている方がいます。「fさんに日本語で伝えると、英語に訳して伝えてくれる」仕事です。その仕事というのは 処理、ショートカットでいうところの アクション になります。先ほどの「誰かに何かを渡して頼むと、他のものになって返してくれる」ということです。
「自動販売機にお金を入れると、飲み物になってでてくる」も、同じ仕組みです。この場合、人ではなく自動販売機が選ばれた飲み物を出すという アクション(処理) をしていると言うことができます。
この「誰か(fさん)に何か(xという名前のもの)を渡すと、別なもの(yという名前のもの)になって返してくれる」というのを記号で書くと、f(x) → y となりますが、これが中学校で習った y = f(x) という関数です。
おっと、ここでどうして記号に置き換えるのか?というところで混乱して数学が嫌いになってしまう人が多かったと聞きました。:-) 何故 x であって p ではないの?と思うかもしれませんが、みんなが適当な記号を使い始めるとわかりにくいから、同じ記号を使うようになってると理解してください。
こんな例はどうでしょう?最近流行りのスマートスピーカーがありますが、「アレクサ、今日の天気は?」と聞くと天気を答えてくれます。「アレクサ、いま何時?」と聞くと時間を答えてくれます。このように質問を変えると答えも変わりますが、話しかけると返事をするのがアレクサです。
これは、アレクサ(質問) → 返事 という関数だと考えることができます。
アレクサに伝える質問はいろいろ変えられるので、仮に質問は x と書いてみます。返事もいろいろだからyと書いてみます。
アレクサ(x) → y 、つまり、y = アレクサ(x) です。アレクサだけではなくてOK Googleの時もあり、他のスマートスピーカーでも同じなので、スマートスピーカーをfということにすると、f(x) → y つまり y = f(x) ということになります。
xを変えるのではなく fのアクション(処理)を変えることでyが変わる、と考えることができます。x(自分)を変えるのではなく f(着る服)を変えることで y(相手の印象)が変わる、とか、x(話す内容)を変えるのではなく f(話し方)を変えることで y(相手の返事)が変わるということがあります。まさに人生は関数です。人生にショートカット(近道)はないけどね。
作成したショートカットのリンク
今回作成したショートカットをコピーするリンクです。考え方・作り方はさまざまです。練習用にシンプルに作ったものです。参考にしてください。