Logo

Android SDK

注意:

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

インターネット接続でのアクティベーションのみサポート

1 統合手順

注意:オフライン認識機能を体験したい場合は、事前にビジネス連絡先まで連絡し、APPIDを取得してください。また、体験したい言語種別についてもお知らせください。連絡先:voice.contact@dolphin-ai.jp

1.1 モデルファイルを追加する

モデルファイルを解凍した後、assets/model/asr/ フォルダに置きます。例えば、assets/model/asr/zh-cmn-Hans-CN/ です。

1.2 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 'com.google.code.gson:gson:2.10.1'

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

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

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

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

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

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

1.4.1 録音権限を取得する

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

1.4.2 認識クラスを作成する

private Transcriber transcriber;
private Recognizer recognizer;

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.4.3 マイクを初期化します

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

1.4.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.4.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().initOffline_OnlineAuth(appId, getCurrLang(), getInitListener());

1.4.6 设置参数

1.4.7 パラメータの設定

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

パラメータタイプ必須説明デフォルト値
lang_typeStringはい言語オプション必須
formatStringいいえ音声エンコード形式pcm
sample_rateIntegerいいえ音声サンプルレート16000
enable_intermediate_resultBooleanいいえ中間認識結果を返すかどうかfalse
enable_punctuation_predictionBooleanいいえ後処理で句読点を追加するかどうかfalse
enable_inverse_text_normalizationBooleanいいえ後処理でITNを実行するかどうかfalse
max_sentence_silenceIntegerいいえ音声センテンスのサイレンス検出しきい値、サイレンス時間がこのしきい値を超えるとセンテンスが切り替えられます。有効なパラメータ範囲は200~1200で、単位はミリ秒です450
enable_wordsBooleanいいえ単語情報を返すかどうかfalse
enable_modal_particle_filterBooleanいいえ語気詞フィルタを有効にするかどうかfalse
hotwords_idStringいいえ単語ID無し
hotwords_weightFloatいいえ単語ウェイト、値の範囲[0.1, 1.0]0.4
JsonObject params = new JsonObject();
params.addProperty("lang_type", langType);
params.addProperty("format", "pcm");
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.4.8 開始/停止識別

名前タイプ説明デフォルト値
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();

オフラインモデルの解放

@Override
protected void onDestroy() {
    super.onDestroy();
    getAsr().finish("zh-cmn-Hans-CN");
    getAsr().finishAll();
}

ログ生成をキャンセルする

model/asr/ja-JP/configにパラメータを設定する:
log-level = 6
log-rotate-days=0

2 状態コード表

エラーコードエラーメッセージ説明解決策
110100Unauthorized認証されてないパラメータを承認された能力に変更またはビジネス担当者に連絡してAI能力を追加します
110101Invalid Activation Codeアクティベーションキーが正しくありません正しいアクティベーションキーを入力します
110103Authorization Expired承認が期限切れですビジネス担当者に連絡して承認期間を延長します
230400Invalid Calling Sequence呼び出し順序が正しくありません正しい順序で呼び出します
230200Recognition Failed識別に失敗しましたビジネス担当者に連絡してください

3 SDKダウンロード&リソースキット

3.1 SDKダウンロード

Android音声認識モバイルSDKパッケージのダウンロードリンクは以下の通りです: Android SDK & Demo

3.2 オフラインモデルのダウンロード

言語種別言語コードダウンロードリンク備考
日本語-汎用ja-JP日本語-汎用日本語のみ
日本語-ホテルja-JP日本語-ホテル日本語と英語を混在で話すことをサポート
英語en-US英語
中国語zh-cmn-Hans-CN中国語中国語と英語を混在で話すことをサポート