.. include:: /index.rst
:start-after: start_hello_message
:end-before: end_hello_message
.. _py_speaker:
3.3 Fusion HAT+ スピーカー
==============================
**はじめに**
Fusion HAT+ にはスピーカーが内蔵されており、音声プロンプト、アラーム、その他のAI/IoT音声アプリケーションに最適です。
このレッスンでは、スピーカーを有効化し、テストし、テキスト読み上げで使用する方法を紹介します。
.. note::
このガイドは、Raspberry Pi OS がインストールされており、Fusion HAT+ のドライバーが正しく設定されていることを前提としています。
.. image:: img/fusionhat_speaker.png
:align: center
:width: 50%
**必要なもの**
.. list-table::
:widths: 30 20
:header-rows: 1
* - COMPONENT
- PURCHASE LINK
* - :ref:`cpn_fusion_hat`
- \-
* - Raspberry Pi
- \-
------------------------------------------------------------
**スピーカーが認識されているか確認する**
Fusion HAT+ のオーディオデバイスがシステムに認識されているか確認します。
.. raw:: html
.. code-block:: shell
aplay -l
次のようなオーディオデバイスが表示されるはずです。
.. code-block:: text
card 3: voicehat [Fusion HAT+ Audio], device 0: ...
**どのカード番号であっても** 、 ``voicehat`` (またはそれに類する名前)のデバイスが表示されれば、
Fusion HAT+ のオーディオハードウェアは正しく認識されています。
------------------------------------------------------------
**サンプルプログラムの実行**
スピーカーをテストする最も確実な方法は、テキスト読み上げのサンプルを実行することです。
.. raw:: html
.. code-block:: shell
cd ~/ai-lab-kit/llm
sudo python3 tts_espeak.py
「Hello! I’m Espeak TTS.」という音声が再生されます。
スクリプト内のTTSパラメータを調整して、異なる音声効果を試してみてください。
------------------------------------------------------------
**サンプルコード**
.. code-block:: python
from fusion_hat.tts import Espeak
tts = Espeak()
tts.set_amp(200)
tts.set_speed(150)
tts.set_gap(1)
tts.set_pitch(80)
tts.say("Hello! I’m Espeak TTS.")
**コードの解説**
* ``set_amp(0–200)`` — 音量
* ``set_speed(80–260)`` — 読み上げ速度
* ``set_gap(0–200)`` — 単語間の間隔
* ``set_pitch(0–99)`` — 音声の高さ
* ``say()`` — テキストを音声に変換して再生する
.. tip::
speed と pitch を上げると明るく軽快な声になり、
両方を下げると低く落ち着いた声になります。
------------------------------------------------------------
**トラブルシューティング**
* **音が出ない**
- Fusion HAT+ のオーディオデバイスが認識されていることを確認してください。
.. raw:: html
.. code-block:: shell
aplay -l
``voicehat`` (またはそれに類する名前)のオーディオデバイスが表示されるはずです。
デバイスが表示されない場合は、Raspberry Pi の電源を切り、
Fusion HAT+ を差し直してから再起動してください。
- それでもデバイスが認識されない場合は、オーディオドライバーを再インストールしてください。
.. raw:: html
.. code-block:: shell
sudo /opt/setup_fusion_hat_audio.sh
* **テキスト読み上げの音声が速すぎる、または機械的に聞こえる**
- コード内の読み上げパラメータを調整してください。
.. code-block:: python
tts.set_speed(120)
tts.set_pitch(60)
* **Permission denied エラーが表示される**
- 管理者権限でスクリプトを実行してください。
.. raw:: html
.. code-block:: shell
sudo python3 tts_espeak.py
------------------------------------------------------------
**まとめ**
このレッスンでは、次の内容を学びました。
- Fusion HAT+ スピーカーが認識されているか確認する方法
- Espeak TTS を使用して Raspberry Pi で音声を生成する方法
Fusion HAT+ スピーカーを使うことで、Raspberry Pi プロジェクトに簡単かつ強力に音声機能を追加できます。