Rev.1.1 S1V50300 サンプルプログラムマニュアル

Similar documents
評価ボード キット 開発ツールご使用上の注意事項 1. 本評価ボード キット 開発ツールは お客様での技術的評価 動作の確認および開発のみに用いられることを想定し設計されています それらの技術評価 開発等の目的以外には使用しないで下さい 本品は 完成品に対する設計品質に適合していません 2. 本評価

評価ボード キット 開発ツールご使用上の注意事項 1. 本評価ボード キット 開発ツールは お客様での技術的評価 動作の確認および開発のみに用いられることを想定し設計されています それらの技術評価 開発等の目的以外には使用しないで下さい 本品は 完成品に対する設計品質に適合していません 2. 本評価

本資料のご使用につきましては 次の点にご留意願います 本資料の内容については 予告無く変更することがあります 1. 本資料の一部 または全部を弊社に無断で転載 または 複製など他の目的に使用することは堅くお断りいたします 2. 本資料に掲載される応用回路 プログラム 使用方法等はあくまでも参考情報で

本資料のご使用につきましては 次の点にご留意願います 本資料の内容については 予告無く変更することがあります 1. 本資料の一部 または全部を弊社に無断で転載 または 複製など他の目的に使用することは堅くお断りいたします 2. 本資料に掲載される応用回路 プログラム 使用方法等はあくまでも参考情報で

S1C17 Family Application Note S1C17 シリーズ PORT 多重割り込みアプリケーションノート Rev.1.0

本資料のご使用につきましては 次の点にご留意願います 本資料の内容については 予告無く変更することがあります 1. 本資料の一部 または全部を弊社に無断で転載 または 複製など他の目的に使用することは堅くお断りいたします 2. 本資料に掲載される応用回路 プログラム 使用方法等はあくまでも参考情報で

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

S1F77330 シリーズ USB 用バススイッチ IC 2 to 1 Bus Switch 概要 S1F77330 シリーズは USB アプリケーションに適したバススイッチ IC です CMOS プロセスを採用しているため 低消費電力を特徴としています パッケージは小型の WCSP を採用している

スライド 1

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

評価ボード キット 開発ツールご使用上の注意事項 1. 本評価ボード キット 開発ツールは お客様での技術的評価 動作の確認および開発のみに用いられることを想定し設計されています それらの技術評価 開発等の目的以外には使用しないで下さい 本品は 完成品に対する設計品質に適合していません 2. 本評価

<4D F736F F D20B6BCB5D7B2CCDED7D8CFC6ADB1D9315F43532E444F43>

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

SuperH RISC engineファミリ用 C/C++コンパイラパッケージ V.7~V.9 ご使用上のお願い

ユーティリティ 管理番号 内容 対象バージョン 157 管理情報バッチ登録コマンド (utliupdt) のメッセージ出力に対し リダイレクトまたはパイプを使用すると メッセージが途中までしか出 力されないことがある 267 転送集計コマンド (utllogcnt) でファイル ID とホスト名の組

Android Layout SDK プログラミング マニュアル

Nios II - PIO を使用した I2C-Bus (2ワイヤ)マスタの実装

型名 RF007 ラジオコミュニケーションテスタ Radio Communication Tester ソフトウェア開発キット マニュアル アールエフネットワーク株式会社 RFnetworks Corporation RF007SDK-M001 RF007SDK-M001 参考資料 1

Notes and Points for TMPR454 Flash memory

Prog1_10th

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受

スライド 1

アナログ・接点変換器

AquesTalk Mac マニュアル

AquesTalk プログラミングガイド

1

1. 使用する信号 1.1. UART 信号 UART 通信に使用する信号と接続相手との接続は以下の通りです UART 信号表 番号 CPU 機能名 CPU 信号名 基板コネクタピン番号 方向 接続相手の信号名 1 USART1_TX PA9 CN > RxD 2 USART1_R

2006年10月5日(木)実施

プログラミングI第10回

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

ユーザーズマニュアル

Microsoft PowerPoint - CproNt02.ppt [互換モード]

EU-SD/MCシリーズ アプリケーションノート

1

S1F77330 シリーズテクニカルマニュアル Rev.2.1

PowerPoint プレゼンテーション


AquesTalk for WinCE プログラミングガイド

1. LCD LS027B4DH01 について LS027B4DH01 は 400dot x 240dot のグラフィック LCD です 秋月電子通商で購入できます 外形サイズ : 62.8 x x 1.53mm LCD のフレキシブルケーブルの根元の部分はちょっと力を加えただけで表示が

アルファメール 移行設定の手引き Outlook2016

UIOUSBCOM.DLLコマンドリファレンス

CS-3000/5000 用 LabView ドライバ 取扱説明書 第 1 版 2014/7/28 岩通計測株式会社 1. 使用条件 a. 装置 : 岩通計測製 CS-3000/CS-5000 シリーズ b. 動作確認 PC/OS:IBM PC/AT 互換機 マイクロソフト Windows7 c.p

Linkexpress トラブル初期調査資料 採取コマンド使用手引書

CommCheckerManual_Ver.1.0_.doc

目次 目次... 1 はじめに... 3 概要... 4 サポート環境... 5 関数... 6 MEC_OpenDevice... 7 MECDevice_Release... 8 MECDevice_GetFirmVersion... 9 MECDevice_GetCoreTemperature

M4Gグループ(1)_CEC-A

アプリ内課金SDK 利用マニュアル

AquesTalk Win Manual

変更履歴 日付 版数 変更内容 2012/07/13 Rev 初版発行 2013/07/03 Rev 対応機器一覧 機器一覧を更新 [Settings] 画面の表示 時刻を挿入する機能を追加アンテナ切替器のアンテナ番号を指定する機能を追加アンテナ番号を挿

AN1526 RX開発環境の使用方法(CS+、Renesas Flash Programmer)

Microsoft Word - FCTT_CS_Mod( )Jver1.doc

プログラミング実習I

Microsoft Word - Training10_プリプロセッサ.docx

EB-RL7023+SB/D2

【注意事項】RXファミリ 組み込み用TCP/IP M3S-T4-Tiny

画面について メイン画面 メイン画面 Logitec EXtorage Link を起動すると メイン画面が表示されます メイン画面の構成は 次のとおりです 1 メニュー 2 端末から外部ストレージへ 3 外部ストレージから端末へ 4 端末 5 外部ストレージ 6 カメラ機能 スマホやタブレットで使

PLQ-20 取扱説明書 詳細編

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

ワイヤレスセンサモジュール取扱説明書

Prog1_12th

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

Singapore Contec Pte Ltd. Opening Ceremony

PowerPoint Presentation

uPC1093 DS

uPC258,4558 DS

内容 1. APX-3302 の特長 APX-3312 から APX-3302 へ変更するためには 差分詳細 ハードウェア ハードウェア性能および仕様 ソフトウェア仕様および制限 Ini ファイルの設

TCP_BP3591 の説明 V /03/28 ROHM 社製 WIFi モジュール BP3591 を使用して 無線 LAN により TCP/IP 通信を行うプログラムです 簡単な文字列によるコマンド ( 例 : LED0 ON ) を受信して LED の ON/OFF を行います 受

形B5Z 画像型人感センサ(HVC-F) コマンド仕様書

2015/04/01 改定 オムロン DeviceNet ユニット CJ1W-DRM21 に関するコンフィグレーション作業について 1. 概要 DeviceNet ユニット CJ1W-DRM21 を装着したオムロン製 CJ2 シリーズと WAGO-I/0-SYSTEM DeviceNet 対応バスカ

システム管理者ガイド GIGAPOD 3 システム管理者ガイド - 負荷分散構成 第 1.01 版 2013 年 3 月 改訂履歴 No バージョン 日付 作成者 改訂者 補足 /09 トライポッドワークス 初稿 /03 トライポッドワークス cr

AP-RZA-1A シリアルFlashROMの書き込み方法

画面について 画面構成 画面構成 Smart Copy for Android の画面構成は 次のとおりです 1フォルダパス 2. ファイルの種類 3 ファイル一覧 5[ 戻る ] ボタン 4[ メニュー ] ボタン 1 フォルダパス現在表示している画面のフォルダパスが表示されます 2ファイルの種類

AN424 Modbus/TCP クイックスタートガイド CIE-H14

MEDIAPOINT HD ファームウェアリリースノート

OPN Terminalの利用方法

Total Disc Makerサイレントインストールガイド

