AquesTalk ESP32をかんたんに使う

概要

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行ぐらいでスタティックライブラリの指定をしています。

まとめ

ライブラリは勝手に作っているので、できれば公式の人に連絡をして、公式からライブラリを配布してもらいたいです。

コメント

  1. 山崎 より:

    アクエストの山崎と申します。
    貴重な情報、とても参考になります。

    こちらで記事したがってコンパイル(ビルド)したところ、
    リンク時のエラーとなります。
    ログを見ると、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とかでも再生できるスケッチ例を今度作ってみますね。。。

  2. たなかまさゆき より:

    https://lang-ship.com/blog/work/aquestalk-esp32-1-0-4/

    上記に現状での動かし方をまとめてみました
    また、M5Stackなどのサンプルを追加しています。

  3. 山崎 より:

    ご確認ありがとうございます。
    現時点(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}の位置をわざわざ前に動かしており、何か別の意図があったのかもしれませんね。

    • たなかまさゆき より:

      現状ではプリコンパイルのライブラリ全部が使えないので、早めに修正してリリースしてほしいんですけれどね