概要
AquesTalkはかんたんに利用できる、音声合成ソフトです。
上記が公式サイトです。ここに導入方法があるのですが、Arduino IDEの場合には内部ファイルを書き換える必要などがあり、ライブラリのバージョンを頻繁に変える環境では導入しにくいです。
そこで、標準のライブラリ形式を作り、かんたんに導入できるようにしました。
※現状環境が変わり、そのままでは動作しなくなりました。上記に対策をまとめましたので参考にしてください。
環境
- Arduino IDE 1.8.10
- ESP32 1.0.3
- M5StickC
- M5StickC用スピーカーHAT
導入方法
上記のサイトからZIPファイルをダウンロードして、ドキュメント以下のArduino/libraries以下に展開したものを置く。
以上!
動作検証
hello_aquestalkというスケッチ例が入っていますので、それを動かすとM5StickCのHATから音声が再生されます。
原理
name=aquestalk version=2.0.1 author=a-quest <infoaq@a-quest.com> maintainer=a-quest <infoaq@a-quest.com > sentence=AquesTalk for ESP32 paragraph=AquesTalk for ESP32 category=Communication url=https://www.a-quest.com/ architectures=esp32 includes=aquestalk.h precompiled=true ldflags=-laquestalk
上記はlibrary.propertiesの中身ですが、下4行ぐらいでスタティックライブラリの指定をしています。
まとめ
ライブラリは勝手に作っているので、できれば公式の人に連絡をして、公式からライブラリを配布してもらいたいです。
コメント
アクエストの山崎と申します。
貴重な情報、とても参考になります。
こちらで記事したがってコンパイル(ビルド)したところ、
リンク時のエラーとなります。
ログを見ると、libaquestalk.aがリンクに含まれず、
以下のようなメッセージもありました。
“The plaform does not support ‘compiler.libraries.ldflags’ for precompiled libraries.”
どうも library.properties の ldflags=-laquestalk が利いていないようです。
環境設定など、何か他の追加の設定があるのでしょうか。
テスト環境
Arduino IDE 1.8.13, esp32 Ver.1.0.4, M5Stack Ver.0.3.0
すてきな製品と、ライブラリの公開ありがとうございます!
さて、最近Arduino IDEの仕様が変更されて、ldflagsの渡し方が変更になりました
https://github.com/espressif/arduino-esp32/pull/4209
上記の変更が必要になり、最近公式には取り込まれているのですがまだリリースされていません。
platform.txtを入れ替えるか、platform.local.txtを作って差分だけかけば使えるようになるはずなので、後日検証してみますね。
ESP32の公式ライブラリは一年ぐらい更新されていないので、そろそろ更新してほしいのですが、、、
む、、、
取り込まれたPRはオプションの位置を間違えていますね、、、
指摘したけれど取り込まれるかな?
C:\Users\%USERNAME%\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\platform.local.txt
に
======================================
compiler.libraries.ldflags=
recipe.c.combine.pattern=”{compiler.path}{compiler.c.elf.cmd}” {compiler.c.elf.flags} {compiler.c.elf.extra_flags} -Wl,–start-group {object_files} “{archive_file_path}” {compiler.c.elf.libs} {compiler.libraries.ldflags} -Wl,–end-group -Wl,-EL -o “{build.path}/{build.project_name}.elf”
======================================
を追記することでコンパイルは通るようになりました。
M5Stack Core2とかでも再生できるスケッチ例を今度作ってみますね。。。
https://lang-ship.com/blog/work/aquestalk-esp32-1-0-4/
上記に現状での動かし方をまとめてみました
また、M5Stackなどのサンプルを追加しています。
ご確認ありがとうございます。
現時点(2020/10)では、arduino-esp32(Arduino core for the ESP32 v.1.0.4)のplatform.txtあたりの修正が必要とのことですね。
また、こちらでもGitHubから開発中のarduino-esp32を入手して試してみました。
ご指摘の通り、リンク時の-laquestalkの挿入位置が違っており、このライブラリがundefined エラーとなりました。
pratform.txtの修正履歴をみると、つい最近、{compiler.libraries.ldflags}の位置をわざわざ前に動かしており、何か別の意図があったのかもしれませんね。
現状ではプリコンパイルのライブラリ全部が使えないので、早めに修正してリリースしてほしいんですけれどね