目次 移行前の作業 3 ステップ1: 移行元サービス メールソフトの設定変更 3 ステップ2: アルファメール2 メールソフトの設定追加 6 ステップ3: アルファメール2 サーバへの接続テスト 11 ステップ4: 管理者へ完了報告 11 移行完了後の作業 14 作業の流れ 14 ステップ1: メー

USB_IR_Remote_Controller_Advance_Library 取扱説明書 2016/06/23 R03 Assembly Desk USB_IR_Remote_Controller_Advance_Library を使用すると 弊社製 USB IR Remote controll

AGT10(Android (TM) 2.3) ファームウェア更新方法

標準画面 手動操作 サンプル画面説明書

Polycom RealConnect for Microsoft Office 365

アルファメールプレミア 移行設定の手引き

画面について メイン画面 メイン画面 i Smart Copy を起動すると メイン画面が表示されます メイン画面の構成は 次のとおりです 1 詳細設定 1 詳細設定ファイル操作時の詳細などを設定します 2. アドレス帳. バックアップ 3 内部ストレージ 4 容量確認 5 外部ストレージ 4 容量

アルファメールプレミア 移行設定の手引き Outlook2016

MS916/MS926 照合機能の操作方法 Ver.4 照合モード (Data Validation) では 1 対 1 1 対 N および LookUp テーブル参照によるバーコードの照合を行います 照合したバーコードは一致したデータのみをホストに送信またはメモリに保存します 照合機能の設定手順

<< 目次 >> 1 PDF コンバータのインストール ライセンスコードの入力 PDF にフォントを埋め込みたい場合の設定 PDF オートコンバータ EX で使用しない場合 PDF コンバータ単体で使用する場合の説明 PDF コンバータのアン

LP-S8160 LP-S7160 LP-S6160

LP-M8040シリーズ

LP-M5300シリーズ

Taro-82ADAカ.jtd

TFTP serverの実装

AquesTalk2 Mac マニュアル

DSP5Dアップグレードガイド

CoIDE 用 STM32F4_UART2 の説明 V /03/30 STM32F4 Discovery の非同期シリアル通信ポート UART2 の送受信を行うプログラムです Free の開発ツール CoIDE で作成したプロジェクトサンプルです プログラムの開始番地は 0x08000

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

Taro-ファイル処理(公開版).jtd

Microsoft PowerPoint pptx

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

Transcription:

Rev.1.1 S1V50300 サンプルプログラムマニュアル

本資料のご使用につきましては 次の点にご留意願います 本資料の内容については 予告無く変更することがあります 1. 本資料の一部 または全部を弊社に無断で転載 または 複製など他の目的に使用することは堅くお断りいたします 2. 本資料に掲載される応用回路 プログラム 使用方法等はあくまでも参考情報であり これらに起因する第三者の知的財産権およびその他の権利侵害あるいは損害の発生に対し 弊社はいかなる保証を行うものではありません また 本資料によって第三者または弊社の知的財産権およびその他の権利の実施権の許諾を行うものではありません 3. 特性値の数値の大小は 数直線上の大小関係で表しています 4. 製品および弊社が提供する技術を輸出等するにあたっては 外国為替および外国貿易法 を遵守し 当該法令の定める手続きが必要です 大量破壊兵器の開発等およびその他の軍事用途に使用する目的をもって製品および弊社が提供する技術を費消 再販売または輸出等しないでください 5. 本資料に掲載されている製品は 生命維持装置その他 きわめて高い信頼性が要求される用途を前提としていません よって 弊社は本 ( 当該 ) 製品をこれらの用途に用いた場合のいかなる責任についても負いかねます 6. 本資料に掲載されている会社名 商品名は 各社の商標または登録商標です SEIKO EPSON CORPORATION 2012-2013, All rights reserved.

目次 1. 概要... 1 2. ファイル構成... 2 2.1 ファイル一覧... 2 2.2 メインプログラムファイル (main_sample.c)... 2 2.3 メッセージプロトコル制御関数定義ファイル (asr_api.c)... 2 2.4 シリアルインターフェース制御関数定義ファイル (spi_api.c or uart_api.c)... 2 2.5 ダイアログ定義ファイル (dialog.c)... 2 2.6 シナリオライブラリ定義ファイル (scenario_lib.c)... 3 2.7 初期化データ定義ファイル (init_data x_x_x x_x.c)... 3 3. API 関数呼び出しフロー... 4 3.1 S1V50300 の起動及び初期化... 4 3.2 シナリオの実行... 6 4. メインプログラムファイル仕様 (main_sample.c)... 8 4.1 クロック同期式シリアルインタフェース... 8 4.2 調歩同期式シリアルインターフェース... 11 5. API 関数仕様... 14 5.1 メッセージプロトコル制御関数... 14 5.1.1 ASRSetUartConfiguration... 14 5.1.2 ASRLoadInitData... 15 5.1.3 ASRExitBootMode... 16 5.1.4 ASRSetKeycode... 17 5.1.5 ASRGetVersion... 18 5.1.6 ASRSetAdcVolume... 19 5.1.7 ASRSetDacVolume... 20 5.1.8 ASRStartDialogue... 21 5.1.9 ASRGetPromptFinished... 22 5.1.10 ASRGetRecognitionFinished... 23 5.1.11 ASRStopDialogue... 25 5.1.12 ASRTransferAudioStream... 26 5.2 シリアルインターフェース制御関数 ( クロック同期式 )... 27 5.2.1 SPIInitialize... 27 5.2.2 SPISendMessage... 28 5.2.3 SPIReceiveMessage... 29 5.2.4 SPISendByte... 30 S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation i

5.2.5 SPIReceiveByte... 31 5.3 シリアルインターフェース制御関数 ( 調歩同期式 )... 32 5.3.1 UARTInitialize... 32 5.3.2 UARTSendMessage... 33 5.3.3 UARTReceiveMessage... 34 5.3.4 UARTSendByte... 35 5.3.5 UARTReceiveByte... 36 5.4 その他の関数... 37 5.4.1 ASRGetRecognitionWord... 37 5.4.2 ASRGetFileAddress... 38 6. 構造体... 39 6.1 PROMPT_T 構造体... 39 6.2 FILE_ELEMENT_T 構造体... 40 6.3 RECOGNITION_T 構造体... 41 6.4 DIALOGUE_T 構造体... 42 6.5 FILE_ADDRESS_T 構造体... 43 7. 音声対話シナリオ ( サンプル )... 44 8. ISC_RECOGNITION_FIN_INDメッセージ... 45 ii Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

1. 概要 1. 概要 本ドキュメントは EPSON 音声認識 LSI(S1V50300) を使用されるお客様に提供するサンプルプログラムについて説明しています サンプルプログラムのファイル構成やサンプルプログラムで使用される API 関数の仕様について記述しています 本ドキュメントは 別紙の S1V50300 メッセージプロトコルマニュアル を引用している箇所があります S1V50300 メッセージプロトコルマニュアル と併せて参照ください S1V50300 サンプルプログラムは S1V50300 の評価で使用した弊社のホストシステムに実装して動作確認を行っていますが お客様のホストシステムに搭載する上での動作を保証するものではありません S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 1

2. ファイル構成 2. ファイル構成 2.1 ファイル一覧 表 2.1 に サンプルプログラムに含まれるファイルの一覧を示します main_sample.c asr_api.c asr_api.h ファイル名 表 2.1 ファイル一覧 メインプログラムファイル 説明 メッセージプロトコル制御関数定義ファイル 上記ソースファイルのヘッダファイル spi_api.c シリアルインターフェース制御関数定義ファイル ( クロック同期式 ) spi_api.h 上記ソースファイルのヘッダファイル uart_api.c シリアルインターフェース制御関数定義ファイル ( 調歩同期式 ) uart_api.h isc_asr_msg.h 上記ソースファイルのヘッダファイル メッセージ ID& メッセージ長定義ヘッダファイル dialog.c ダイアログ定義ファイル ( サンプル ) dialog.h 上記ソースファイルのヘッダファイル scenario_lib.c ホスト CPU メモリ格納用シナリオライブラリ定義ファイル ( サンプル ) scenario_lib.h init_data x_x_x x_x.c 上記ソースファイルのヘッダファイル 初期化データ定義ファイル x_x_x x_x はバージョン番号を示す 2.2 メインプログラムファイル (main_sample.c) 本ファイルは 本サンプルプログラムの main 関数を定義したソースファイルです 音声再生と音声認識を使用して音声対話インタフェースを実行するための一連のシーケンスが記述されています 2.3 メッセージプロトコル制御関数定義ファイル (asr_api.c) 本ファイルは S1V50300 メッセージプロトコルマニュアルに記載されるメッセージ仕様に基づいて S1V50300 の制御を行う API 関数を定義したソースファイルです 2.4 シリアルインターフェース制御関数定義ファイル (spi_api.c or uart_api.c) 本ファイルは ホスト CPU と S1V50300 とのシリアル通信を制御する API 関数を定義したソースファイルです シリアルインタフェースの種類に応じた個別のファイルとして用意しています お客様が使用されるインタフェースに合わせてファイルを選択してご使用ください 本ファイルは 弊社で評価用に使用したホスト CPU とのシリアルインターフェース接続を例にした制御プログラムです お客様のシステムに組み込む際は お客様のシステム仕様に合わせて変更してください 2.5 ダイアログ定義ファイル (dialog.c) 本ファイルは 音声対話インタフェースを実現するためのダイアログ情報を定義したソースファイルです サンプルとして簡単な音声対話シナリオのダイアログ情報が記述されています お客様作成の音声対話シナリオで動作させる場合は 本ファイルの内容を書き換えてご使用ください 音声対話シナリオの内容については 7. 音声対話シナリオ ( サンプル ) を参照ください 2 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

