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

Similar documents
AquesTalk プログラミングガイド

AquesTalk Win Manual

AquesTalk2 Win マニュアル

AquesTalk2 Win マニュアル&ライセンス規定

AquesTalk Mac マニュアル

AquesTalk2 Mac マニュアル

AquesTalk2 Linux マニュアル

AquesTalk10 Linux マニュアル

AquesTalk10 Win マニュアル

AquesTalk10 iOS マニュアル

AquesTalk10 Mac マニュアル

AquesTalk10 Android マニュアル

AqKanji2Koe Win マニュアル

AqKanji2Koe Mac マニュアル

Microsoft PowerPoint - kougi7.ppt

多言語ドメイン名の実装 mdnkit 石曽根信 ( 株 ) SRA 2001/12/04 日本語ドメイン名解説 / mdnkit 1 mdnkit 多言語ドメイン名を扱うためのツールキット 正規化 エンコード変換等を提供するライブラリとコマンド 既存アプリケーシ

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

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

02: 変数と標準入出力

Microsoft PowerPoint - kougi9.ppt

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

memo

Microsoft PowerPoint - kougi6.ppt

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

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

PowerPoint プレゼンテーション

Microsoft PowerPoint - kougi11.ppt

プログラミング演習3 - Cプログラミング -

02: 変数と標準入出力

02: 変数と標準入出力

CashDrawer ライブラリ API 仕様書 2014/07/09 CashDrawer ライブラリ API 仕様書 Rev / 10

Microsoft PowerPoint - kougi8.ppt

PowerPoint プレゼンテーション

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

マニュアル訂正連絡票

コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include <stdio.h> 2. #include <ctype.h> /*troupper,islower,isupper,tol

N08

PowerPoint プレゼンテーション

農業・農村基盤図の大字小字コードXML作成 説明書

講習No.9

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

Prog1_10th

02: 変数と標準入出力

joho07-1.ppt

02: 変数と標準入出力

HDC-EDI Manager Ver レベルアップ詳細情報 < 製品一覧 > 製品名バージョン HDC-EDI Manager < 対応 JavaVM> Java 2 Software Development Kit, Standard Edition 1.4 Java 2

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

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

memo

24th Embarcadero Developer Camp

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar

GS1-128 の描画 DLL について (ver. 2.3) 動作環境など動作環境 WindowsXP Windows Vista Windows7 Windows8/8.1 Windows10 上記 OS について すべて日本語版を対象としております 32bit アプリケーションから呼び出される

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

eYACHO 管理者ガイド

(C) Copyright CANVASs Co

C言語入門

