このガイドでは、Paraformer非リアルタイム音声認識HarmonyOS SDKを使用して音声をテキストに変換する方法について説明します。
ユーザーガイド: 非リアルタイム音声認識
クイックスタート
-
APIキーの取得: APIキーの取得と設定。セキュリティのため、APIキーは環境変数として設定することをお勧めします。
注記サードパーティアプリケーションまたはユーザーに一時的なアクセス権を付与する場合、あるいは機密データへのアクセスや削除などの高リスク操作を厳密に制御する場合は、一時的なAPIキーを使用します。一時的なAPIキーは、デフォルトで60秒間有効です。有効期限が切れた後は、新しいものを取得してください。
-
SDKをダウンロードしてサンプルコードを実行します:
- 最新のSDKパッケージをダウンロードします。
- TARパッケージを展開します。
neonuiディレクトリからHAR形式のSDKを取得し、プロジェクトの依存関係に追加します。 C++統合の場合、TARパッケージのnative/libsおよびnative/includeから動的ライブラリとヘッダーファイルを取得します。 - DevEco Studioでプロジェクトを開きます。サンプルコードは
DashParaformerFileTranscriberPage.etsにあります。APIキーを置き換えて、機能を試してください。
呼び出し手順
同期モード
- SDKを初期化します。
- ビジネス要件に基づいてパラメータを設定します。
startFileTranscriberを呼び出して、async_requestをfalseに設定した認識タスクを開始します。onFileTransEventCallbackインターフェースで、EVENT_FILE_TRANS_RESULTイベントをリッスンして最終認識結果を取得します。releaseを呼び出してSDKリソースを解放します。
非同期モード
- SDKを初期化します。
- ビジネス要件に基づいてパラメータを設定します。
startFileTranscriberを呼び出して、async_requestをtrueに設定した認識タスクを開始します。queryFileTranscriberを呼び出して、認識の進行状況または結果をクエリします。onFileTransEventCallbackインターフェースで、EVENT_FILE_TRANS_QUERY_RESULTイベントをリッスンして現在のクエリ結果を取得します。onFileTransEventCallbackインターフェースで、EVENT_FILE_TRANS_RESULTイベントをリッスンして最終認識結果を取得します。releaseを呼び出してSDKリソースを解放します。
リクエストパラメータ
接続および制御パラメータ
initializeFileTransのparametersパラメータにJSON文字列を渡して、以下のパラメータを設定します。 例:以下のJSON文字列は例であり、すべてのパラメータが含まれているわけではありません。必要に応じてパラメータを追加してください。
{
"url": "wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/asr/transcription",
"apikey": "st-****",
"device_id": "my_device_id",
"service_mode": "1"
}
- パラメータの説明
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
url | string | はい | エンドポイント。これは |
apikey | string | はい | APIキー。長期キーの漏洩リスクを軽減するため、有効期間の短い、より安全な一時的なAPIキーを使用することをお勧めします。 |
service_mode | string | はい | 動作モード。非リアルタイム音声認識の場合、これは |
device_id | string | はい | エンドユーザーを識別する一意の文字列。アプリ内のユーザーIDまたはクライアントによって生成された一意のデバイス識別子に設定できます。このIDは主にログの追跡とトラブルシューティングに使用されます。 |
debug_path | string | いいえ | ログファイルの保存パス。このパラメータは、initializeFileTransを呼び出す際に |
max_log_file_size | number | いいえ | ログファイルの最大サイズをバイト単位で設定します。このパラメータは、initializeFileTransを呼び出すときに |
音声認識効果パラメータ
setParamsを使用してnls_configパラメータを設定するか、startFileTranscriberを使用してすべての音声認識効果パラメータを設定します。 例:以下のJSON文字列は例であり、すべてのパラメータを含んでいるわけではありません。必要に応じてパラメータを追加してください。
{
"file_urls": [
"{YOUR_AUDIO_URL}"
],
"async_request": false,
"nls_config": {
"model":"paraformer-v2",
"disfluency_removal_enabled":false,
"timestamp_alignment_enabled": false
}
}
- パラメータの説明
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
file_urls | array[string] | はい | 文字起こしする音声ファイルまたは動画ファイルのURLのリスト。HTTPおよびHTTPSがサポートされています。1つのリクエストでサポートされるURLは1つのみです。音声ファイルがAlibaba Cloud OSSに保存されている場合、SDKは 重要オーディオおよびビデオ形式には多くのバリアントがあるため、技術的にすべてをテストすることは不可能です。APIは、すべての形式が正しく認識されることを保証できません。ファイルをテストして、有効な認識結果が生成されることを確認してください。 - 音声サンプリングレートはモデルによって異なります:- paraformer-v2は任意のサンプリングレートをサポートします。- は任意のサンプリングレートをサポートします。- paraformer-8k-v2は8 kHzのみをサポートします。- は8 kHzのみをサポートします。- は16 kHz以上をサポートします。- 音声ファイルのサイズと長さ:ファイルは2 GBを超えることができず、長さは12時間を超えることができません。これらの制限を超えるファイルを処理するには、前処理を行ってファイルサイズを縮小してください。ベストプラクティスについては、「音声ファイル認識の文字起こし効率を向上させるための動画ファイルの前処理」を参照してください。 |
async_request | boolean | いいえ | 非同期リクエストを使用するかどうかを指定します。デフォルト値: |
apikey | string | いいえ | 接続および制御パラメータの |
nls_config | object | はい | コア音声認識設定オブジェクト。モデル選択および認識効果制御の主要なパラメータが含まれています。 |
nls_config.model | string | はい | 音声認識モデル。 |
nls_config.language_hints | array[string] | いいえ | 認識するオーディオの言語コードを指定します。このパラメータはparaformer-v2にのみ適用されます。デフォルト値: |
nls_config.disfluency_removal_enabled | boolean | いいえ | フィラーワードなどのディスフルエンシーを削除するかどうかを指定します。デフォルト値:false。有効な値:- true:ディスフルエンシーを削除 - false:ディスフルエンシーを保持。 |
nls_config.timestamp_alignment_enabled | boolean | いいえ | タイムスタンプアライメントを有効にするかどうかを指定します。デフォルト値:false。有効な値:- true:有効 - false:無効。 |
nls_config.special_word_filter | object | いいえ | 音声認識中に処理するセンシティブワードを指定し、単語ごとに異なる処理方法をサポートします。このパラメータを省略すると、組み込みのセンシティブワードフィルタリングロジックが有効になります。Alibaba Cloud Model Studioセンシティブワードリストに一致する単語は、同じ数の |
nls_config.channel_id | array[integer] | いいえ | マルチトラックオーディオファイルで認識するオーディオトラックのインデックスを指定します。インデックスは0から始まります。たとえば、 重要指定された各トラックは個別に課金されます。たとえば、1つのファイルに対して デフォルト値: |
nls_config.diarization_enabled | boolean | いいえ | 話者分離を有効にするかどうかを指定します。この機能はデフォルトで無効になっています。モノラルオーディオにのみ適用されます。マルチチャンネルオーディオは話者分離をサポートしていません。有効にすると、認識結果に 注記話者分離が有効になっている場合、認識の失敗やタイムアウトを回避するために、オーディオの長さを2時間以内に制限することをお勧めします。
|
nls_config.speaker_count | integer | いいえ | 話者数の参照値。この機能を使用するには、 |
nls_config.vocabulary_id | string | いいえ | 特定の単語の認識精度を向上させるホットワード語彙ID。このパラメータはv2以降のモデルに適用されます。詳細については、カスタムホットワードを参照してください。 |
主要インターフェース
NativeNui
initializeFileTrans
音声転写SDKインスタンスを初期化します。releaseを呼び出す前に、インスタンスを再度初期化しないでください。
注記リアルタイム音声認識とは異なり、非リアルタイムオーディオファイル転写ではinitializeFileTransを使用し、initializeの代わりにINativeFileTransCallbackコールバックを渡す必要があります。
このインターフェースは呼び出し元のスレッドをブロックします。非UIスレッドから呼び出してください。
- メソッドシグネチャ
public initializeFileTrans(callback: INativeFileTransCallback,
parameters: string,
level: number,
save_log: boolean = false): number
- パラメータの説明
| パラメータ | 型 | 説明 |
|---|---|---|
callback | INativeFileTransCallback | ファイル転写イベントおよびデータコールバックインターフェースの実装。 |
parameters | string | 認証、接続、およびデバッグパラメータを含む JSON 文字列。接続および制御パラメータを参照してください。 |
level | number | SDKログレベルを制御します。有効な値はConstants.LogLevel列挙型で定義されています。 |
save_log | boolean | ローカルログを保存するかどうかを指定します。このパラメータが |
- 戻り値
setParams
nls_configパラメータのみを設定または更新します。すべてのパラメータがstartFileTranscriberで提供されている場合、このメソッドを呼び出す必要はありません。
- メソッドシグネチャ
public setParams(params: string): number
- パラメータの説明
| パラメータ | 型 | 説明 |
|---|---|---|
params | string | 音声認識効果パラメータ内の |
- 戻り値
startFileTranscriber
認識を開始します。
- メソッドシグネチャ
public startFileTranscriber(params: string, task_id: ArrayBuffer): number
- パラメータの説明
| パラメータ | 型 | 説明 |
|---|---|---|
params | string | 音声認識効果パラメータ。例: |
task_id | ArrayBuffer | タスクIDバッファ。SDKは内部で生成されたランダムなタスクID文字列をこのバッファに書き込みます。バッファの長さは少なくとも33バイトである必要があります。例では |
- 戻り値
queryFileTranscriber
非同期タスクの現在のステータスと結果をクエリします。呼び出しが成功すると、結果はonFileTransEventCallbackコールバック内のEVENT_FILE_TRANS_QUERY_RESULTイベントによって返されます。
- メソッドシグネチャ
public queryFileTranscriber(task_id: string): number
- パラメータの説明
| パラメータ | 型 | 説明 |
|---|---|---|
task_id | string | クエリするタスクのID。 |
- 戻り値
cancelFileTranscriber
現在のタスクを即座にキャンセルします。
- メソッドシグネチャ
public cancelFileTranscriber(task_id: string): number
- パラメータの説明
| パラメータ | 型 | 説明 |
|---|---|---|
task_id | string | キャンセルするタスクのID。 |
- 戻り値
release
すべての内部SDKリソースを解放します。このメソッドが呼び出されると、SDKインスタンスは使用できなくなります。再度使用するには、initializeFileTransを呼び出して再初期化します。
- メソッドシグネチャ
public release(): number
- 戻り値
GetVersion
現在のSDKバージョン情報を取得します。
- メソッドシグネチャ
public GetVersion(): string
- 戻り値
現在のSDKバージョン情報。
INativeFileTransCallback
ファイル転写イベントおよび認識結果のコールバックを定義します。
onFileTransEventCallback
ファイル転写イベントをリッスンし、音声認識結果を取得します。
- メソッドシグネチャ
onFileTransEventCallback: (event: Constants.NuiEvent, resultCode: number, finish: number,
asrResult: AsrResult, taskId: string) => void;
- パラメータの説明
| パラメータ | 型 | 説明 |
|---|---|---|
event | Constants.NuiEvent | コールバックイベント。 |
resultCode | number |
|
finish | number | タスクが終了したかどうかを示します。 |
asrResult | AsrResult | 音声認識結果。 |
taskId | string | タスクID。 |
Constants.NuiEvent
HarmonyOS SDKイベントタイプはConstants.NuiEvent列挙型によって定義されます。以下のイベントはオーディオファイル転写に適用されます。
| イベント | 説明 |
|---|---|
EVENT_FILE_TRANS_CONNECTED | サービスが接続されています。 |
EVENT_FILE_TRANS_UPLOADED | 認識するオーディオファイルがアップロードされます。 |
EVENT_FILE_TRANS_QUERY_RESULT | タスククエリ結果。 |
EVENT_FILE_TRANS_RESULT | 最終認識結果。 |
EVENT_ASR_ERROR | 音声認識中にエラーが発生します。 |
補助型
Constants.LogLevel
levelパラメータの列挙値は次のとおりです。
| 値 | 説明 |
|---|---|
LOG_LEVEL_VERBOSE | 最も詳細なログ。 |
LOG_LEVEL_DEBUG | デバッグログ。 |
LOG_LEVEL_INFO | 情報ログ(デフォルト)。 |
LOG_LEVEL_WARNING | 警告ログ。 |
LOG_LEVEL_ERROR | エラーログ。 |
LOG_LEVEL_NONE | ログ記録を無効にします。 |
結果のダウンロード
非リアルタイム音声認識の結果は非同期に生成されます。EVENT_FILE_TRANS_RESULTイベントによって返されるレスポンスにはtranscription_urlが含まれます。このURLからJSON形式の認識テキストをダウンロードします。URLには有効期間があります。結果を速やかにダウンロードしてください。