.. note:: こんにちは!SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Communityへようこそ!Raspberry Pi、Arduino、ESP32に関心のある仲間たちと一緒に、さらに深く学んでいきましょう。 **なぜ参加するのか?** - **専門家のサポート**: 購入後の問題や技術的な課題を、コミュニティやチームのサポートを通じて解決できます。 - **学びと共有**: ヒントやチュートリアルを交換して、スキルを向上させましょう。 - **限定プレビュー**: 新製品の発表に早期アクセスし、先行して情報を得られます。 - **特別割引**: 最新の製品に対して、限定の割引を楽しむことができます。 - **祝祭プロモーションとプレゼント**: プレゼント企画や祝祭プロモーションに参加できます。 👉 私たちと一緒に探求し、創造する準備はできましたか?[|link_sf_facebook|]をクリックして、今すぐ参加しましょう! .. _py_sound: 音声効果 ===================== この例では、PiCrawler(正確にはRobot HAT)の音声効果を使用します。音声効果は、 **音楽** 、 **サウンド** 、 **テキスト読み上げ** の3つの部分で構成されています。 .. image:: img/tts.png **i2sampのインストール** これらの機能を使用する前に、まずスピーカーを有効にして、音を出せるようにする必要があります。 ``i2samp.sh`` を実行して、このスクリプトを使ってi2sアンプを使用するために必要なすべての設定を行います。 .. raw:: html .. code-block:: cd ~/picrawler/ sudo bash i2samp.sh いくつかの確認メッセージが表示されるので、すべてのプロンプトに **Y** で答えてください。Raspberry Piの設定が変更された後、これらの変更が有効になるためには、コンピュータを再起動する必要があります。 再起動後、再度 ``i2samp.sh`` スクリプトを実行して、アンプをテストします。スピーカーから音が正常に再生されれば、設定は完了です。 **コードの実行** .. raw:: html .. code-block:: cd ~/picrawler/examples sudo python3 sound_effect.py コードが実行された後、ターミナルに表示されたプロンプトに従って操作してください。 機能を呼び出すためにキーを入力してください! * ``q`` : 背景音楽を再生 * ``1`` : サウンドエフェクトを再生 * ``2`` : スレッドを使ってサウンドエフェクトを再生 * ``t`` : テキストを読み上げ * プログラムを終了するには、 ``Ctrl+C`` を押してください。 **コード** .. code-block:: python ''' Sorry, currently there is only sound when running with sudo ''' from time import sleep from robot_hat import Music,TTS music = Music() tts = TTS() manual = ''' Input key to call the function! q: Play background music 1: Play sound effect 2: Play sound effect with threads t: Text to speak Ctrl^C: quit ''' def main(): print(manual) flag_bgm = False music.music_set_volume(20) tts.lang("en-US") while True: key = input() key = key.lower() if key == "q": flag_bgm = not flag_bgm if flag_bgm is True: music.music_play('./musics/sports-Ahjay_Stelino.mp3') else: music.music_stop() elif key == "1": music.sound_play('./sounds/talk1.wav') sleep(0.05) music.sound_play('./sounds/talk3.wav') sleep(0.05) music.sound_play('./sounds/sign.wav') sleep(0.5) elif key =="2": music.sound_play_threading('./sounds/talk1.wav') sleep(0.05) music.sound_play_threading('./sounds/talk3.wav') sleep(0.05) music.sound_play_threading('./sounds/sign.wav') sleep(0.5) elif key == "t": words = "Hello" tts.say(words) if __name__ == "__main__": main() **仕組みは?** 背景音楽に関連する機能は以下の通りです: * ``music = Music()`` : オブジェクトを宣言します。 * ``music.music_set_volume(20)`` : 音量を設定します。範囲は0~100です。 * ``music.music_play(./musics/sports-Ahjay_Stelino.mp3)`` : 音楽ファイルを再生します。ここでは、 ``./musics`` パスにある **sports-Ahjay_Stelino.mp3** ファイルを再生します。 * ``music.music_stop()`` : 背景音楽の再生を停止します。 .. note:: 異なる音楽や効果音を ``musics`` または ``sounds`` フォルダに追加できます。追加方法は:ref:`filezilla` を参照してください。 サウンドエフェクトに関連する機能は以下の通りです: * ``music = Music()`` * ``music.sound_play('./sounds/talk1.wav')`` : サウンドエフェクトファイルを再生します。ここでは、 ``./musics`` パスにある **talk1.wav** ファイルを再生します。 * ``music.sound_play_threading('./sounds/talk1.wav')`` : サウンドエフェクトファイルを新しいスレッドで再生し、メインスレッドを停止しません。 テキスト読み上げに関連する機能は以下の通りです: * ``tts = TTS()`` * ``tts.say(words)`` : テキストを音声に変換して読み上げます。 * ``tts.lang("en-US")`` : 言語を設定します。 .. note:: 言語は、 ``lang("")`` パラメータで次のような文字列を設定することで指定できます。 .. list-table:: Language :widths: 15 50 * - zh-CN - 中国語(普通話) * - en-US - 英語(アメリカ) * - en-GB - 英語(イギリス) * - de-DE - ドイツ語(Deutsch) * - es-ES - スペイン語(España) * - fr-FR - フランス語(フランス) * - it-IT - イタリア語(Italia)