【ESP32】スピーカーをつないで音声出力してみた

  • 投稿 : 2018-12-19

本記事は広告およびアフィリエイトプログラムによる収益を得ています

壊れる危険性があるので、試される場合は自己責任で!!

Amazon:KKHMF ESP32 ESP-32S NodeMCU開発ボード2.4GHz WiFi + Bluetooth
・Arduino IDE v1.8.7
で確認しました

公開されているスケッチで確認する

ソース
GitHubに置きました。Arduino IDEで開いてコンパイルすれば動くでしょう。
初めて置いたのでどう書いたものか分からないところも多いのだが、見る人が見ればわかるでしょう。

↓ここ
https://github.com/kghrlabo/esp32_simple_wav_player
ESP32 とスピーカーをつないで音を出してみた / kghr IT備忘録

このように接続しました。
D25 - スピーカー - GND
ESP32の内蔵DACを利用してBluetoothスピーカーとして動かしてみた : 試行錯誤な日々

・上記のソース(esp32_simple_wav_player)をそのまま利用
・接続は、D25、GNDをスピーカーに直結

これで、音声出力できました。

音声データはソースの「audiodata.h」に含まれています。

音声を置き換えてみる

音声の作成

棒読みちゃん・棒読みちゃん - ダウンロード(音声合成で日本語文章を読み上げ)・上記あたりから、ダウンロードしてしてください。特にインストールする必要はなくて、解凍(展開)したファイル

某氏の猫空

「棒読みちゃん(Windowsアプリ)」をつかって作成します。作成した音声は、wavファイルに保存してください。

音声ファイルの加工

・モノラル
・8bit
・8000MHZ
上記に変換します。

ffmpegを使って変換しましたが、SoundEngine Freeなどのアプリを使っても変換できます。お好きなもので変換してください。

ffmpegを使う方法

i:\tmp\f\bin\ffmpeg -i input.wav -ac 1 -ar 8000 -acodec pcm_u8 output3.wav

SoundEngine Freeを使う方法

「SoundEngine」無料の音声ファイル編集ソフト - 窓の杜

音声ファイルをテキストデータ化する

HxD - Freeware Hex Editor and Disk Editor | mh-nexus

上記のアプリで、Wavファイルを読み込んで、C形式でエクスポートすると、テキストデータ化できます。テキストファイルの中身は、C言語の配列データになってると思います。

ソースファイルのaudiodata.hを変更

const PROGMEM unsigned char Mono4Khz[20768] = {

の中身を生成されたデーターに置き換えます。「20768」の値も変更するのを忘れずに!!

こんな感じ

抵抗、コンデンサ

ESP32 とスピーカーをつないで音を出してみた / kghr IT備忘録

たぶん、上記に紹介されてる回路通りにすればよいと思う。

ESP32 TV

GPIO25 ----[150R]-------- Composite jack center

GPIO26 ----[ 1K ]--+----- Audio jack center
|
---
1
K
---
| -- Audio jack GND
Gnd ------------+-- +- Composite jack GND
Happy Holidays! (W/ binary for your ESP32!) - ESP32 Forum

スポンサーリンク