Logo
リアルタイム音声認識

Android SDK

注意:

複数のSDKを同時に統合する場合、ファイルの競合が発生することがありますが、解凍ソフト(7-zipなど)を使ってaarパッケージを解凍し、競合するsoファイルを削除してください。 Android 5.0以上のバージョンに対応しています。

SDKを使用する前に、インターフェイスプロトコルをお読みください。詳細についてはインターフェイスプロトコルを参照してください。

1 統合手順

1.1 aar依存追加

asr-sdk.aar をプロジェクトの libs ディレクトリに配置し、app モジュールの build.gradle を修正して、aarファイルとokhttpを依存として追加します。

implementation fileTree(dir: "libs", include: ["*.jar","*.aar"])
implementation 'com.squareup.okhttp3:okhttp:4.10.0'//ここでokhttpを追加します。古いプロジェクトの場合は3.14.2バージョンを使用することができます
implementation 'org.java-websocket:Java-WebSocket:1.5.3'
implementation 'com.google.code.gson:gson:2.10.1'

もし32ビットSDKを使用する場合は、以下のコードを追加する必要があります:

    defaultConfig {
        //Add the following code
        externalNativeBuild {
            ndk {
                abiFilters  "armeabi-v7a" 
            }
        }
    }

1.2 アプリ関連の権限を追加

AndroidManifest.xmlファイルを修正します

<!--Recording permission-->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<!--Network permission-->
<uses-permission android:name="android.permission.INTERNET" />

1.3 呼び出し手順/サンプルコード

1.3.1 録音権限を取得する

   registerForActivityResult(new ActivityResultContracts.RequestPermission(), success -> {
            tip(success);
        }).launch(Manifest.permission.RECORD_AUDIO);

1.3.2 認識クラスを作成する

    private Transcriber transcriber;//Real-time speech recognition

    private BaseAsr getAsr() {
        if (type == Asr.Type.RECOGNIZER) {
             return recognizer;
            }
             return transcriber;
        }

    //Initialize the SDK in onCreate
    transcriber = Transcriber.getInstance(activity);
    recognizer = Recognizer.getInstance(activity);

1.3.3 マイクを初期化します

    getAsr().initRecorder();//Initializes the microphone when creating the identification class      

1.3.4 コールバックを設定します

(1)コールバックパラメータの説明

名前説明戻り値のパラメータ
onStartFunctionエンジン接続開始のコールバックメソッドString型 現在のタスクのID
onResultFunctionエンジンが返す内容の結果のコールバックメソッドString型の結果データ
onIntermediateResultFunctionエンジンが中間結果を返すコールバックメソッドString型の中間結果データ
onWarningFunctionエンジンが結果の警告を返すコールバックメソッドタスクIDとエラー型の状態コード
onErrorFunctionエンジンが結果のエラーを返すコールバックメソッドタスクIDとエラー型の状態コード
onGetAudioFunctionエンジンが認識音声データを返すコールバックメソッドbyte[]型の音声データ
onStopFunctionエンジンが終了すると返すコールバックメソッド何もない

(2)パラメータの例

 getAsr().setListener(new Asr.Listener() {
            @Override
            public void onStart(String taskId) {
                
            }

            @Override
            public void onError(String taskId, Errors.Err err) {

            }

            @Override
            public void onResult(String msg) {

            }

            @Override
            public void onIntermediateResult(String msg) {

            }

            @Override
            public void onWarning(String taskId, Errors.Err err) {

            }

            @Override
            public void onGetAudio(byte[] data) {

            }

            @Override
            public void onStop() {

            }
        });         

1.3.5 権限のアクティブ化

(1)構成パラメータ

名前説明デフォルト値
onSuccessFunction初期化成功時のコールバックメソッド何もない
onFailFunction初期化失敗時のコールバックメソック何もない

(2)パラメータの例

  @NonNull
    private Asr.InitListener getInitListener() {
        return new Asr.InitListener() {
            @Override
            public void onSuccess() {
                tip("onSuccess");
            }
            @Override
            public void onFail(Errors.Err err) {
              
            }
        };
    }

オンライン認証

   getAsr().initOnline(appId, appSecret, getInitListener());

1.3.6 パラメータの設定

インターフェースパラメータの説明

パラメータタイプ必須説明デフォルト値
lang_typeStringはい言語オプション必須
formatStringいいえ音声エンコード形式pcm
sample_rateIntegerいいえ音声サンプルレート16000
enable_intermediate_resultBooleanいいえ中間認識結果を返すかどうかtrue
enable_punctuation_predictionBooleanいいえ後処理で句読点を追加するかどうかtrue
enable_inverse_text_normalizationBooleanいいえ後処理でITNを実行するかどうかtrue
max_sentence_silenceIntegerいいえ音声センテンスのサイレンス検出しきい値、試練ス時間がこのしきい値を超えるとセンテンスが切り替えられます。有効なパラメータ範囲は200~1200で、単位はミリ秒です450
enable_wordsBooleanいいえ単語情報を返すかどうかfalse
enable_modal_particle_filterBooleanいいえ語気詞フィルタを有効にするかどうかtrue
hotwords_idStringいいえ単語ID無し
hotwords_weightFloatいいえ単語のウェイト、値の範囲[0.1, 1.0]0.4
correction_words_idStringいいえ強制置換単語庫ID
複数の強制置換単語庫IDを使用することができ、各IDは縦線|で区切られます;all は全ての強制置換単語庫IDを使用することを意味します。
無し
forbidden_words_idStringいいえNG単語ID
複数のNG単語IDを使用することができ、各IDは縦線|で区切られます;all は全てのNG単語IDを使用することを意味します。
無し
    
    JsonObject params = new JsonObject();
    params.addProperty("lang_type", langType);
    params.addProperty("sample_rate", 16000);
    params.addProperty("enable_intermediate_result", true);	
    params.addProperty("enable_punctuation_prediction", true);
    params.addProperty("enable_inverse_text_normalization", true);
    params.addProperty("max_sentence_silence", 800);
    params.addProperty("enable_words", true);

1.3.7 開始/停止認識

名前タイプ説明デフォルト値
autoRecordingbooleanマイクの初期化後はtruetrue
onlineAsrbooleanオンライン時はtrue、オフライン時はfalsetrue
paramsJsonObjectパラメータjson何もない

認識を開始します

   getAsr().start(autoRecording, onlineAsr, params);

識別を開始します(SDK外部転送音声)

           1. 外部録画の送信モード

        1.1 start
        getAsr().start(false, onlineAsr, params);
        1.2 feed audio
        getAsr().feed(data, false);
        1.3 end
        getAsr().stop();

        2. オーディオを転送するためのファイルの外部読み込み

        2.1 start
        getAsr().start(false, onlineAsr, params);
        2.2 feed audio
        getAsr().feed(data, false);
        2.3 end(終了データはテールパケットのデータを渡す必要がある)
        getAsr().feed(data, true);

認識開始(ファイル認識方式)

      getAsr().startPath(onlineAsr,params,"ローカル・オーディオ・アドレス");
//No need to manually stop, automatically stops and calls back the onstop method when the file transfer is complete.

強制的に文を区切ります

  getAsr().sentenceEnd();

カスタムの話者番号を設定します

   getAsr().speakerStart("speaker_name")

認識を停止します

   getAsr().stop();

認識音声を保存します

  getAsr().setSaveAudio(true);
  //The default value is not saved. If true is set to save, the path is “context.getExternalFilesDir(null)/asrCache”

2 SDKダウンロード

Android SDK

Android Demo