com.docomostar.device
クラス SpeechRecognizer

Object
  上位を拡張 com.docomostar.device.SpeechRecognizer

public class SpeechRecognizer
extends Object
 [iアプリオプションAPI]

SpeechRecognizerクラス

音声認識フロントエンド機能にアクセスする手段を提供します。

音声認識フロントエンド機能は音声入力から特徴量の抽出を行います。 音声認識フロントエンド機能にアクセスするには、getInstance() メソッドを呼び出し、音声認識フロントエンド機能を表すインスタンスを取得する必要があります。 インスタンス取得後、start(String, SpeechListener) メソッドを呼び出すことで特徴量の抽出処理が開始されます。 start(String, SpeechListener) メソッドの呼び出し後、実際に音声入力が可能になるまでの時間をレディ時間といいます。 このレディ時間は getReadyTime(String) メソッドで取得することができます。 start(String, SpeechListener) メソッドに指定できるコーデックは getAvailableCodec() メソッドを用いて調べることができます。 特徴量抽出処理において発生したイベントは start(String, SpeechListener) メソッドに指定した SpeechListener インスタンスに通知されます。 音声認識フロントエンド機能に蓄積されている特徴量データは getFeature() メソッドで取得します。 特徴量抽出処理は最大発話時間に達するか、stop() メソッドを呼び出すことで終了します。

取得した特徴量データはDDP通信を利用して音声認識バックエンドサーバに送信し、認識結果チャンクを取得します。 認識結果チャンクを指定して getResultInformation(byte[], String) メソッドを呼び出すことで認識結果情報を取得できます。

アプリケーションが Suspended 状態に遷移すると音声認識フロントエンド機能のインスタンスは利用不能になります。 音声認識フロントエンド機能が利用不能になった場合、新たに getInstance() メソッドを呼び出し、インスタンスを取得しなおすことで、再度音声認識フロントエンド機能を利用することが可能になります。

導入されたバージョン:
Star-1.0

メソッドの概要
 String[] getAvailableCodec()
           音声認識フロントエンド機能が対応しているコーデックを取得します。
 int[] getAvailableType()
           音声認識フロントエンド機能が対応している認識種別を取得します。
 SpeechFeatureData getFeature()
           音声認識フロントエンド機能に蓄積されている特徴量データを取得します。
static SpeechRecognizer getInstance()
           音声認識フロントエンド機能のインスタンスを取得します。
 int getMaxSpeechTime()
           最大発話時間を取得します。
 String getName()
           音声認識フロントエンド機能の名前とバージョンを取得します。
 int getReadyTime(String codec)
           レディ時間を取得します。
 SpeechResultInformation getResultInformation(byte[] data, String charSet)
           認識結果情報を取得します。
 boolean isAvailable()
           音声認識フロントエンド機能のインスタンスが利用可能であるか確認します。
 void reset()
           特徴量抽出処理をリセットします。
 void start(String codec, SpeechListener listener)
           特徴量抽出処理を開始します。
 void stop()
           特徴量抽出処理を停止します。
 
クラス Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

メソッドの詳細

getInstance

public static SpeechRecognizer getInstance()

音声認識フロントエンド機能のインスタンスを取得します。

利用可能な音声認識フロントエンド機能のインスタンスが存在する間は、このメソッドを複数回呼び出しても利用可能な音声認識フロントエンド機能の同一インスタンスを返します。 利用可能な音声認識フロントエンド機能のインスタンスが無い場合は、新たにインスタンスを生成して返します。

パーミッションとして音声認識APIの利用が許可されているトラステッド Star アプリのみ、 このメソッドを呼び出すことができます。 端末によっては、音声認識フロントエンド機能をサポートしていない場合があります。 その場合には、例外 UnsupportedOperationException が発生します。

戻り値:
フロントエンド音声認識機能のインスタンスを返します。
例外:
UnsupportedOperationException -
フロントエンド音声認識機能をサポートしていない場合に発生します。
DeviceException -
(NO_RESOURCES)
リソース不足によりフロントエンド音声認識機能のインスタンスを確保できない場合に発生します。

isAvailable

public boolean isAvailable()

音声認識フロントエンド機能のインスタンスが利用可能であるか確認します。

音声認識フロントエンド機能のインスタンスが利用できない場合に再度音声認識機能を利用するには、getInstance() メソッドで使ってインスタンスを取得しなおしてください。

戻り値:
音声認識フロントエンド機能のインスタンスが利用可能である場合は true を、利用不能である場合は false を返します。

getName

public String getName()

音声認識フロントエンド機能の名前とバージョンを取得します。

取得した名前とバージョンは DDP通信 の "X-DDP-Frontend" プロパティのプロパティ値として使用します。

戻り値:
音声認識フロントエンド機能の名前とバージョンを返します。
関連項目:
DDPConnection.setRequestProperty(String, String)
例外:
IllegalStateException -
このインスタンスが利用不能状態の場合に発生します。

getMaxSpeechTime

public int getMaxSpeechTime()

最大発話時間を取得します。 なお、最大発話時間にはレディー時間も含まれています。