2. ファイル構成 2.6 シナリオライブラリ定義ファイル (scenario_lib.c) 本ファイルは ホスト CPU メモリ格納用シナリオライブラリを ASCII コードによるデータ列として定義したソースファイルです ホスト CPU 側のメモリにシナリオライブラリを格納して 音声ファイルや LM ファイルをホスト CPU から S1V50300 にストリーミング転送して動作させる場合に使用します 既に サンプル音声対話シナリオのシナリオライブラリが記述されています お客様作成の音声対話シナリオで動作させる場合は 本ファイルの内容をお客様のシナリオライブラリに書き換えてご使用ください 2.7 初期化データ定義ファイル (init_data x_x_x x_x.c) S1V50300 の起動直後にホストから転送する初期化データを ASCII コードによるデータ列として定義したソースファイルです 初期化データは S1V50300 起動後 必ずホストから S1V50300 に転送する必要があります 本データを転送しない場合 動作保証の範囲外となりますのでご注意ください S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 3

3. API 関数呼び出しフロー 3. API 関数呼び出しフロー 3.1 S1V50300 の起動及び初期化 S1V50300 の起動から初期化までの API 関数の呼び出しフローについて示します シリアルインタフェースとしてクロック同期式を選択した場合は図 3.1 調歩同期式を選択した場合は図 3.2 を参照してください Start シリアル I/F の初期化 (SPIInitialize) ハードウェアリセット 待機時間 160ms CNF[2:0] 端子 0x6 0x3 初期化データの転送あり? Yes No 初期化データのロード (ASRLoadInitData) ブートモード すべてのデータを転送終了? No キーコード タイムアウトの設定 (ASRSetKeycode) Yes メインモードに移行 (ASRExitBootMode) 音声出力ゲインの設定 (ASRSetDacVolume) メインモード 待機時間 20ms 音声入力ゲインの設定 (ASRSetAdcVolume) 3.2 節の図 3.3 or 3.4 に続く 図 3.1 起動および初期化時の API 関数呼び出しフロー ( クロック同期式インタフェース ) 4 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

3. API 関数呼び出しフロー Start シリアル I/F の初期化 (UARTInitialize) ハードウェアリセット 待機時間 160ms CNF[2:0] 端子 0x6 0x5 S1V50300 の通信条件変更 (ASRSetUartConfigration) ホスト CPU の通信条件変更 (UARTInitialize) 待機時間 10ms ブートモード 初期化データの転送あり? Yes 初期化データのロード (ASRLoadInitData) No すべてのデータを転送終了? Yes No メインモードに移行 (ASRExitBootMode) キーコード タイムアウトの設定 (ASRSetKeycode) 待機時間 20ms 音声出力ゲインの設定 (ASRSetDacVolume) 音声入力ゲインの設定 (ASRSetAdcVolume) メインモード 3.2 節の図 3.3 or 3.4 に続く 図 3.2 起動および初期化時の API 関数呼び出しフロー ( 調歩同期式インタフェース ) S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 5

3. API 関数呼び出しフロー 3.2 シナリオの実行 シナリオの実行開始から終了までの API 関数の呼び出しフローについて示します シナリオライブラリの格納先が内蔵 Mask ROM または外部シリアル Flash メモリの場合は図 3.3 を シナリオライブラリの格納先がホスト CPU の場合は図 3.4 を参照してください 図 3.1 及び図 3.2 からの続き キーコード タイムアウトの設定 (ASRSetKeycode) ダイアログを実行 (ASRStartDialogue) ダイアログに音声ガイド情報が含まれる? No Yes RTS 信号 音声再生終了通知を取得 (ASRGetPromptFinished) ダイアログに音声認識情報が含まれる? No Yes RTS 信号 音声認識終了通知を取得 (ASRGetRecognitionFinished) 認識結果の文字列 番号を取得 (ASRGetRecognitionWord) 次のダイアログを実行する? No Yes End 図 3.3 ダイアログ実行時の API 関数呼び出しフロー ( シナリオライブラリ格納先 : 内蔵 Mask ROM または外部シリアル Flash メモリ ) 6 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

3. API 関数呼び出しフロー 図 3.1 及び図 3.2 からの続き キーコード タイムアウトの設定 (ASRSetKeycode) ダイアログを実行 (ASRStartDialogue) ダイアログに音声ガイド情報が含まれる? No Yes RTS 信号 音声データをストリーミング転送 (ASRTransferAudioStream) すべてのデータを転送終了? No Yes RTS 信号 音声再生終了通知を取得 (ASRGetPromptFinished) ダイアログに音声認識情報が含まれる? Yes No RTS 信号 音声認識終了通知を取得 (ASRGetRecognitionFinished) 認識結果の文字列 番号を取得 (ASRGetRecognitionWord) 次のダイアログを実行する? No Yes End 図 3.4 ダイアログ実行時の API 関数呼び出しフロー ( シナリオライブラリ格納先 : ホスト CPU 側のメモリ ) S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 7

4. メインプログラムファイル仕様 (main_sample.c) 4. メインプログラムファイル仕様 (main_sample.c) メインプログラムファイルは音声対話を実行するための一連のプログラムが記述されており S1V50300 の起動から初期化 音声再生 音声認識による音声対話の実行までの一連の処理を行っています 本プログラムは クロック同期式および調歩同期式の両方のシリアルインタフェースの対応しています 本プログラムのファイルの先頭でプリプロセッサ定義により クロック同期式または調歩同期式のいずれかのシリアルインタフェースを設定して使用してください 4.1 クロック同期式シリアルインタフェース プリプロセッサ定義でクロック同期式シリアルインターフェースを選択した場合のサンプルプログラムの処理の流れについて示します (1) ホスト CPU 搭載のシリアルインターフェースの初期化を行う (SPIInitialize 関数の実行 ) (2) S1V50300 にハードウェアリセットをかける (3) S1V50300 のメッセージ受信可能状態になるまで 160ms 待機する - CNF[2:0] 端子が 0x3 の場合は (4) の処理へ - CNF[2:0] 端子が 0x6 の場合は (7) の処理へ < ブートモード起動 > (4) 初期化データを S1V50300 にロードする (ASRLoadInitData 関数の実行 ) (5) ブートモードからメインモードへ移行する (ASRExitBootMode 関数の実行 ) (6) S1V50300 の動作モード移行待ち時間として 20ms 待機する < メインモード起動 > (7) キーコードおよび音声認識タイムアウト時間の設定を行う (ASRSetKeycode 関数の実行 ) (8) 音声出力ゲインの設定を行う (ASRSetDacVolume 関数の実行 ) (9) 音声入力ゲインの設定を行う (ASRSetAdcVolume 関数の実行 ) - シナリオライブラリの格納先が内蔵 Mask ROM または外部シリアル Flash メモリの場合は (10) の処理へ - シナリオライブラリの格納先がホスト CPU の場合は (15) の処理へ 8 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