API 連携方式 外部 DLL の呼び出し宣言 外部 DLL の呼び出し宣言のサンプルコード (Microsoft Visual C#.NET の場合 ) プログラムコードの先頭で using System.Runtime.InteropServices; が必要 クラスの内部に以下のような外部 D

5-2. 顧客情報をエクスポートする 顧客管理へのアクセス手順 メールディーラーで管理する顧客情報に関する設定を行います 1. 画面右上の 管理設定 をクリックする 2. 管理設定 をクリックする 3. ( タブ ) 顧客管理 をクリックする 2

プログラミング演習3 - Cプログラミング -

02: 変数と標準入出力

プログラミング実習I

説明書

memo

PowerPoint プレゼンテーション

PowerPoint Presentation

02: 変数と標準入出力

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

Microsoft PowerPoint - kougi4.ppt

プロセス間通信

memo

計算機プログラミング

目次 1. 変換の対象 砂防指定地 XML 作成メニュー シェープファイルからXMLへ変換 砂防指定地 XMLとシェープファイルの対応.csv 変換処理 CSVファイルによる属性指定... 5

HULFT for Mainframe Type ACOS Ver レベルアップ詳細情報 < 製品一覧 > 製品名バージョン HULFT for Mainframe Type ACOS < 対応 OS> ACOS-4/XVP PX, ACOS-4/NPX, ACOS-4/i-

program7app.ppt

ARToolKit プログラムの仕組み 1: ヘッダファイルのインクルード 2: Main 関数 3: Main Loop 関数 4: マウス入力処理関数 5: キーボード入力処理関数 6: 終了処理関数 3: Main Loop 関数 1カメラ画像の取得 2カメラ画像の描画 3マーカの検出と認識

Microsoft PowerPoint - kougi10.ppt

02: 変数と標準入出力

メール全文検索アプリケーション Sylph-Searcher のご紹介 SRA OSS, Inc. 日本支社技術部チーフエンジニア Sylpheed 開発者 山本博之 Copyright 2007 SRA OSS, Inc. Japan All right

第1回 プログラミング演習3 センサーアプリケーション

Microsoft Word - Writing Windows Installer's DLL.doc

プログラミング実習I

HULFT-DataMagic for Windows Ver レベルアップ詳細情報 < 製品一覧 > 製品名 バージョン HULFT-DataMagic for Windows HULFT-DataMagic コード変換 オプション for Windows HU


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

サイボウズ Office「社外からアクセス」

NetworkVantage 9

C プログラミング 1( 再 ) 第 4 回 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 1

<4D F736F F D20B6BCB5D7B2CCDED7D8CFC6ADB1D9315F43532E444F43>

02: 変数と標準入出力

7th CodeGear Developer Camp

Apache-Tomcat と 冗長な UTF-8 表現 (CVE 検証レポート ) 2008 年 08 月 26 日 Ver. 0.1

Android用 印刷プラグイン Canon Print Service マニュアル

PowerPoint プレゼンテーション

プログラミング基礎

PowerPoint プレゼンテーション

DA-300USB JP_GS_Final_1128.indd

まず,13 行目の HardwareTimer Timer(1); は,HardwareTimer というクラスを利用するという宣言である. この宣言によって Timer というインスタンスが生成される.Timer(1) の 1 は,OpenCM に 4 個用意されているタイマのうち,1 番のタイマ

プログラミング入門1

02: 変数と標準入出力

02: 変数と標準入出力

Transcription:

AquesTalk for WinCE プログラミングガイド ( 株 ) アクエスト 1. 概要 本文書は 規則音声合成ライブラリ AquesTalk for WinCE ( 以下 AquesTalk) をアプリケーションに組み込んで使用するためのプログラミングに関して 方法および注意点を示したものです AquesTalk には 2 種類のライブラリがあります 音声データをメモリ上に生成するものと サウンドデバイスに出力する 2 種類があります 使用するアプリケーションに応じて選択してください 最も簡単な使用方法は 次の 1 行のコードで実現できます (VC++) 1. 音声を生成して サウンドデバイスに出力します AquesTalkDa_PlaySync_Utf16 (" こんにちわ "); //< に音声記号列の文字列を指定 2. ライブラリ構成 ご利用の OS に応じて 2 種類のライブラリが含まれています 1. PC2003 Windows Pocket PC 2003 上でご利用のときのライブラリが含まれています 2. WM5 Windows Mobile 5.0 用のライブラリが含まれています Windows Mobile 6 でもご利用いただけます また それぞれ次の 2 種類のライブラリがあります 必要に応じてどちらか あるいは両方を選択して アプリモジュールとおなじディレクトリにコピーして用いてください 1. AquesTalk.dll 音声記号列から音声データ (WAV フォーマット ) を生成します 音声データをメモリ上に生成します 生成した音声データになんらかの処理を施す場合には こちらを用います AquesTalkDa.dll AquesTalk.dll 2. AquesTalkDa.dll AquesTalk.dll に DA( サウンド出力機能 ) を含んだもので 音声記号列から音声を生成し サウンドデバイスに出力します AquesTalkDa.dll の実行に際し AquesTalk.dll は不要です 同期と非同期の 2 種類があります 同期タイプは発声を終了するまで関数から戻らないもので 非同期タイプは 発声の終了を待たずに関数から戻るもので 発声の終了はメッセージで通知することが可能です DA 3. コンパイル リンク 3.1. ヘッダ ライブラリ DLL を使用するには対応するヘッダファイル (.h) をインクルードし リンク時に対応する lib ファイルをリンクすることが必要です 各 DLL に対応するヘッダ等は下表を参照してください

DLL ヘッダ lib AquesTalk.dll AquesTalk.lib AquesTalkDa.dll AquesTalk.lib 4. 関数 API 4.1. AquesTalk.dll ( WindowCE では通常文字コードは UNICODE ですので 通常は AquesTalk_Synthe_Utf16() を用います ) AquesTalk_Synthe 説明音声記号列から音声波形を生成します生成した音声データは 使用後 呼び出し側で AquesTalk_FreeWave を呼び出して開放してください unsigned char * AquesTalk_Synthe(const char *, int, int *size) 音声記号列 (NULL 終端シフト JIS) size 生成した音声データのサイズが返る [byte]( エラーの場合はエラーコードが返る ) WAV フォーマットのデータ ( 内部で領域確保 解放は呼び出し側で AquesTalk_FreeWave() で 行う ) の先頭アドレスを返す エラー時は NULL を返す このとき size にエラーコードが設定さ れる AquesTalk_Synthe_Euc 説明音声記号列から音声波形を生成します AquesTalk_Synthe() の EUC 文字コード版 unsigned char * AquesTalk_Synthe_Euc(const char *, int, int *size) 音声記号列 (NULL 終端 EUC) AquesTalk_Synthe_Utf8 説明音声記号列から音声波形を生成します AquesTalk_Synthe() の UTF-8 文字コード版 unsigned char * AquesTalk_Synthe_Utf8(const char *, int, int *size) 音声記号列 (NULL 終端 UTF-8 BOM は無し ) AquesTalk_Synthe_Utf16 説明音声記号列から音声波形を生成します

AquesTalk_Synthe() の UTF-16 文字コード版 unsigned char * AquesTalk_Synthe_Utf16(const unsigned short *w, int, int *size) w 音声記号列 (NULL 終端 UTF-16 BOM 指定は任意エンディアンは実行環境に依存 ) AquesTalk_Synthe_Roman 説明 音声記号列から音声波形を生成します AquesTalk_Synthe() のローマ字 (7bitASCII) 文字コード版 unsigned char * AquesTalk_Synthe_Roman(const char *, int, int *size) 音声記号列 (NULL 終端 ASCII 表記方法はホームページ上の音声記号列仕様を参照 ) SetSpeed AquesTalk_FreeWave 説明 音声データの領域を開放 void AquesTalk_FreeWave (unsigned char *wav) wav WAV フォーマットのデータ (AquesTalk_Synthe() で生成した音声データ ) 4.2. AquesTalkDa.dll AquesTalkDa_PlaySync int AquesTalkDa_PlaySync(const char *, int =100) 音声記号列 (NULL 終端シフト JIS) AquesTalkDa_PlaySync_Euc 説明 同期タイプの音声合成 発声が終了するまで戻らない int AquesTalkDa_PlaySync_Euc(const char *, int =100) 音声記号列 (NULL 終端 EUC)

AquesTalkDa_PlaySync_Utf8 int AquesTalkDa_PlaySync_Utf8(const char *, int =100) 音声記号列 (NULL 終端 UTF-8 BOM は無し ) AquesTalkDa_PlaySync_Utf16 int AquesTalkDa_PlaySync_Utf16(const unsigned short *, int =100) 音声記号列 (NULL 終端 UTF-16 BOM 指定は任意エンディアンは実行環境に依存 ) AquesTalkDa_PlaySync_Roman int AquesTalkDa_PlaySync_Roman(const char *, int =100) 音声記号列 (NULL 終端 ASCII 表記方法はホームページ上の音声記号列仕様を参照 ) AquesTalkDa_Create 説明音声合成エンジンのインスタンスを生成 ( 非同期タイプ ) H_AQTKDA AquesTalkDa_Create() AquesTalkDa_Release 説明音声合成エンジンのインスタンスを解放 ( 非同期タイプ ) 発声終了前にこの関数でインスタンス解放すると その時点で発声が終了してしまうので注意 void AquesTalkDa_Release(H_AQTKDA ) AquesTalkDa_Play 説明非同期タイプの音声合成 発声終了を待たずに戻る

発声終了時に hwnd に指定したウィンドウにメッセージが送出 (post) される 再生終了前に AquesTalkDa_Play() を再度呼び出すことで 連続再生可能 また このとき hwnd 等を変更して異なるメッセージを設定することも可能 int AquesTalkDa_Play(H_AQTKDA, const char *, int =100, HWND hwnd=0, unsigned long msg=0, unsigned long dwuser=0) hwnd 音声記号列発声終了時のメッセージの送り先 Window ハンドル (NULL を指定すると終了メッセージは送 られない ) msg dwuser 発声終了時のメッセージ ID を指定する hwnd=null の時は無効 任意 発生終了時のメッセージの lparam( 第 2 ) に渡される AquesTalkDa_Stop 説明発声の停止 Play() で発声中に使用する Stop() によって発声が終了した場合も Play() で hwnd が指定されていたならメッセージが送 出される void AquesTalkDa_Stop(H_AQTKDA ) AquesTalkDa_IsPlay 説明再生中か否か int AquesTalkDa_IsPlay(H_AQTKDA ) 1: 再生中 0: 再生中でない 5. 音声データデータ形式 本ライブラリで生成する音声データは 次の形式となります AquesTalk_Synthe() で生成する音声データには 先頭部に WAV ヘッダが付与されています ストレート PCM データが必要な場合は 別途ヘッダを除いて使用してください また AquesTalkDa.dll では お使いの環境のサウンドドライバが以下の形式の音声を再生できる必要があります サンプリング周波数量子化 bit 数チャンネル数エンコード 8KHz 16bit モノラルリニア PCM

フォーマット WAV 形式 6. サンプルコード 次に示すコードは 音声記号列から音声データを生成し WAV ファイルとして出力する最も単純なプログラムです (HelloTalk.cpp) 12 行目の " こんにちわ " の部分を 任意の音声記号列に変更することで 異なるメッセーを生成可能です なお このプログラムで出力した WAV ファイルは メディアプレイヤーなどで再生することができます 非同期に音声出力を行う 再生を停止する 発声速度を変更するなどのより高度なプログラミング方法は 付属の MFC アプリ AqTkApp のソースコードを参考にしてください AquesTalk http://www.a-quest.com/aquestalk/ #include "stdafx.h" #include "" // このソースと同じところにコピーしておく int _tmain(int argc, _TCHAR* argv[]) { int iret; const _TCHAR * = _T(" こんにちわ ");// 発声させる音声記号列を指定 // 音声合成 (UNICODE の音声記号列を 音声波形データ (wav フォーマット ) に変換 ) int size; unsigned char *wav = AquesTalk_Synthe_Utf16((const unsigned short*), 100, &size); if(wav==0){ // エラー時は size にエラーコードがセットされ 0 が返る fwprintf(stderr, _T("ERR:Synthe():%d\n"),size); return -1; } // サウンド出力 ( メモリ上のデータを同期再生 ) iret = PlaySound((LPCWSTR)wav, NULL, SND_MEMORY SND_SYNC); if(iret==0){ fwprintf(stderr, _T("ERR:PlaySound()\n")); return -1; } // 波形バッファの開放 AquesTalk_FreeWave(wav); } return 0; 7. エラーコード表 関数が返すエラーコードの内容は 次の通りです 値 内容 100 その他のエラー 101 メモリ不足 102 音声記号列に未定義の読み記号が指定された 103 韻律データの時間長がマイナスなっている 104 内部エラー ( 未定義の区切りコード検出 ) 105 音声記号列に未定義の読み記号が指定された 106 音声記号列のタグの指定が正しくない 107 タグの長さが制限を越えている ( または [>] がみつからない )

108 タグ内の値の指定が正しくない 109 WAVE 再生ができない ( サウンドドライバ関連の問題 ) 110 WAVE 再生ができない ( サウンドドライバ関連の問題非同期再生 ) 111 発声すべきデータがない 200 音声記号列が長すぎる 201 1つのフレーズ中の読み記号が多すぎる 202 音声記号列が長い ( 内部バッファオーバー 1) 203 ヒープメモリ不足 204 音声記号列が長い ( 内部バッファオーバー 1) 上記以外 音声記号列エラー ( 音声記号列上でエラーの位置を返す ) 8. 履歴 日付版変更箇所更新内容更新者 2008/09/12 1.0 新規作成新規 (Win,Linux 版のマージ 修正 ) N.Y