|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
Objectcom.docomostar.opt.ui.SpeechSynthesizer
public final class SpeechSynthesizer
ネイティブの音声合成機能にアクセスして、文字列データを音声出力する機能を提供します。
音声出力する文字列を setText(String) メソッドで指定し、
play() メソッドで音声出力を開始します。
音声出力時にユーザ固有の読み方を指定するには、
setRuby(String[][]) メソッドを使用します。
setAttribute(int, int) メソッドより各種属性を設定することで出力音声のボリュームや、
音声合成の動作モード を変更出来ます。
音声合成機能での音声合成の動作モードは、 次の通りです。
setAttribute(int, int) メソッドにより属性の設定が行われていない場合、
音声出力を開始すると次の標準値が指定された状態で出力されます。
| 属性 | 標準値 |
|---|---|
VOLUME |
100 |
PITCH |
0 |
SPEED |
0 |
SPEECH_MODE |
プレーンモード |
音声合成機能と、音声再生を行う他の機能との間でサウンドリソース競合が発生した場合、 先発の再生は停止され、後発の再生要求が実行されます。
音声出力中にアプリケーションがサスペンドした場合は、
stop() メソッドが呼ばれたのと同じ状態になります。
setText(String) メソッドへ指定できます。
文の終端記号(句点)
文の終端記号を使い分けることで、
音声出力される文末のイントネーションを変化させることが出来ます。
| 記号 | 利用可能な文字 | 意味 | 出力 |
|---|---|---|---|
| 。 | 全角のみ | 通常の文末 | 通常のイントネーション |
| ? | 全角、半角とも可 | 疑問の文末 | 疑問のイントネーション |
| ! | 全角、半角とも可 | 驚きの文末 | 驚きのイントネーション |
タグ
音声出力したい文のうち、 一部の文字列について属性や強弱を変更することが出来ます。
setAttribute(int, int) メソッドで設定した属性は、
setText(String) メソッドで指定した文字列全部に影響しますが、
setText(String) メソッドに指定する文字列にタグを挿入することで、
部分的な変更が可能になります。
例えば、setText(String) メソッドの引数に
"<emphasis=+50>こんばんは。" と指定した場合は、
強調を +50 にして "コンバンワ" と音声出力します。
タグ記号は半角英数で、
"<" から ">" の間に次の特殊な修飾を記述して、指定します。
"<" から ">" の間にある半角空白、全角空白、タブは、無視されます。
| 修飾の表記 | 内容 | 指定可能な数値の範囲 |
|---|---|---|
| <emphasis=数値> |
<emphasis=数値> 以降に表記されている文字列を強調して出力します。 次の emphasis 設定、または <clear> があるまで有効です。 単に <emphasis> と記述した場合は、 <emphasis=0> と記述した場合と同様に振る舞います。 |
-100(弱く) 〜 0(初期値) 〜 +100(強く) |
| <pitch=数値> |
<pitch=数値> 以降に表記されている文字列のピッチを変更して出力します。 次の pitch 設定、または <clear> があるまで有効です。 単に <pitch>と記述した場合は、 <pitch=0> と記述した場合と同様に振る舞います。 setAttribute(int, int) メソッドにより ピッチを示す属性 を指定している場合は、
既に指定されている値にこの数値を加算し、有効範囲でクリップした結果を実際の設定値とします。
|
-100(低く) 〜 0(初期値) 〜 +100(高く) |
| <rate=数値> |
<rate=数値> 以降に表記されている文字列の再生速度を変更して出力します。 次の rate 設定、または <clear> があるまで有効です。 単に <rate>と記述した場合は、 <rate=0> と記述した場合と同様に振る舞います。 setAttribute(int, int) メソッドにより 再生速度を示す属性 を指定している場合は、
既に指定されている値にこの数値を加算し、有効範囲でクリップした結果を実際の設定値とします。
|
-100(遅く) 〜 0(初期値) 〜 +100(早く) |
| <volume=数値> |
<volume=数値> 以降に表記されている文字列のボリュームを変更して出力します。 次の volume 設定、または <clear> があるまで有効です。 単に <volume>と記述した場合は、 <volume=100> と記述した場合と同様に振る舞います。 setAttribute(int, int) メソッドにより ボリュームを示す属性 を指定している場合は、
既に指定されている値にこの数値を乗算し、100で割った結果を実際の設定値とします。
|
0(無音) 〜 +100(初期値) |
| <clear> |
<clear> より前に表記されている装飾をクリアにします。 <emphasis=0> 、 <pitch=0> 、 <rate=0> 、 <volume=100> が設定された状態になります。 |
|
| <break=数値> |
挿入された箇所で、 数値に指定された長さを無音で出力します。 数値の単位は ms (ミリ秒) 、分解能は 100ms 、100 未満は切り捨てとなります。 |
0(なし) 〜 +10000(長く) |
数値の前に "+" 、"-" が無い場合は、"+数値" として扱います。
有効なタグ以外は、文章として扱い音声出力を行います。有効なタグとみなされないのは、次の場合です。
なお、プレーンモードにおいて、
記号やタグを含んだ文字列を setText(String) へ指定すると、
記号やタグはそのまま音声出力されます。
"明日は<break=500>雨です。"と指定した場合は、
"アスワブレークイコールゴヒャクアメデス"のように音声出力します。
| フィールドの概要 | |
|---|---|
static int |
PITCH
ピッチを示す属性です(=2)。 |
static int |
SPEECH_COMPLETE
音声出力が終了したことを示すイベントタイプです(=3)。 |
static int |
SPEECH_MODE
音声合成の動作モードを示す属性です(=4)。 |
static int |
SPEECH_MODE_PLANE
音声合成の動作モードの属性値で、 プレーンモードを表します(=0)。 |
static int |
SPEECH_MODE_TAG
音声合成の動作モードの属性値で、 タグモードを表します(=1)。 |
static int |
SPEECH_PLAYING
音声出力が開始されたことを示すイベントタイプです(=1)。 |
static int |
SPEECH_STOPPED
音声出力が中断されたことを示すイベントタイプです(=2)。 |
static int |
SPEED
再生速度を示す属性です(=3)。 |
static int |
VOLUME
ボリュームを示す属性です(=1)。 |
| メソッドの概要 | |
|---|---|
static int |
getAvailableBytes()
音声出力する文字列データに設定できる最大バイト数を取得します。 |
static int |
getAvailableRubyLength()
ルビ情報として登録できる最大のデータ数を取得します。 |
static String |
getEncode()
ネイティブの音声合成機能が対応している文字エンコードを取得します。 |
com.docomostar.media.MediaResource |
getMediaResource()
このクラスのインスタンスに対して呼び出すことはできません。 |
static SpeechSynthesizer |
getSpeechSynthesizer()
SpeechSynthesizer オブジェクトを取得します。 |
boolean |
isAvailableRuby(String text,
String speech)
引数で指定したルビ情報が有効かどうかを判定します。 |
void |
play()
音声出力を開始します。 |
void |
setAttribute(int attr,
int value)
音声出力方法に関する属性値を設定します。 |
void |
setMediaListener(com.docomostar.ui.MediaListener listener)
リスナを設定します。 |
void |
setRuby(String[][] data)
ルビ情報を設定します。 |
void |
setText(String textData)
音声出力する文字列データを設定します。 |
void |
stop()
音声出力を停止します。 |
| クラス Object から継承されたメソッド |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
|---|
public static final int SPEECH_PLAYING
音声出力が開始されたことを示すイベントタイプです(=1)。
public static final int SPEECH_STOPPED
音声出力が中断されたことを示すイベントタイプです(=2)。
public static final int SPEECH_COMPLETE
音声出力が終了したことを示すイベントタイプです(=3)。
public static final int VOLUME
ボリュームを示す属性です(=1)。
属性の値には、iアプリの音量設定値から何%の音量を出力するかを指定します。 指定できる範囲は、0 〜 100 ( 0 は無音で、 100 が基準) です。
このボリュームの設定は、音声合成機能に対してのみ影響を及ぼします。 AudioPresenter.SET_VOLUME や Player.DEV_VOLUME で設定するボリュームとは独立しており、 互いに影響を与えることはありません。
setAttribute(int, int),
定数フィールド値public static final int PITCH
ピッチを示す属性です(=2)。
属性の値には、 -100(低く) 〜 0(基準) 〜 100(高く) を指定します。
setAttribute(int, int),
定数フィールド値public static final int SPEED
再生速度を示す属性です(=3)。
属性の値に -100(遅く) 〜 0(基準) 〜 100(早く) を指定することで、 再生速度の操作を行います。
setAttribute(int, int),
定数フィールド値public static final int SPEECH_MODE
音声合成の動作モードを示す属性です(=4)。
setAttribute(int, int),
定数フィールド値public static final int SPEECH_MODE_PLANE
音声合成の動作モードの属性値で、 プレーンモードを表します(=0)。
setAttribute(int, int),
SPEECH_MODE,
定数フィールド値public static final int SPEECH_MODE_TAG
音声合成の動作モードの属性値で、 タグモードを表します(=1)。
setAttribute(int, int),
SPEECH_MODE,
定数フィールド値| メソッドの詳細 |
|---|
public static SpeechSynthesizer getSpeechSynthesizer()
SpeechSynthesizer オブジェクトを取得します。
このメソッドによって得られたオブジェクトには、 MediaSound を設定することはできませんが、
文字列データを設定し play() メソッドを呼び出すことで文字列データの音声出力が行えます。
音声合成機能同士は、同時利用出来ません。 そのため、このメソッドを複数回呼び出した場合は、 常に同じオブジェクトへの参照を返します。
com.docomostar.lang.UnsupportedOperationException -
public com.docomostar.media.MediaResource getMediaResource()
このクラスのインスタンスに対して呼び出すことはできません。
このメソッドを呼び出すと、常に UnsupportedOperationException が発生します。
com.docomostar.ui.MediaPresenter 内の getMediaResourcecom.docomostar.lang.UnsupportedOperationException -
public void setMediaListener(com.docomostar.ui.MediaListener listener)
リスナを設定します。
設定できるリスナは1つだけです。
このメソッドを複数回呼出した場合、最後に登録したリスナだけが有効です。
引数 listener に null を指定すると、設定されているリスナを解除します。
com.docomostar.ui.MediaPresenter 内の setMediaListenerlistener - 設定するリスナオブジェクトを指定します。public void play()
音声出力を開始します。
音声出力が開始された時にリスナが登録されていた場合、
イベントタイプ SPEECH_PLAYING でリスナが起動されます。
データを最後まで出力したら自動的に停止します。停止したとき、
リスナが登録されていた場合、イベントタイプ SPEECH_COMPLETE でリスナが
起動されます。
ルビ情報が設定されていた場合、 その設定を優先して音声出力を行います。
音声出力中に play メソッドが呼ばれた場合の振る舞いは、機種依存です。
com.docomostar.ui.MediaPresenter 内の playcom.docomostar.ui.UIException - com.docomostar.ui.UIException - com.docomostar.ui.UIException - com.docomostar.ui.UIException - public void stop()
音声出力を停止します。
音声出力が停止された時にリスナが設定されていた場合、イベントタイプ SPEECH_STOPPED
でリスナが起動されます。
停止している時に stop() メソッドが呼ばれた場合、何もしません。
com.docomostar.ui.MediaPresenter 内の stop
public void setAttribute(int attr,
int value)
音声出力方法に関する属性値を設定します。
制御可能ではない属性、存在しない属性が指定された場合は何も行わずに無視されます。
設定した値は、 play() メソッドが呼ばれた時点で反映されます。
音声出力中にこのメソッドを呼び出した場合、
反映されるのは次の play() メソッド呼び出し時となります。
com.docomostar.ui.MediaPresenter 内の setAttributeattr - 設定する属性を指定します。value - 設定する属性の値を指定します。VOLUME,
PITCH,
SPEED,
SPEECH_MODE
IllegalArgumentException -
public void setText(String textData)
音声出力する文字列データを設定します。
音声出力する文字列データは、
getAvailableBytes() で取得できるバイト数以下でなければなりません。
バイト数は、 getEncode() で取得できるエンコーディングで評価します。
引数に設定した文字列は、 play() メソッドが呼ばれた時点で反映されます。
反映後は、文字列データがセットされていない状態になります。
音声出力中にこのメソッドを呼び出した場合、
反映されるのは次の play() メソッド呼び出し時となります。
引数に指定した文字列データが正しく音声出力できるかどうかについては、端末に依存します。
音声出力が出来ない文字が引数の文字列に含まれていた場合、振る舞いは機種依存です。
改行のみの行は、100 ms (ミリ秒) の長さの無音として音声出力されます。
textData - 文字列データを設定します。
NullPointerException -
IllegalArgumentException -
public static int getAvailableBytes()
音声出力する文字列データに設定できる最大バイト数を取得します。
設定できるバイト数は端末に依存します。
setText(String),
getEncode()
com.docomostar.lang.UnsupportedOperationException -
public static String getEncode()
ネイティブの音声合成機能が対応している文字エンコードを取得します。
setText(String),
getAvailableBytes()
com.docomostar.lang.UnsupportedOperationException -
public void setRuby(String[][] data)
ルビ情報を設定します。 ルビ情報は音声出力時にユーザ固有の読み方を指定するために使用します。
引数 には、以下の例のように「表記」と「読み」を二次元配列で指定します。
String[][] data = {{"今日", "コンニチ"}, {"明日", "アス"}};
第 2 次元において、 第 1 要素に表記を、 第 2 要素には読みを指定します。 また、第 3 要素以降に値が指定された場合、指定された値は無視されます。
ルビ情報の「表記」と「読み」が有効かどうかは isAvailableRuby(String, String)
で確認できます。
ルビ情報の「表記」「読み」に使用できる文字種については isAvailableRuby(String, String)
を参照してください。
同じ表記で異なる読みが登録された場合、 後発(第 1 次元の添字の値が大きいもの) がルビ情報として登録されます。
引数 data に null を指定した場合は、
ルビ情報が何も設定されていない状態になります。
ルビ情報として指定できるデータ数、 すなわち、 data の配列長は、
1 以上、 かつ getAvailableRubyLength()で取得できる値以下でなければなりません。
このメソッドを複数回呼び出した場合は、 最後に設定した値が有効になります。
指定されたルビ情報は、
play() メソッドが呼ばれた時点で反映されます。
反映後は、ルビ情報が何も設定されていない状態になります。
data - ルビ情報を指定します。
IllegalArgumentException -
有効ではないルビ情報が含まれている場合に発生します。
IllegalArgumentException -
com.docomostar.ui.UIException -
public boolean isAvailableRuby(String text,
String speech)
引数で指定したルビ情報が有効かどうかを判定します。
ルビ情報を設定する前に、 ルビ情報の「表記」と「読み」が有効であるかを確認できます。
引数 text にはルビ情報の表記を指定してください。
使用可能な文字は、機種依存です。
text に null 、 もしくは空文字列を指定した場合は false を返します。
引数 speech にはルビ情報の読みを指定してください。
speech に使用可能な文字は 全角カタカナ、全角スペースです。
ただし、全角スペースは発音しない文字として扱われます。
また、 speech に null 、 もしくは空文字列を指定した場合は、
無音を指定したものとして扱われます。
全角カタカナ、全角スペース以外の文字が speech に含まれていた場合は
false を返します。
text - ルビ情報の表記を指定します。speech - ルビ情報の読みを指定します。
true 、 それ以外は false を返します。
com.docomostar.ui.UIException - public static int getAvailableRubyLength()
ルビ情報として登録できる最大のデータ数を取得します。
設定できるデータ数は端末に依存します。
setRuby(String[][])
com.docomostar.lang.UnsupportedOperationException -
|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
NTT DOCOMO,INC.
本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。
Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。
FeliCaは、ソニー株式会社が開発した非接触ICカードの技術方式です。FeliCaは、ソニー株式会社の登録商標です。
「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。
その他記載された会社名、製品名などは該当する各社の商標または登録商標です。