4. メインプログラムファイル仕様 (main_sample.c) (10) ダイアログ単位で音声認識タイムアウト時間を変更する場合 再度 設定を行う (ASRSetKeycode 関数の実行 ) (11) ダイアログ情報を S1V50300 に送信し ダイアログを実行する (ASRStartDialogue 関数の実行 ) (12) ダイアログ情報に音声ガイド情報が含まれている場合 S1V50300 から音声再生終了メッセージが通知されるまで待機する (ASRGetPromptFinished 関数の実行 ) (13) ダイアログ情報に音声認識情報が含まれている場合 S1V50300 から音声認識終了メッセージが通知されるまで待機する (ASRGetRecognitionFinished 関数の実行 ) (14) ダイアログ情報に音声認識情報が含まれている場合 音声認識終了メッセージから認識ワードの文字列およびインデックス番号を取得する (ASRGetRecognitionFinished 関数の実行 ) - 次に実行するダイアログがある場合は (10) の処理へ - 次に実行するダイアログがない場合は (25) の処理へ (15) ダイアログ単位で音声認識タイムアウト時間を変更する場合 再度 設定を行う (ASRSetKeycode 関数の実行 ) (16) ダイアログ情報に音声認識情報が含まれている場合 ホスト CPU に格納されたシナリオライブラリにアクセスして LM ファイルの読み込みを行う (ASRGetFileAddress 関数の実行 ) 更に 取得した LM ファイルをダイアログ情報に設定する (17) ダイアログ情報を S1V50300 に送信し ダイアログを実行する (ASRStartDialogue 関数の実行 ) (18) ダイアログ情報に音声ガイド情報が含まれている場合 ホスト CPU に格納されたシナリオライブラリにアクセスして EOV ファイルの読み込みを行う (GetFileAddress 関数の実行 ) (19) ダイアログ情報に音声ガイド情報が含まれている場合 EOV ファイルを S1V50300 にストリーミング転送する ストリーミング転送は ファイルサイズに応じてブロック単位で行い ファイルの終端に達するまで繰り返し行う (ASRTransferAudioStream 関数の実行 ) (20) (19) の処理で EOV ファイルのストリーミング転送終了後 S1V50300 に転送終了通知を送信する (ASRTransferAudioStream 関数の実行 ) (21) (18) (19) (20) の処理をダイアログ情報に設定されている EOV ファイルの数だけ繰り返し行う (22) ダイアログ情報に音声ガイド情報が含まれている場合 S1V50300 から音声再生終了メッセージが通知されるまで待機する S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 9

4. メインプログラムファイル仕様 (main_sample.c) (ASRGetPromptFinished 関数の実行 ) (23) ダイアログ情報に音声認識情報が含まれている場合 S1V50300 から音声認識終了メッセージが通知されるまで待機する (ASRGetRecognitionFinished 関数の実行 ) (24) ダイアログ情報に音声認識情報が含まれている場合 音声認識終了メッセージから認識ワードの文字列およびインデックス番号を取得する - 次に実行するダイアログがある場合は (15) の処理へ - 次に実行するダイアログがない場合は (25) の処理へ (25) プログラムを終了する 10 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

4. メインプログラムファイル仕様 (main_sample.c) 4.2 調歩同期式シリアルインターフェース プリプロセッサ定義で調歩同期式シリアルインターフェースを選択した場合のシナリオ制御プログラムの処理の流れについて説明します (1) ホスト CPU 搭載のシリアルインターフェースの初期化を行う (UARTInitialize 関数の実行 ) (2) S1V50300 にハードウェアリセットをかける (3) S1V50300 のメッセージ受信可能状態になるまで 160ms 待機する - CNF[2:0] 端子が 0x3 の場合は (4) の処理へ - CNF[2:0] 端子が 0x6 の場合は (10) の処理へ < ブートモード起動 > (4) S1V50300 に通信条件 ( ボーレート 転送モード ) の設定変更を通知する (ASRSetUartConfiguration 関数の実行 ) (5) ホスト CPU の通信条件の設定を変更する (UARTInitialize 関数の実行 ) (6) S1V50300 の通信条件の設定変更が有効になるまで 10ms 待機する (7) S1V50300 に初期化データをロードする (ASRLoadInitData 関数の実行 ) (8) ブートモードからメインモードへ移行する (ASRExitBootMode 関数の実行 ) (9) S1V50300 の動作モード移行待ち時間として 20ms 待機する < メインモード起動 > (10) キーコードおよび音声認識タイムアウト時間の設定を行う (ASRSetKeycode 関数の実行 ) (11) 音声出力ゲインの設定を行う (ASRSetDacVolume 関数の実行 ) (12) 音声入力ゲインの設定を行う (ASRSetAdcVolume 関数の実行 ) - シナリオライブラリの格納先が内蔵 Mask ROM または外部シリアル Flash メモリの場合は (13) の処理へ - シナリオライブラリの格納先がホスト CPU の場合は (18) の処理へ (13) ダイアログ単位で音声認識タイムアウト時間を変更する場合 再度 設定を行う (ASRSetKeycode 関数の実行 ) (14) ダイアログ情報を S1V50300 に送信し ダイアログを実行する S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 11

4. メインプログラムファイル仕様 (main_sample.c) (ASRStartDialogue 関数の実行 ) (15) ダイアログ情報に音声ガイド情報が含まれている場合 S1V50300 から音声再生終了メッセージが通知されるまで待機する (ASRGetPromptFinished 関数の実行 ) (16) ダイアログ情報に音声認識情報が含まれている場合 S1V50300 から音声認識終了メッセージが通知されるまで待機する (ASRGetRecognitionFinished 関数の実行 ) (17) ダイアログ情報に音声認識情報が含まれている場合 音声認識終了メッセージから認識ワードの文字列およびインデックス番号を取得する - 次に実行するダイアログがある場合は (13) の処理へ - 次に実行するダイアログがない場合は (28) の処理へ (18) ダイアログ単位で音声認識タイムアウト時間を変更する場合 再度 設定を行う (ASRSetKeycode 関数の実行 ) (19) ダイアログ情報に音声認識情報が含まれている場合 ホスト CPU に格納されたシナリオライブラリにアクセスして LM ファイルの読み込みを行う (ASRGetFileAddress 関数の実行 ) 更に 取得した LM ファイルをダイアログ情報に設定する (20) ダイアログ情報を S1V50300 に送信し ダイアログを実行する (ASRStartDialogue 関数の実行 ) (21) ダイアログ情報に音声ガイド情報が含まれている場合 ホスト CPU に格納されたシナリオライブラリにアクセスして EOV ファイルの読み込みを行う (GetFileAddress 関数の実行 ) (22) ダイアログ情報に音声ガイド情報が含まれている場合 EOV ファイルを S1V50300 にストリーミング転送する ストリーミング転送は ファイルサイズに応じてブロック単位で行い ファイルの終端に達するまで繰り返し行う (ASRTransferAudioStream 関数の実行 ) (23) (22) の処理で EOV ファイルのストリーミング転送終了後 S1V50300 に転送終了通知を送信する (ASRTransferAudioStream 関数の実行 ) (24) (21) (22) (23) の処理をダイアログ情報に設定されている EOV ファイルの数だけ繰り返し行う (25) ダイアログ情報に音声ガイド情報が含まれている場合 S1V50300 から音声再生終了メッセージが通知されるまで待機する (ASRGetPromptFinished 関数の実行 ) (26) ダイアログ情報に音声認識情報が含まれている場合 S1V50300 から音声認識終了メッセージが通知されるまで待機する (ASRGetRecognitionFinished 関数の実行 ) 12 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

4. メインプログラムファイル仕様 (main_sample.c) (27) ダイアログ情報に音声認識情報が含まれている場合 音声認識終了メッセージから認識ワードの文字列およびインデックス番号を取得する -(28) の処理へ (28) プログラムを終了する S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 13

5. API 関数仕様 5. API 関数仕様 S1V50300 を制御するための API 関数仕様を以下に記載します 5.1 メッセージプロトコル制御関数 メッセージプロトコル制御関数は S1V50300 メッセージプロトコルマニュアルに記載されたメッセージ仕様にしたがって S1V50300 の制御を行う関数です 5.1.1 ASRSetUartConfiguration [ 機能 ] [ 入力引数 ] [ 出力引数 ] int ASRSetUartConfiguration ( unsigned char unsigned char unsigned char ucbaudrate, ucstopbits, ucparity); S1V50300 に対して調歩同期式シリアルインタフェースの通信条件を設定します ucbaudrate ucstopbits ucparity ボーレートを設定します ストップビットを設定します パリティビットを設定します 上記引数に設定する値については S1V50300 メッセージプロトコルマニュアル表 6.3 ISC_BOOT_SYS_CONFIG_REQ の uart_baud_rate / stop_bits / uart_parity_selection の各フィールドを参照してください [ 戻り値 ] 正常終了した場合は 0 を返し それ以外は以下に示すエラーコードを返します エラーコード 値 説明 ERR_SUCCESS 0 正常終了した場合に返す ERR_GET_ERROR_CODE -2 受信メッセージにエラーコードが含まれる場合に返す ERR_GET_UNEXPECTED_MESSAGE -3 予期しないメッセージを受信した場合に返す ERR_ARGUMENT_SETTING -4 引数に範囲外の値が設定された場合に返す [ 機能説明 ] 本関数は シリアルインタフェースとして調歩同期式を選択した場合にのみ使用する関数で ISC_BOOT_SYS_CONFIG_REQ/RCV_IND の送受信を行います 本関数で使用しているメッセージの詳細については S1V50300 メッセージプロトコルマニュアル を参照してください 14 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

