はじめに
M5Stack Unit ASRのファームウェアを作成するには、智能公元(smartpi.cn)ページを利用する必要があります。いつかは他言語化される可能性もありますが、現在は中国語のみです。ブラウザーの翻訳機能などを使えば大体意味はわかるものの、使い方をまとめておきます。
ユーザー登録
まず、ユーザーを登録します。右上の「免费注册」が「無料でユーザー登録」です。「登录」がユーザー登録後のログインです。
「昵称」にニックネーム、「手机号或邮箱」にメールアドレスを入力して、「发送验证码」ボタンを押すと、入力したメールアドレスに検証用の番号が送られます。
届いた番号を「验证码」に、「密码」と「确认密码」の両方に登録したいパスワードを入力して、「我已阅读并接受用户协议与隐私政策」にチェックを入れてプライバシーポリシー同意の上、「同意并注册」ボタンを押して登録します。
ユーザー登録が完了すれば、ログインして利用できます。
最初のファームウェア作成
最初はM5Stack Unit ASRの Unit ASR Custom Firmware Generation and Flashing ページから Unit ASR Config EN Template や Unit ASR Config CN Template 、あるいは、こちらの Unit ASR Config JP Template をダウンロードして使います。
左のメニュー「产品管理」下の「所有产品」を開き、画面右の「导入产品」を押して上記のファイルをインポートします。
「查看详情」を押して、詳細を確認します。SDKの状態が「待生成」となっていれば、「更多」から「生成SDK」でSDKを生成します。
ステータスが変わります。3分くらいでSDK(ファームウェア)が生成されます。生成前に「查看」で内容の確認、編集ができます。「继承」で複製することができます。
生成が完了すると、「下载固件」でファームウェアをダウンロードします。
ファームウェアの編集
-
ファームウェアの編集は以下の設定があります。
- 前端信号处理(フロントエンド信号処理)
- Pin脚配置(ピン設定)
- 唤醒词自定义(ウェイクワード・カスタマイズ)
- 自选协议配置
- 命令词自定义(コマンドワード・カスタマイズ)
- 发音人配置(話者設定)
- 其它配置(その他設定)
- 个性化音频(パーソナライズ音声)
- 优化配置(最適化設定)
1.前端信号处理(フロントエンド信号処理)
麦克风配置: マイク構成、以下の選択肢があるがUnit ASRはマイクが一つのため「单MIC」
- 单MIC: 単一マイク
- 双MIC: 二つのマイク
应用场景: 適用シナリオ、通常は「日文通用Pro5(占1.3M空间)-V01149-v2」を選択
- 日文通用Pro5(占1.3M空间)-V01149-v2: 一般的な環境で利用
- 安静环境(占1.3M空间)-V00585: 静かな環境で利用 →「双MIC」のみ選択可能
产品特性: 製品の特長、「单MIC」で選択できるのは以下。Unit ASRは「音声認識」が標準
- 仅语音识别: 音声認識
- 语音识别+自学习: 音声認識+自己学習、オフラインで10以下のコマンドを学習させることができるとのこと
- 语音识别+深度降噪: 音声認識+徹底的なノイズ低減、周囲のノイズが多い状況での利用を想定とのこと
- 语音识别+声纹识别: 音声認識+声紋認識、別途オプション契約が必要な模様
- 语音识别+男女声纹识别: 音声認識+男性と女性の声紋認識、別途オプション認証が必要な模様
- 语音识别+AEC打断(限单MIC): 音声認識+AEC割り込み(単一マイクのみ)、長い発話/音楽再生中に割り込み
- 语音识别+自学习+AEC打断(限单MIC): 音声認識+自己学習+AEC割り込み(単一マイクのみ)、長い発話/音楽再生中に割り込み
- 哭声检测: 泣き声検出、別途オプション認証が必要な模様、この機能選択時は音声認識は使えない
- 鼾声检测: いびき検出、別途オプション認証が必要な模様、この機能選択時は音声認識は使えない
- 文字转语音: テキスト読み上げ、別途オプション認証が必要な模様
自然说: 機械学習を利用した自然は音声合成と思われるが、日本語では選択不可
- 不支持: サポートしない
2.Pin脚配置(ピン設定)
M5Stack Unit ASRではGPIO等は使用できないため無効です。
UART0_TXの速度、ビット数、ストップビット、パリティビットが変更できます。
UART0_RXのヘッダー(AA 55)、トレイラー(55 AA)が変更できます。
3.唤醒词自定义(ウェイクワード・カスタマイズ)
ここでウェイクワードを設定することができます。5.命令词自定义でもウェイクワードを設定することができ、デフォルトのファームウェアではそちらで設定されていて、ここでは使っていません。「rqwerqwerqwerqwerqwerq」というダミー値が設定されています。
4.自选协议配置
設定項目がありません。
5.命令词自定义(コマンドワード・カスタマイズ)
音声認識、音声合成のワード設定を行います。
-
基础信息: 基本情報タブ、コマンドバイト(0x00~0xFF)とコマンド/応答を割り当てます
- 序号: 連番
- 行为: 行為、識別用の英数字文字列
- 触发方式: トリガー方法
- 命令词: コマンドワード、音声認識によりトリガー
- 串口输入: シリアルポート入力、シリアルに(M5Stack側から)データを送信してトリガー
- GPIO输入: GPIO入力、Unit ASRではGPIO入力は利用できない
- ADC输入: ADC入力、Unit ASRではADC入力は利用できない
- 脉冲输入: パルス入力、Unit ASRではパルス入力は利用できない
- 事件触发: イベントトリガー
- 退出唤醒: ウェイクアップ終了
- 语音触发: 音声トリガー
- 自动触发: 自動トリガー
- 接口触发: インターフェーストリガー
- 系统启动: システムの起動
- 上电启动: 電源オン起動
- 重置启动: リセット起動
- 播音开始: 発話開始
- 播音结束: 発話終了
- 定时器超时: タイムアウト
- 自学习事件: 自己学習イベント
- 声纹识别事件: 声紋認識イベント
- 声源定位事件: 音源定位イベント
- 退出唤醒: ウェイクアップ終了
- 附加条件: 追加条件
- 命令词: コマンドワード
- 回复语: 応答
- 操作: 操作、削除、詳細設定
-
控制详情: コントロールの詳細タブ、トリガー時の動作を設定します
- 序号: 連番、基本情報タブの値を表示
- 行为: 行為、識別用の英数字文字列、基本情報タブの値を表示
- 命令词: コマンドワード、ここで追加/変更が可能、複数指定可能、音声認識とシリアル入力でトリガーするなど
- 控制类型: コントロールの種類、複数指定可能
- 端口输出: ポート出力(シリアル、GPIOの出力)
- 播放语音: 音声発話
- 打断播报: 再生の割り込み
- 系统设置: システム設定
- 播放控制: 発話制御
- 停止播放: 再生停止
- 最小音量: 音量を最小にする
- 最大音量: 音量を最大にする
- 中等音量: 音量を中にする
- 增加音量: 音量を上げる
- 减少音量: 音量を下げる
- 设为静音: ミュート
- 取消静音: ミュート解除
- 无回复播报: 復帰報告なし
- 有回复播报: 復帰報告あり
- 免打扰模式: じゃましないモード
- 正常播报模式: 通常放送モード
- 识别控制: 識別制御
- 退出唤醒: ウェイクアップ終了
- 进入唤醒: ウェイクアップに入る
- 允许语音识别: 音声認識を有効にする
- 关闭语音识别: 音声認識を無効にする
- 允许识别词: 指定した単語の認識を許可する
- 禁止识别词: 指定した単語の認識を不可にする
- 禁止超时退出唤醒: タイムアウト終了ウェイクアップを無効にする
- 允许超时退出唤醒: タイムアウト終了ウェイクアップを有効にする
- 重启控制: リセット制御
- 重置重启: リセット再起動
- 定时器控制: タイマー制御
- 启动定时器
- 停止定时器
- 流程控制: プロセス制御
- 跳转行为
- 声纹识别: 音声認識
- (学習等を行わせることができる、利用不可)
- 声源定位: 音源定位
- (定位の取得)
- 播放控制: 発話制御
- 变量设置:
- 动作: アクション
- 动作参数: アクションパラメータ
- 操作: 操作、削除、詳細設定
-
变量定义: 変数の定義タブ
制御に使う変数を定義します、int、char、double、unsigned charの型があります -
定时器: タイマー・タブ
タイマーを定義します -
语音导航: 音声ナビゲーション・タブ
-
免唤醒的命令词(唤醒词加上免唤醒的命令词,总数不能超过20条):ウェイクアップを必要としないコマンドワード(ウェイクアップワードとウェイクアップを必要としないコマンドワードの合計数は20以下)
上記で登録したコマンドワードは、通常ウェイクワードで起動した後に認識します。ウェイクワードの指定は、3.唤醒词自定义(ウェイクワード・カスタマイズ)で指定する方法と、5.命令词自定义(コマンドワード・カスタマイズ)の識別制御で、コマンドワード入力時にウェイクアップするという指定の方法があります。後者の場合は、ここでウェイクアップワード不要のコマンドワードとして指定することになります。
-
防止误识别的命令词(不能和唤醒词、命令词重复,多条词条之间用“|”隔开):コマンドワードの誤認を防ぐ (ウェイクアップワードやコマンドワードと重複することはできません。複数の単語は「|」で区切られます)
6.发音人配置(話者設定)
日本語の話者は櫻子さんのみです。
7.其它配置(その他設定)
8.个性化音频(パーソナライズ音声)
音声合成/読み上げを、文字列ではなくwav/mp3の音声ファイルで設定できます。日本語の音声合成は問題があるので、こちらの利用を検討した方がよいかもしれません。
こちらはmp3を登録した例。wavも対応しているらしいが、うまくアップロードできなかった。(フォーマットは16k/16ビット/1チャンネルと思われるが)
9.优化配置(最適化設定)
閾値等を詳細に設定できます。