|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "b73fe10ec6b580fba2affb6f6e0a5c4d",
|
|
|
"translation_date": "2025-08-25T00:06:59+00:00",
|
|
|
"source_file": "6-consumer/lessons/3-spoken-feedback/README.md",
|
|
|
"language_code": "ja"
|
|
|
}
|
|
|
-->
|
|
|
# タイマーを設定して音声フィードバックを提供する
|
|
|
|
|
|

|
|
|
|
|
|
> スケッチノート作成者:[Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大表示されます。
|
|
|
|
|
|
## 講義前のクイズ
|
|
|
|
|
|
[講義前のクイズ](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/45)
|
|
|
|
|
|
## はじめに
|
|
|
|
|
|
スマートアシスタントは一方通行のコミュニケーションデバイスではありません。話しかけると、応答してくれます。
|
|
|
|
|
|
「Alexa、3分のタイマーを設定して」
|
|
|
|
|
|
「はい、3分のタイマーを設定しました」
|
|
|
|
|
|
前回の2つのレッスンでは、音声をテキストに変換し、そのテキストからタイマー設定のリクエストを抽出する方法を学びました。このレッスンでは、IoTデバイスでタイマーを設定し、ユーザーにタイマーが設定されたことを音声で確認し、タイマーが終了した際に通知する方法を学びます。
|
|
|
|
|
|
このレッスンで学ぶ内容は以下の通りです:
|
|
|
|
|
|
* [テキストから音声への変換](../../../../../6-consumer/lessons/3-spoken-feedback)
|
|
|
* [タイマーの設定](../../../../../6-consumer/lessons/3-spoken-feedback)
|
|
|
* [テキストを音声に変換する](../../../../../6-consumer/lessons/3-spoken-feedback)
|
|
|
|
|
|
## テキストから音声への変換
|
|
|
|
|
|
テキストから音声への変換は、その名の通り、テキストを音声に変換し、話し言葉として再生するプロセスです。基本的な原理は、テキスト内の単語を構成する音(音素)に分解し、それらの音のオーディオを事前録音またはAIモデルで生成して組み合わせることです。
|
|
|
|
|
|

|
|
|
|
|
|
テキストから音声への変換システムは通常、以下の3つの段階があります:
|
|
|
|
|
|
* テキスト解析
|
|
|
* 言語解析
|
|
|
* 波形生成
|
|
|
|
|
|
### テキスト解析
|
|
|
|
|
|
テキスト解析では、提供されたテキストを音声生成に使用できる単語に変換します。例えば、「Hello world」を変換する場合、テキスト解析は必要ありません。2つの単語をそのまま音声に変換できます。しかし、「1234」の場合、文脈に応じて「One thousand, two hundred thirty four」または「One, two, three, four」に変換する必要があります。「I have 1234 apples」の場合は「One thousand, two hundred thirty four」ですが、「The child counted 1234」の場合は「One, two, three, four」となります。
|
|
|
|
|
|
単語の生成は言語だけでなく、その言語の地域によっても異なります。例えば、アメリカ英語では120は「One hundred twenty」となりますが、イギリス英語では「One hundred and twenty」となり、「and」が追加されます。
|
|
|
|
|
|
✅ 他にも、文脈がないと曖昧になる単語の例として、「in」がインチの略語、「st」が聖人や通りの略語として使われることがあります。あなたの言語で他にどのような例があるか考えてみてください。
|
|
|
|
|
|
単語が定義されたら、それらは言語解析に送られます。
|
|
|
|
|
|
### 言語解析
|
|
|
|
|
|
言語解析では、単語を音素に分解します。音素は使用される文字だけでなく、単語内の他の文字にも基づいています。例えば、英語では「car」と「care」の「a」の音は異なります。英語にはアルファベット26文字に対して44の異なる音素があり、一部は異なる文字で共有されています。例えば、「circle」と「serpent」の最初の音は同じ音素です。
|
|
|
|
|
|
✅ 調査してみましょう:あなたの言語の音素は何ですか?
|
|
|
|
|
|
音素が生成されると、イントネーションをサポートするための追加データが必要になります。文脈に応じて音調や持続時間を調整します。例えば、英語ではピッチを上げることで文を疑問文に変えることができます。最後の単語のピッチが上がると、疑問文であることを示します。
|
|
|
|
|
|
例えば、「You have an apple」という文は、リンゴを持っているという陳述です。最後の単語「apple」のピッチが上がると、「You have an apple?」という疑問文になり、リンゴを持っているかどうかを尋ねる形になります。言語解析では、文末の疑問符を使用してピッチを上げる必要があります。
|
|
|
|
|
|
音素が生成されると、それらは波形生成に送られ、音声出力が作成されます。
|
|
|
|
|
|
### 波形生成
|
|
|
|
|
|
初期の電子テキストから音声への変換システムでは、各音素に対して単一の音声録音を使用していたため、非常に単調でロボットのような声になっていました。言語解析で生成された音素は、音声データベースからロードされ、それらをつなぎ合わせて音声を作成していました。
|
|
|
|
|
|
✅ 調査してみましょう:初期の音声合成システムの音声録音を見つけてみてください。スマートアシスタントで使用される現代の音声合成と比較してみましょう。
|
|
|
|
|
|
より現代的な波形生成では、ディープラーニングを使用したMLモデル(脳のニューロンに似た非常に大きなニューラルネットワーク)を使用して、より自然な音声を生成します。これにより、人間と区別がつかない音声を作成することができます。
|
|
|
|
|
|
> 💁 これらのMLモデルの一部は、転移学習を使用して実際の人の声に似せるように再トレーニングすることができます。このため、銀行がますます採用している音声をセキュリティシステムとして使用することは、もはや良いアイデアではありません。数分間の音声録音があれば、誰でもあなたを偽装することができます。
|
|
|
|
|
|
これらの大規模なMLモデルは、3つのステップすべてを組み合わせたエンドツーエンドの音声合成器としてトレーニングされています。
|
|
|
|
|
|
## タイマーの設定
|
|
|
|
|
|
タイマーを設定するには、IoTデバイスがサーバーレスコードを使用して作成したRESTエンドポイントを呼び出し、結果として得られる秒数を使用してタイマーを設定する必要があります。
|
|
|
|
|
|
### タスク - サーバーレス関数を呼び出してタイマー時間を取得する
|
|
|
|
|
|
以下のガイドに従って、IoTデバイスからRESTエンドポイントを呼び出し、必要な時間のタイマーを設定してください:
|
|
|
|
|
|
* [Arduino - Wio Terminal](wio-terminal-set-timer.md)
|
|
|
* [シングルボードコンピュータ - Raspberry Pi/仮想IoTデバイス](single-board-computer-set-timer.md)
|
|
|
|
|
|
## テキストを音声に変換する
|
|
|
|
|
|
音声をテキストに変換する際に使用した音声サービスを、テキストを音声に変換するためにも使用できます。この音声はIoTデバイスのスピーカーを通じて再生されます。変換するテキストは音声サービスに送信され、必要なオーディオの種類(サンプルレートなど)とともに送信されると、バイナリデータとして音声が返されます。
|
|
|
|
|
|
このリクエストを送信する際には、*Speech Synthesis Markup Language*(SSML)を使用します。SSMLは音声合成アプリケーション向けのXMLベースのマークアップ言語です。これにより、変換するテキストだけでなく、テキストの言語、使用する声、さらには単語の速度、音量、ピッチを定義することもできます。
|
|
|
|
|
|
例えば、このSSMLは「Your 3 minute 5 second time has been set」というテキストを、`en-GB-MiaNeural`というイギリス英語の声を使用して音声に変換するリクエストを定義しています。
|
|
|
|
|
|
```xml
|
|
|
<speak version='1.0' xml:lang='en-GB'>
|
|
|
<voice xml:lang='en-GB' name='en-GB-MiaNeural'>
|
|
|
Your 3 minute 5 second time has been set
|
|
|
</voice>
|
|
|
</speak>
|
|
|
```
|
|
|
|
|
|
> 💁 ほとんどのテキストから音声への変換システムには、異なる言語に対応した複数の声があり、イギリス英語の声にはイギリスのアクセント、ニュージーランド英語の声にはニュージーランドのアクセントが含まれています。
|
|
|
|
|
|
### タスク - テキストを音声に変換する
|
|
|
|
|
|
以下のガイドに従って、IoTデバイスを使用してテキストを音声に変換してください:
|
|
|
|
|
|
* [Arduino - Wio Terminal](wio-terminal-text-to-speech.md)
|
|
|
* [シングルボードコンピュータ - Raspberry Pi](pi-text-to-speech.md)
|
|
|
* [シングルボードコンピュータ - 仮想デバイス](virtual-device-text-to-speech.md)
|
|
|
|
|
|
---
|
|
|
|
|
|
## 🚀 チャレンジ
|
|
|
|
|
|
SSMLには、特定の単語に強調を加えたり、ポーズを追加したり、ピッチを変更したりするなど、単語の発音方法を変更する方法があります。これらを試してみて、IoTデバイスから異なるSSMLを送信し、出力を比較してみてください。SSMLについて詳しく知りたい場合は、[World Wide Web ConsortiumによるSpeech Synthesis Markup Language (SSML) Version 1.1の仕様](https://www.w3.org/TR/speech-synthesis11/)を参照してください。
|
|
|
|
|
|
## 講義後のクイズ
|
|
|
|
|
|
[講義後のクイズ](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/46)
|
|
|
|
|
|
## 復習と自己学習
|
|
|
|
|
|
* Wikipediaの[音声合成ページ](https://wikipedia.org/wiki/Speech_synthesis)で音声合成についてさらに学びましょう。
|
|
|
* BBCニュースの[偽の声がサイバー犯罪者の現金窃盗を助ける](https://www.bbc.com/news/technology-48908736)という記事で、犯罪者が音声合成をどのように利用しているかについて学びましょう。
|
|
|
* Viceの記事[このTikTok訴訟はAIが声優をどのように損なっているかを浮き彫りにしている](https://www.vice.com/en/article/z3xqwj/this-tiktok-lawsuit-is-highlighting-how-ai-is-screwing-over-voice-actors)で、音声合成による声優へのリスクについて学びましょう。
|
|
|
|
|
|
## 課題
|
|
|
|
|
|
[タイマーをキャンセルする](assignment.md)
|
|
|
|
|
|
**免責事項**:
|
|
|
この文書は、AI翻訳サービス [Co-op Translator](https://github.com/Azure/co-op-translator) を使用して翻訳されています。正確性を追求しておりますが、自動翻訳には誤りや不正確さが含まれる可能性があります。元の言語で記載された原文が正式な情報源と見なされるべきです。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の使用に起因する誤解や誤訳について、当社は一切の責任を負いません。 |