5. API 関数仕様 5.1.2 ASRLoadInitData int ASRLoadInitData ( unsigned char *pucinitdata, int iinitdatalength); [ 機能 ] ホストから S1V50300 に初期化データを転送します [ 入力引数 ] pucinitdata 初期化データを格納したメモリ領域の先頭アドレスを指定します iinitdatalength 初期化データのサイズを指定します [ 出力引数 ] [ 戻り値 ] 正常終了した場合は 0 を返し それ以外は以下に示すエラーコードを返します エラーコード 値 説明 ERR_SUCCESS 0 正常終了した場合に返す ERR_NULL_PTR -1 引数が NULL ポインタの場合に返す ERR_GET_ERROR_CODE -2 受信メッセージにエラーコードが含まれる場合に返す ERR_GET_UNEXPECTED_MESSAGE -3 予期しないメッセージを受信した場合に返す [ 機能説明 ] 本関数は ISC_BOOT_LOAD_REQ/RCV_IND の送受信を行います 本関数で使用しているメッセージの詳細については S1V50300 メッセージプロトコルマニュアル を参照してください 本関数でロードする初期化データは弊社より提供されます ただし 通常使用時においては初期化データのロードは不要です S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 15

5. API 関数仕様 5.1.3 ASRExitBootMode int ASRExitBootMode ( void ); [ 機能 ] Boot モードから Main モードへ移行します [ 入力引数 ] [ 出力引数 ] [ 戻り値 ] 正常終了した場合は 0 を返し それ以外は以下に示すエラーコードを返します エラーコード値説明 ERR_SUCCESS 0 正常終了した場合に返す ERR_GET_ERROR_CODE -2 受信メッセージにエラーコードが含まれる場合に返す ERR_GET_UNEXPECTED_MESSAGE -3 予期しないメッセージを受信した場合に返す [ 機能説明 ] 本関数は ISC_BOOT_EXIT_REQ/RCV_IND の送受信を行います 本関数で使用しているメッセージの詳細については S1V50300 メッセージプロトコルマニュアル を参照してください 16 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

5. API 関数仕様 5.1.4 ASRSetKeycode [ 機能 ] [ 入力引数 ] [ 出力引数 ] int ASRSetKeycode ( unsigned long unsigned short ulkeycode, ustimeout); S1V50300 にキーコードおよび音声認識タイムアウト時間を設定します ulkeycode ustimeout キーコード (16 進数 ) を設定します 音声認識のタイムアウト時間 ( 秒 ) を設定します ustimeout の設定値については S1V50300 メッセージプロトコルマニュアル表 6.10 ISC_TEST_REQ の asr_timeout フィールドを参照してください [ 戻り値 ] 正常終了した場合は 0 を返し それ以外は以下に示すエラーコードを返します エラーコード 値 説明 ERR_SUCCESS 0 正常終了した場合に返す ERR_GET_ERROR_CODE -2 受信メッセージにエラーコードが含まれる場合に返す ERR_GET_UNEXPECTED_MESSAGE -3 予期しないメッセージを受信した場合に返す [ 機能説明 ] 本関数は ISC_TEST_REQ/RCV_IND の送受信を行います 本関数で使用しているメッセージの詳細については S1V50300 メッセージプロトコルマニュアル を参照してください S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 17

5. API 関数仕様 5.1.5 ASRGetVersion [ 機能 ] [ 入力引数 ] int ASRGetVersion ( unsigned char aucdeviceversion[5]); S1V50300 のデバイス バージョンを取得します [ 出力引数 ] [ 戻り値 ] aucdeviceversion バージョン情報を格納する配列の先頭アドレスを設定します 正常終了した場合は 0 を返し それ以外は以下に示すエラーコードを返します エラーコード値説明 ERR_SUCCESS 0 正常終了した場合に返します ERR_NULL_PTR -1 引数が NULL ポインタの場合に返します [ 機能説明 ] 本関数は ISC_VERSION_REQ/RCV_IND の送受信を行います 本関数で使用しているメッセージの詳細については S1V50300 メッセージプロトコルマニュアル を参照してください 18 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

5. API 関数仕様 5.1.6 ASRSetAdcVolume [ 機能 ] [ 入力引数 ] [ 出力引数 ] int ASRSetAdcVolume ( unsigned char 音声入力ゲインを設定します ucadcvolume ucadcvolume); ADC のゲインを設定します ucadcvolume の設定値については S1V50300 メッセージプロトコルマニュアル表 6.25 ISC_ADC_VOLUME_REQ の volume_select フィールドを参照してください ) [ 戻り値 ] 正常終了した場合は 0 を返し それ以外は以下に示すエラーコードを返します エラーコード値説明 ERR_SUCCESS 0 正常終了した場合に返す ERR_GET_ERROR_CODE -2 受信メッセージにエラーコードが含まれる場合に返す ERR_GET_UNEXPECTED_MESSAGE -3 予期しないメッセージを受信した場合に返す [ 機能説明 ] 本関数は ISC_ADC_VOLUME_REQ/RCV_IND の送受信を行います 本関数で使用しているメッセージの詳細については S1V50300 メッセージプロトコルマニュアル を参照してください S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 19

5. API 関数仕様 5.1.7 ASRSetDacVolume [ 機能 ] [ 入力引数 ] [ 出力引数 ] int ASRSetDacVolume ( unsigned char 音声出力ゲインを設定します ucdacvolume ucdacvolume); DAC のゲインを指定します ucdacvolume の設定値については S1V50300 メッセージプロトコルマニュアル表 6.27 ISC_DAC_VOLUME_REQ の volume_select フィールドを参照してください [ 戻り値 ] 正常終了した場合は 0 を返し それ以外は以下に示すエラーコードを返します エラーコード値説明 ERR_SUCCESS 0 正常終了した場合に返す ERR_GET_ERROR_CODE -2 受信メッセージにエラーコードが含まれる場合に返す ERR_GET_UNEXPECTED_MESSAGE -3 予期しないメッセージを受信した場合に返す [ 機能説明 ] 本関数は ISC_DAC_VOLUME_REQ/RCV_IND の送受信を行います 本関数で使用しているメッセージの詳細については S1V50300 メッセージプロトコルマニュアル を参照してください 20 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

5. API 関数仕様 5.1.8 ASRStartDialogue [ 機能 ] [ 入力引数 ] [ 出力引数 ] int ASRStartDialogue ( PROMPT_T RECOGNITION_T unsigned char *pstprompt, *pstrecognition, ucmedia); ダイアログ ( 音声再生および音声認識 ) の実行を開始します pstprompt 音声ガイド選択構造体のポインタを設定します pstrecognition 音声認識設定構造体のポインタを設定します ucmedia シナリオライブラリの S1V50300 側の格納領域を設定します 1 pstprompt に NULL を設定した場合 音声認識単体で実行することが可能です また pstrecognition に NULL を設定した場合 音声ガイド単体で実行することが可能です 2 ucmedia の設定値については S1V50300 メッセージプロトコルマニュアル表 6.15 ISC_START_REQ の attributes (strage media) フィールドを参照してください [ 戻り値 ] 正常終了した場合は 0 を返し それ以外は以下に示すエラーコードを返します エラーコード 値 説明 ERR_SUCCESS 0 正常終了した場合に返す ERR_GET_ERROR_CODE -2 受信メッセージにエラーコードが含まれる場合に返す ERR_GET_UNEXPECTED_MESSAGE -3 予期しないメッセージを受信した場合に返す [ 機能説明 ] 本関数の内部では ISC_START_REQ/RCV_IND の送受信を行っています 本関数で使用しているメッセージの詳細については S1V50300 メッセージプロトコルマニュアル を参照してください S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 21