戻り値:
最大発話時間(ミリ秒)を返します。
例外:
IllegalStateException -
このインスタンスが利用不能状態の場合に発生します。

getAvailableCodec

public String[] getAvailableCodec()

音声認識フロントエンド機能が対応しているコーデックを取得します。

戻り値:
音声認識フロントエンド機能がサポートしているコーデックの配列を返します。
例外:
IllegalStateException -
このインスタンスが利用不能状態の場合に発生します。

getAvailableType

public int[] getAvailableType()

音声認識フロントエンド機能が対応している認識種別を取得します。

戻り値:
音声認識フロントエンド機能がサポートしている認識種別の配列を返します。
例外:
IllegalStateException -
このインスタンスが利用不能状態の場合に発生します。

getReadyTime

public int getReadyTime(String codec)

レディ時間を取得します。

レディ時間とは特徴量抽出を開始してから、発話可能になるまでの時間(ミリ秒)です。

パラメータ:
codec - コーデックを指定します。
戻り値:
レディ時間を返します。
例外:
NullPointerException -
codec に null が指定された場合に発生します。
IllegalArgumentException -
サポートされていないコーデックが指定された場合に発生します。
IllegalStateException -
このインスタンスが利用不能状態の場合に発生します。

start

public void start(String codec,
                  SpeechListener listener)

特徴量抽出処理を開始します。

特徴量抽出処理を開始すると蓄積されている特徴量データはクリアされます。

iアプリ、もしくはネイティブ側で音を再生している場合は、抽出処理は開始できません。 抽出処理中に、iアプリ、もしくはネイティブ側で音を再生させようとした場合は抽出処理が停止します。

パラメータ:
codec - コーデックを指定します。
listener - 特徴量抽出処理の過程で発生するイベントを受けるリスナを指定します。
関連項目:
getAvailableCodec(), stop()
例外:
NullPointerException -
codec に null が指定された場合に発生します。
NullPointerException -
listener に null が指定された場合に発生します。
IllegalArgumentException -
サポートされていないコーデックが指定された場合に発生します。
IllegalStateException -
このインスタンスが利用不能状態の場合に発生します。
IllegalStateException -
既に、特徴量抽出が開始されている場合に発生します。
DeviceException -
(NO_RESOURCES)
リソース不足の場合に発生します。
DeviceException -
(RACE_CONDITION)
競合条件により特徴量抽出を開始できない場合に発生します。

stop

public void stop()

特徴量抽出処理を停止します。

このメソッドで抽出処理を停止した場合、抽出処理停止後も特徴量データの蓄積が通知されます。

特徴量抽出処理が開始されていない場合は何もしません。

関連項目:
start(String, SpeechListener)
例外:
IllegalStateException -
このインスタンスが利用不能状態の場合に発生します。

reset

public void reset()

特徴量抽出処理をリセットします。

蓄積されている特徴量データをクリアし、特徴量抽出を開始可能な状態にします。 特徴量抽出処理中に呼び出した場合は抽出処理が停止し、抽出処理停止のイベント通知が行なわれます。 特徴量データが蓄積されている場合、特徴量データはクリアされます。

関連項目:
start(String, SpeechListener)
例外:
IllegalStateException -
このインスタンスが利用不能状態の場合に発生します。

getFeature

public SpeechFeatureData getFeature()

音声認識フロントエンド機能に蓄積されている特徴量データを取得します。

音声認識フロントエンド機能に特徴量データが蓄積されている場合、特徴量データを保持する SpeechFeatureData オブジェクトが返ります。 特徴量データが蓄積されていない場合は null が返ります。 このメソッドは毎回新しいインスタンスを生成して返します。

戻り値:
SpeechFeatureData オブジェクトが返ります。
例外:
IllegalStateException -
このインスタンスが利用不能状態の場合に発生します。
IllegalStateException -
特徴量抽出の開始前に呼び出された場合に発生します。 リセットもしくは最後の特徴量データを取得した後から、特徴量抽出の開始前に呼び出された場合にも発生します。

getResultInformation

public SpeechResultInformation getResultInformation(byte[] data,
                                                    String charSet)

認識結果情報を取得します。

認識結果チャンクから認識結果情報を取得します。 このメソッドは毎回新しいインスタンスを生成して返します。 音声認識バックエンドサーバーから取得した認識結果チャンクを指定してください。 引数の文字セットには DDP通信 で認識結果チャンクを取得した際のレスポンスの Content-Type に指定された文字セットを指定してください。

パラメータ:
data - 認識結果チャンクを指定します。
charSet - 文字セットを指定します。
戻り値:
認識結果情報を返します。
例外:
NullPointerException -
認識結果チャンクに null が指定された場合に発生します。
NullPointerException -
文字セットに null が指定された場合に発生します。
IllegalStateException -
このインスタンスが利用不能状態の場合に発生します。
IllegalArgumentException -
認識結果チャンクがフォーマット不正の場合に発生します。
IllegalArgumentException -
未対応の文字セットが指定された場合に発生します。
DeviceException -
(NO_RESOURCES)
リソース不足により認識結果チャンクの解析を行うことができない場合に発生します。