5. API 関数仕様 5.1.9 ASRGetPromptFinished int ASRGetPromptFinished ( void ); [ 機能 ] S1V50300 からの音声再生終了通知メッセージを取得します [ 入力引数 ] [ 出力引数 ] [ 戻り値 ] 再生が終了した場合は 0 を返し それ以外は以下に示すエラーコードを返します エラーコード値説明 ERR_SUCCESS 0 再生終了した場合に返す ERR_GET_ERROR_CODE -2 受信メッセージにエラーコードが含まれる場合に返す ERR_GET_UNEXPECTED_MESSAGE -3 予期しないメッセージを受信した場合に返す [ 機能説明 ] 本関数は ISC_PROMPT_FINISHED_IND の受信を行います 本関数で使用しているメッセージの詳細については S1V50300 メッセージプロトコルマニュアル を参照してください 22 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

5. API 関数仕様 5.1.10 ASRGetRecognitionFinished [ 機能 ] [ 入力引数 ] int ASRGetRecognitionFinished ( unsigned char *pucrecognitionfield); S1V50300 からの音声認識終了通知メッセージを取得し 認識結果の情報を受け取ります [ 出力引数 ] [ 戻り値 ] pucrecognitionfield 認識結果を格納するメモリ領域の先頭アドレスを設定します 設定するメモリ領域のサイズは 256 バイトで確保してください 認識が終了した場合は 0 を返し それ以外は以下に示すエラーコードを返します エラーコード値説明 ERR_SUCCESS 0 認識終了した場合に返す ERR_NULL_PTR -1 引数が NULL ポインタの場合に返す ERR_GET_ERROR_CODE -2 受信メッセージにエラーコードが含まれる場合に返す ERR_GET_UNEXPECTED_MESSAGE -3 予期しないメッセージを受信した場合に返す [ 機能説明 ] 本関数は ISC_RECOGNITION_FIN_IND の受信を行い ISC_RECOGNITION_FIN_IND の recognition_result フィールドに格納される認識結果を取得します 取得した認識結果は 引数で指定するメモリ領域にコピーして関数の呼び出し側に返します 以下に 認識結果の例を示します 選択肢 1: メニュー設定 2: 終了 3: もう一度 認識結果の例 認識結果 < 上記選択肢の中の メニュー設定 を認識した場合 > 01 0D 83 81 83 6A 83 85 81 5B 91 49 91 F0 09 01 : インデックス番号 0D: 文字列の長さ 83.. 09: 文字列 メニュー設定 n < 上記選択肢に合致する認識結果を検出できなかった場合 > ***NO WORDS FOUND*** n < タイムアウト時間内に認識処理を終了できなかった場合 > ***TIMEOUT STOP*** n S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 23

5. API 関数仕様 本関数で使用しているメッセージの詳細については 8. ISC_RECOGNITION_FIN_IND メッセージ を参照してください また 認識結果の情報から認識結果のインデックス番号と文字列を取得する API 関数を用意しています 詳細については 5.4.1 ASRGetRecognitionWord を参照してください 24 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

5. API 関数仕様 5.1.11 ASRStopDialogue int ASRStopDialogue ( void ); [ 機能 ] ダイアログ ( 音声再生および音声認識 ) の実行を停止します [ 入力引数 ] [ 出力引数 ] [ 戻り値 ] 正常終了した場合は 0 を返し それ以外は以下に示すエラーコードを返します エラーコード値説明 ERR_SUCCESS 0 正常終了した場合に返します ERR_NULL_PTR -1 引数が NULL ポインタの場合に返します [ 機能説明 ] 本関数は ISC_FSTOP_REQ/RCV_IND の送受信を行います 続いて 次の REQ メッセージの送信までの待ち時間として 20msec 待機します 本関数で使用しているメッセージの詳細については S1V50300 メッセージプロトコルマニュアル を参照してください ISC_FSTOP_REQ を送信すると音声入出力ゲインの設定値が初期化されます 本関数を実行した後は ASRSetDacVolume 関数および ASRSetAdcVolume 関数を実行して音声入出ゲインの再設定を行ってください S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 25

5. API 関数仕様 5.1.12 ASRTransferAudioStream [ 機能 ] [ 入力引数 ] int ASRTransferAudioStream ( unsigned char int unsigned short *pucstream, istreamlength, usattributes) 音声データをホストからデバイスに対してストリーミング転送を行います [ 出力引数 ] [ 戻り値 ] pucstream istreamlength, usattributes 音声データのポインタを設定します 音声データのサイズ ( バイト ) を設定します ストリーミング転送の終了通知を示すフラグを指定します usattributes の設定値については S1V50300 メッセージプロトコルマニュアル表 6.22 ISC_DECODE_REQ の attributes フィールドを参照してください 正常終了した場合は 0 を返し それ以外は以下に示すエラーコードを返します エラーコード 値 説明 ERR_SUCCESS 0 正常終了した場合に返します ERR_NULL_PTR -1 引数が NULL ポインタの場合に返します [ 機能説明 ] 本関数は ISC_READY_IND を受信し 続いて 音声データのストリーミング再生を行う ISC_DECODE_REQ/RCV_IND の送受信を行います 本関数で使用しているメッセージの詳細については S1V50300 メッセージプロトコルマニュアル を参照してください 26 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

5. API 関数仕様 5.2 シリアルインターフェース制御関数 ( クロック同期式 ) シリアルインタフェース制御関数 ( クロック同期式 ) は クロック同期式シリアルインタフェースを介して ホスト CPU と S1V50300 との間でデータ送受信の制御を行う関数です 5.2.1 SPIInitialize void [ 機能 ] [ 入力引数 ] SPIInitialize (void) ホスト CPU のクロック同期式シリアルインターフェースの初期化及び通信設定を行います [ 出力引数 ] [ 戻り値 ] [ 機能説明 ] ホスト CPU 搭載のクロック同期式シリアルインタフェースモジュールの初期化を行います 本関数では 弊社評価環境で使用したホスト CPU のクロック同期式シリアルインターフェース (SPI) 仕様に基づいて 以下に示す手順で初期化を行っています (1) SPI を無効にする (2) SPI の割り込み設定を無効にする (3) 入出力端子の設定を行う (4) SPI のクロック周波数を設定する (5) SPI のクロック信号の極性および位相を設定する (6) SPI をマスタモードに設定する (7) データ転送間ウェイトサイクルを設定する (8) 受信データのビットマスクを設定する (9) SPI を有効にする S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 27

5. API 関数仕様 5.2.2 SPISendMessage int SPISendMessage ( unsigned char *pucsendmessage, unsigned char ucchecksumflg) [ 機能 ] S1V50300 に REQ メッセージを送信します [ 入力引数 ] pucsendmessage REQ メッセージが格納されたメモリ領域の先頭アドレスを設定します ucchecksumflg チェックサムの有効 / 無効を設定します (0: disable / 1: enable) [ 出力引数 ] [ 戻り値 ] 正常終了した場合は 0 を返し それ以外は以下に示すエラーコードを返します エラーコード 値 説明 ERR_SUCCESS 0 正常終了した場合に返します ERR_NULL_PTR -1 引数が NULL ポインタの場合に返します [ 機能説明 ] 引数指定した REQ メッセージのバイト列を S1V50300 に送信します チェックサム機能は Boot モードメッセージの送信のときのみ使用できます Main モードメッセージの送信では チェックサム機能を有効にしても使用できませんのでご注意ください 28 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

5. API 関数仕様 5.2.3 SPIReceiveMessage [ 機能 ] [ 入力引数 ] int SPIReceiveMessage ( unsigned short unsigned char *pucmessageid, *pucreceivedmessage) S1V50300 からの IND メッセージを受信します [ 出力引数 ] [ 戻り値 ] pucmessageid pucreceivedmessage IND メッセージのメッセージ ID を格納する変数のポインタを設定します IND メッセージを格納するメモリ領域の先頭アドレスを設定します 正常終了した場合は 0 を返し それ以外は以下に示すエラーコードを返します エラーコード 値 説明 ERR_SUCCESS 0 正常終了した場合に返します ERR_NULL_PTR -1 引数が NULL ポインタの場合に返します ERR_GET_ERROR_CODE -2 S1V50300 からの受信メッセージにエラーコードが含まれている場合に返します ERR_RESERVED_MESSAGE_ID -3 S1V50300 からの受信メッセージが予約された ID の場合に返します ERR_ISC_VERSION_RESP -4 ISC_VERSION_RESP の内容が仕様に一致しない場合に返します ERR_TIMEOUT 1 設定したタイムアウト時間内に S1V50300 から通知されるメッセージが受信されない場合に返します [ 機能説明 ] S1V50300 から通知される IND メッセージを受信します 出力引数である pucreceivedmessageid には 取得した IND メッセージの ID の値が格納されます また pucreceivedmessage で指定されるメモリ領域には IND メッセージのデータ全体が格納されます ( 開始ワードである 0x00 0xAA を除く ) 本関数の外で IND メッセージのデータを使用しない場合は pucreceivedmessage に NULL を指定してくだい S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 29

5. API 関数仕様 5.2.4 SPISendByte [ 機能 ] [ 入力引数 ] [ 出力引数 ] void SPISendByte ( unsigned char 1 バイトのデータを送信します ucsenddata [ 戻り値 ] [ 機能説明 ] ucsenddata) 1 バイトの送信データを設定します S1V50300 へ 1 バイトのデータを SPI 経由で送信します 30 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

5. API 関数仕様 5.2.5 SPIReceiveByte unsigned char SPIReceiveByte ( void ) [ 機能 ] 1 バイトのデータを受信します [ 入力引数 ] [ 出力引数 ] [ 戻り値 ] 1 バイトの受信データを返します [ 機能説明 ] S1V50300 から 1 バイトのデータを SPI 経由で受信します S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 31

5. API 関数仕様 5.3 シリアルインターフェース制御関数 ( 調歩同期式 ) シリアルインタフェース制御関数 ( 調歩同期式 ) は 調歩同期式シリアルインタフェースを介して ホスト CPU と S1V50300 との間でデータ送受信の制御を行う関数です 5.3.1 UARTInitialize [ 機能 ] [ 入力引数 ] [ 出力引数 ] void UARTInitialize ( unsigned long int ulbaudrate, itransfermode); ホスト CPU の調歩同期式シリアルインターフェースの初期化及び通信設定を行います ulbaudrate itransfermode [ 戻り値 ] [ 機能説明 ] ボーレートを設定します 転送モードを設定します ホスト CPU の調歩同期式シリアルインタフェースモジュールの初期化及び通信設定を行います 本関数では 弊社評価環境で使用したホスト CPU の調歩同期式シリアルインターフェース (UART) 仕様に基づいて 以下に示す手順で初期化および通信設定を行っています (1) UART を無効にする (2) UART の割り込み設定を無効にする (3) UART 用受信バッファにデータがある場合は そのデータを取得する (4) サンプリングクロックの分周比を設定する (5) ボーレートおよび転送モード ( データビット ストップビット パリティビット ) を設定する (6) UART をマスタモードに設定する (7) データ転送間のウェイトサイクルを設定する (8) 受信データのビットマスクを設定する (9) UART を有効にする 32 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

5. API 関数仕様 5.3.2 UARTSendMessage int UARTSendMessage ( unsigned char *pucsendmessage, unsigned char ucchecksumflg) [ 機能 ] S1V50300 に REQ メッセージを送信します [ 入力引数 ] pucsendmessage REQ メッセージが格納されたメモリ領域の先頭アドレスを設定します ucchecksumflg チェックサムの有効 / 無効を設定します (0: disable / 1: enable) [ 出力引数 ] [ 戻り値 ] 正常終了した場合は 0 を返し それ以外は以下に示すエラーコードを返します エラーコード 値 説明 ERR_SUCCESS 0 正常終了した場合に返します ERR_NULL_PTR -1 引数が NULL ポインタの場合に返します [ 機能説明 ] 引数指定した REQ メッセージのバイト列を S1V50300 に送信します チェックサム機能は Boot モードメッセージの送信のときのみ使用できます Main モードメッセージの送信では チェックサム機能を有効にしても使用できませんのでご注意ください S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 33

5. API 関数仕様 5.3.3 UARTReceiveMessage [ 機能 ] [ 入力引数 ] int UARTReceiveMessage ( unsigned short unsigned char *pucmessageid, *pucreceivedmessage) S1V50300 からの IND メッセージを受信します [ 出力引数 ] [ 戻り値 ] pucmessageid pucreceivedmessage IND メッセージのメッセージ ID を格納する変数のポインタを設定します IND メッセージを格納するメモリ領域の先頭アドレスを設定します 正常終了した場合は 0 を返し それ以外は以下に示すエラーコードを返します エラーコード 値 説明 ERR_SUCCESS 0 正常終了した場合に返します ERR_NULL_PTR -1 引数が NULL ポインタの場合に返します ERR_GET_ERROR_CODE -2 S1V50300 からの受信メッセージにエラーコードが含まれている場合に返します ERR_RESERVED_MESSAGE_ID -3 S1V50300 からの受信メッセージが予約された ID の場合に返します ERR_ISC_VERSION_RESP -4 ISC_VERSION_RESP の内容が仕様に一致しない場合に返します ERR_TIMEOUT 1 設定したタイムアウト時間内に S1V50300 から通知されるメッセージが受信されない場合に返します [ 機能説明 ] S1V50300 から通知される IND メッセージを受信します 出力引数である pucreceivedmessageid には 取得した IND メッセージの ID の値が格納されます また pucreceivedmessage で設定されるメモリ領域には IND メッセージのデータ全体が格納されます 本関数の外で IND メッセージのデータを使用しない場合は pucreceivedmessage に NULL を設定してくだい 34 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

5. API 関数仕様 5.3.4 UARTSendByte [ 機能 ] [ 入力引数 ] [ 出力引数 ] void UARTSendByte ( unsigned char 1 バイトのデータを送信します ucsenddata [ 戻り値 ] [ 機能説明 ] ucsenddata) 1 バイトの送信データを設定します S1V50300 へ 1 バイトのデータを UART 経由で送信します S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 35

5. API 関数仕様 5.3.5 UARTReceiveByte unsigned char UARTReceiveByte ( void ) [ 機能 ] 1 バイトのデータを受信します [ 入力引数 ] [ 出力引数 ] [ 戻り値 ] 1 バイトの受信データを返します [ 機能説明 ] S1V50300 から 1 バイトのデータを UART 経由で受信します 36 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

5. API 関数仕様 5.4 その他の関数 5.4.1 ASRGetRecognitionWord [ 機能 ] [ 入力引数 ] [ 出力引数 ] [ 戻り値 ] int ASRGetRecognitionWord ( int char unsigned char *piwordindex, *pszwordstring, *pucrecognitionfield); 認識結果の文字列およびインデックス番号を取得します pucrecognitionfield piwordindex pszwordstring ASRGetRecognitionFinished 関数で取得した認識結果を格納したメモリ領域の先頭アドレスを設定します 認識結果のインデックス番号を返します 認識結果の文字列を返します 正常終了した場合は 0 を返し それ以外は以下に示すエラーコードを返します エラーコード 値 説明 ERR_SUCCESS 0 正常終了した場合に返します ERR_NULL_PTR -1 引数が NULL ポインタの場合に返します [ 機能説明 ] ASRGetRecognitionFinished 関数で取得した認識結果の情報から 認識結果のインデックス番号と文字列を取得します 本関数では 認識結果文字列が NO WORD FOUND の場合 インデックス番号に 0 をセットして返します S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 37

5. API 関数仕様 5.4.2 ASRGetFileAddress [ 機能 ] [ 入力引数 ] [ 出力引数 ] [ 戻り値 ] int ASRGetFileAddress ( unsigned long long unsigned char unsigned long unsigned long *pulstartaddress, *pllength, *pszfilename, *pucasrfileaddresstable, ulscenariolibraryaddress); ホスト CPU 側のメモリに格納されたシナリオライブラリからファイルを読み出すためのアドレス情報を取得します pszfilename pucasrfileadresstable ulscenariolibraryaddress pulstartaddress pllength ファイル名を設定します シナリオライブラリ用アドレス情報テーブルの先頭アドレスを設定します シナリオライブラリの格納先アドレス ( オフセットアドレス ) を設定します ファイルの先頭アドレスを返します ファイルのサイズを返します 正常終了した場合は 0 を返し それ以外は以下に示すエラーコードを返します [ 機能説明 ] エラーコード 値 説明 ERR_SUCCESS 0 正常終了した場合に返します ERR_NULL_PTR -1 引数が NULL ポインタの場合に返します ERR_NOT_FINDE_FILE -10 ファイルが存在しない場合に返します 本関数は ホスト CPU 側のメモリに格納されたシナリオライブラリからファイルを読み出すためのアドレス情報を取得します シナリオライブラリに含まれるファイルの先頭アドレスを定義したアドレス情報テーブルを参照して ファイルの先頭アドレスとサイズを関数の呼出し側に返します 第 5 引数に シナリオライブラリ格納先のアドレスを設定した場合 そのアドレスを加算した値でファイルの先頭アドレスを返します 38 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

6. 構造体 6. 構造体 ASR 制御 API 関数で使用される構造体の仕様を以下に記載します 6.1 PROMPT_T 構造体 typedef struct tagprompt { } PROMPT_T; unsigned short unsigned short FILE_ELEMENT_T usreserved; usfilecount; *pastfileelement; [ メンバ変数 ] [ 説明 ] usreserved 予約 ( 設定値 :0x0000 固定 ) usfilecount 音声ファイル数 ( 最大 64) pastfileelement 個々の音声ファイルの情報を定義した FILE_ELEMENT 構造体の配列テーブルの先頭アドレス 本構造体は 音声再生情報を設定するための構造体で ISC_START_REQ に含まれる 音声ガイド選択構造体 に相当します メンバ変数 pastfileelement には 後述する 6.2 FILE_ELEMENT_T 構造体 の配列テーブルの先頭アドレスを設定します S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 39

6. 構造体 6.2 FILE_ELEMENT_T 構造体 typedef struct tagfileelement { unsigned short unsigned short unsigned char } FILE_ELEMENT_T; usdelay; ustype; aucfilename[12]; [ メンバ変数 ] usdelay ustype aucfilename[12] 音声ファイル再生後に挿入される無音区間の長さ [ms] 0x0000 ~ 0x0064 (100ms) 0x0065 ~ 0x0FA0 (101ms ~ 4000ms) 音声再生方式の種類 0x0001: シーケンス再生 0x0003: ストリーミング再生音声ファイル名 音声ファイル名は 8.3 形式で最大 12 バイトです 11 バイト以下は NULL( 0 or 0x00) 終端で設定してください [ 説明 ] 本構造体は 個々の音声ファイルの情報を設定する構造体で ISC_START_REQ に含まれる 音声ガイド選択構造体 のサブ構造体である 音声ファイル設定構造体 に相当します 各メンバ変数の設定値については S1V50300 メッセージプロトコルマニュアル表 6.17 音声ファイル設定構造体 の delay_ms / type / eov_file_name フィールドを参照してください 40 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

6. 構造体 6.3 RECOGNITION_T 構造体 typedef struct tagrecognition { unsigned char int } RECOGNITION_T; *pucdata; ilen; [ メンバ変数 ] pucdata ilen LM ファイルの実データを格納したメモリ領域の先頭アドレス または LM ファイル名の文字列を格納したメモリ領域の先頭アドレス LM ファイル名は 8.3 形式で拡張子含めて最大 12 バイトです LM ファイル名が 12 バイト未満の場合は 12 バイト目まで 0x00 で埋めてください LM ファイルの実データのバイトサイズ または LM ファイル名の文字列のバイトサイズ pucdata に LM ファイル名を設定する場合は 12 バイト固定です [ 説明 ] 本構造体は 音声認識情報を設定するための構造体です ISC_START_REQ に含まれる 音声認識設定構造体 に相当します メンバ変数 pucdata の設定値は LM ファイルの使用形態によって異なります ホストから LM ファイルを転送する場合 LM ファイルの実データを格納したメモリ領域の先頭アドレスを設定する 内蔵 Mask ROM または外部シリアル Flash メモリに格納された LM ファイルを使用する場合 LM ファイル名の文字列を格納したメモリ領域の先頭アドレスを設定する S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 41

6. 構造体 6.4 DIALOGUE_T 構造体 typedef struct tagdialogue { PROMPT_T } DIALOGUE_T; [ メンバ変数 ] pstprompt pstrecognition RECOGNITION_T *pstprompt; *pstrecognition; 音声再生情報へのポインタ音声認識情報へのポインタ [ 説明 ] 本構造体は ダイアログ情報を定義するための構造体で 音声再生情報を格納する音声選択構造体と音声認識情報を格納する音声認識設定構造体を含みます 42 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

6. 構造体 6.5 FILE_ADDRESS_T 構造体 typedef struct tagfileaddress { unsigned char unsigned long unsigned long } FILE_ADDRESS_T; aucfilename[13]; uladdress; ullength; [ メンバ変数 ] aucfilename[13] ulstartaddress ullnegth ファイル名 (*.eov または *.lm) ファイルの先頭アドレス ファイルサイズ [ 説明 ] 本構造体は シナリオライブラリに含まれるファイルの格納先アドレスとファイルサイズを設定する構造体です シナリオライブラリからファイルを取得するアドレステーブルを定義するために使用します S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 43

7. 音声対話シナリオ ( サンプル ) 7. 音声対話シナリオ ( サンプル ) 本サンプルプログラムで実装されている音声対話シナリオのダイアログ遷移を以下に記載します ダイアログ番号音声ガイド認識選択肢 1 認識選択肢 2 シナリオ実行開始 No.1 効果音 0 : NO WORD ダイアログ No.1 を実行 1 : 電気点けて No.2 点けます ダイアログ No.1 を実行 ( 認識選択肢 ) 2 : 電気消して No.3 消します ダイアログ No.1 を実行 ( 認識選択肢 ) 3 : 明るく No.4 明るくします ダイアログ No.1 を実行 ( 認識選択肢 ) 4 : 暗く No.5 暗くします ダイアログ No.1 を実行 ( 認識選択肢 ) 5 : 終了 No.6 終了します シナリオ実行終了 ( 認識選択肢 ) ダイアログ No.1 は 10 秒間の認識待ち受けで動作し その間に認識しなかった場合は No.1 を再実行する 44 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

8. ISC_RECOGNITION_FIN_IND メッセージ 8. ISC_RECOGNITION_FIN_IND メッセージ 以下に ISC_RECOGNITION_FIN_IND メッセージの詳細について記載します 表 8.1 ISC_RECOGNITION_FIN_IND バイト フィールド 値 0 length(lsb) 0x0007 + size(r) 1 length(msb) 2 msg_id(lsb) 0x000B 3 msg_id(msb) 4 error_code(lsb) 0x0000: ノーエラー 5 error_code(msb) 0x0001-0xFFFF: エラーコード 6 recognition_result 認識結果構造体 (R) 表 8.2.1... 表 8.2.3 に記載本フィールドの最大サイズは 256 バイト 6+size(R) reserved - 表 8.2.1 recognition_result( 認識結果検出 ) バイト フィールド 値 0 Index 認識結果のインデックス番号 指定できる範囲は 1-254 (0x01-0xFE) 1 string_length 認識結果の文字列の長さ 文字列の最大長は 255 バイト 2 (string_length+1) string 認識結果の文字列 文字列の終端は改行コード ( n or 0x09) が設定される 表 8.2.2 recognition_result( 認識結果未検出 ) バイト フィールド 値 0...20 no_phrase_string "***NO WORDS FOUND*** n" 選択肢に合致する認識結果を検出できなかった場合に 上記文字列が格納される 表 8.2.3 recognition_result( タイムアウト ) バイト フィールド 値 0...18 no_phrase_string "***TIMEOUT STOP*** n" タイムアウト時間内に認識処理を終了できなかった場合に 上記文字列が格納される S1V50300 サンプルプログラムマニュアル Seiko Epson Corporation 45

8. ISC_RECOGNITION_FIN_IND メッセージ 46 Seiko Epson Corporation S1V50300 サンプルプログラムマニュアル

改訂履歴 改訂履歴 Rev. No. 日付ページ種別改訂内容 Rev1.0 2012/05/31 全ページ新規新規制定 Rev1.1 2013/11/12 P.2 追加表 2.1 に init_data x_x_x x_x.c の説明を追加 Rev1.1 2013/11/12 P.3 追加 2.7 初期化データ定義ファイル (init_data x_x_x x_x.c) を新規に追加 Rev1.1 2013/11/12 P.23 追加 5.1.10 ASRGetRecognitionFinished に タイムアウト時の認識結果例を追加 Rev1.1 2013/11/12 P.45 追加 8. ISC_RECOGNITION_FIN_IND メッセージ を新規に追加

マイクロデバイス事業部 IC 営業部 東京 大阪 191-8501 東京都日野市日野 421-8 TEL(042)587-5313( 直通 ) FAX(042)587-5116 541-0059 大阪市中央区博労町 3-5-1 エプソン大阪ビル 15F TEL(06)6120-6000( 代表 ) FAX(06)6120-6100 ドキュメントコード :412285001 2012 年 5 月作成 2013 年 11 月改訂