Logo
録音ファイル書き起こし(急速版)

Cloud API

録音ファイル書き起こし(急速版)

1 機能紹介

音声ファイルをテキストに変換する機能を提供しています。文章または字幕2つの出力形式をサポートしています。

中国語、英語、日本語などの言語の書き起こしをサポートしています。

詳細については、開発ガイドを参照してください。

録音ファイルの文字起こし(急速版)のスピードを体験したい方は、お問い合わせください。

2 呼び出し制限

ファイルの長さは5時間以下である必要があります。

音声ファイルのサイズは1GB以下。

サポートされているファイル形式(monoまたはstereo):WAV/PCM/OPUS/MP3/AMR/3GP/AAC。

3 呼び出しプロセス

(1)ファイルのアップロード:ファイルの書き起こしリクエスト:クライアントはサーバーに書き起こしされる予定のファイルを含むHTTP POSTメソッドのリクエストを送り、サーバーはタスクIDを含むHTTPレスポンスを返します。

(2)書き起こし結果の取得:ポーリングコールバックの2つの方法で書き起こし結果を取得できます。

ポーリング:クライアントはサーバーにファイルの書き起こしリクエストで返されたタスクIDを含むHTTP GETメソッドのリクエストを送り、サーバーは書き起こし結果を含むHTTPレスポンスを返します。

コールバック:ファイルをアップロードする際にコールバックアドレスを渡し、書き起こしタスクが完了したときに、自動的に書き起こし結果を含むHTTP POSTリクエストを指定されたコールバックアドレスに送信します。

注意:コールバックアドレスが利用可能であることを確保してください。

4 リクエストアドレス

インターフェイス名プロトコルURLメソッド
ファイルの書き起こしリクエストHTTPhttps://api.voice.dolphin-ai.jp/v1/asrfile/upload/vipPOST
書き起こし結果の取得HTTPhttps://api.voice.dolphin-ai.jp/v1/asrfile/resultGET
タスクの照会HTTPhttps://api.voice.dolphin-ai.jp/v1/asrfile/tasksGET

5 ファイルの書き起こしリクエストインターフェイス

5.1 リクエストライン

POST /v1/asrfile/upload/vip

5.2 リクエストヘッダ

名前タイプ必須説明
Content-typeStringはい必須です "multipart/form-data"

5.3 リクエストパラメータ

クライアントはリクエストを送信し、リクエストボディ(body)にパラメータを設定します。パラメータはform-data形式です。各パラメータの意味は以下の通りです:

パラメータタイプ必須説明デフォルト値
lang_typeStringはい書き起こしされる予定のファイルの言語。開発ガイド-言語サポートを参照してくださいなし
fileFileいいえ書き起こしされる予定のファイルなし
file_urlStringいいえ書き起こしされる予定のファイルの音声URLなし
formatStringはい書き起こしされる予定のファイルの形式。開発ガイド-音声エンコードを参照してくださいなし
sample_rateIntegerいいえ音声サンプルレート、開発ガイド-基本用語を参照してください
sample_rate=「8000」の場合
fieldパラメータ・フィールドが必須で、かつfield=「call-center」
16000
outputStringいいえtextはスライドショーに適した形式、subtitleはタイトルに適した形式です。開発ガイド-実用機能を参照してくださいtext
max_sentence_silenceIntegerいいえ音声の文の区切り検出しきい値。静音の持続時間がこのしきい値を超えると文が区切られると見なされます。
範囲[200, 1200]、単位:ミリ秒
sample_rate=16000:800
sample_rate=8000:250
enable_modal_particle_filterBooleanいいえ言い淀みフィルターを有効にするかどうか。開発ガイド-実用機能を参照してくださいfalse
enable_punctuation_predictionBooleanいいえ句読点を追加するかどうかtrue(output=text
false(output=subtitle
enable_wordsBooleanいいえ返信用単語情報を有効にするかどうか。開発ガイド-基本用語を参照してくださいfalse
words_typeIntegerいいえ返信用単語情報の最小単位。漢語のみ有効です
0は単語単位、1は字単位を示します
0
enable_inverse_text_normalizationBooleanいいえ後処理でITNを実行するかどうか。開発ガイド-基本用語を参照してくださいtrue
split_clustersBooleanいいえ話者ダイアライゼーションをするかどうかfalse
clustersIntegerいいえ話者ダイアライゼーション分類数の上限。範囲 2〜10 で、声紋に基づいて最大何種類(何人の話者)に分類されるかを示します。
特に、0 はシステムが自動的に分類数を決定することを意味します。
このフィールドは split_clusters = true の場合にのみ有効になり、正確な分類数を渡した後に役割の区別効果が向上します
なし
channelsIntegerいいえチャンネル数。範囲は1-2です
1はシングルチャンネル、2はダブルチャンネルを示します
注:有効なchannelsパラメーターが設定されている場合、cluster_idが追加されます。cluster_idが同じであれば、同一の声道の内容です
1
hotwords_listStringいいえ一度限り有効な単語リスト、本接続中のみ有効です
hotwords_id と同時に存在する場合は、hotwords_list が優先されます。一度に最大 100 個まで提供可能です。詳細は開発ガイド-実用的な機能を参照してください
なし
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を使用することを示します
なし
fieldStringいいえ分野
一般:general (サポートサンプルレート16000Hz)
コールセンター:call-center (サポートサンプルレート8000Hz)
なし
keywords_quantityIntegerいいえ自動的にキーワードを抽出する数。範囲は[0, 100]です0
callback_urlStringいいえコールバックアドレス、例: http://10.0.0.2:8080いいえ
gainIntegerいいえ振幅増幅係数を表し、範囲[1, 20]、開発ガイド-実用機能を参照
1は拡大しないことを示し、2は元の振幅の2倍(拡大1倍)を示し、以下同様
sample_rate=16000:1
sample_rate=8000:2
enable_lang_labelBooleanいいえ言語を切り替える際に、認識結果に言語ラベルを返す:現在は日英混合、中英混合言語のみ対応していますfalse
paragraph_conditionIntegerいいえ同じ cluster_id 内で設定された文字数に達したら、次の文で新しい段落番号を返す:範囲[100, 2000]、範囲外の値はこの機能を無効化します0
enable_save_logBooleanいいえ音声データと認識結果のログを提供して、弊社が製品とサービスの質を向上させるために使用することは可能ですかtrue

5.4 応答結果

すべてのインターフェイスの応答のHTTPヘッダーのContent-Typeフィールドは常にapplication/jsonです。応答結果はHTTPのBodyにあります。

応答結果のフィールドは以下の通りです:

名前タイプ説明
statusString状態コード
messageString状態コードの説明
dataObject書き起こし情報
├─ durationInteger音声の持続時間(秒)
├─ task_idStringこの書き起こしタスクのIDを記録してください。この値はインターフェイスへのリクエストに使用します

5.4.1 成功応答

bodyのstatusフィールドは000000です。

成功応答の例:

{
    "status": "000000",
    "message": "success",
    "data": {
        "task_id": "01e57746-5f50-490a-8e36-4ea1110c21cd",
        "duration": 23
    }
}

5.4.2 失敗応答

bodyのstatusフィールドが000000ではない場合、すべてが失敗応答です。このフィールドを応答の成功フラグとして使用できます。

失敗応答の例:

{
    "status": "200001",
    "message": "file Parameter Missing",
    "data": {
        "task_id": "38d19b08-b075-443e-af68-e8b990764b1e",
        "duration": 0
    }
}

6 書き起こし結果を取得するインターフェイス(ポーリング)

6.1 リクエスト行

GET /v1/asrfile/result

6.2 リクエストパラメータ

クライアントがリクエストを送信すると、queryパラメータの意味は以下の通りです:

パラメータタイプ必須説明
task_idStringはいタスクID、ファイル書き起こしインターフェイスから返されます

6.3 応答結果

すべてのインターフェイスの応答のHTTPヘッダーのContent-Typeフィールドは常にapplication/jsonです。応答結果はHTTPのBodyにあります。

応答結果のフィールドは以下の通りです:

名前タイプ説明
statusString状態コード
messageString状態コードの説明
dataObject書き起こし情報
statisticsObject統計情報

6.3.1 成功応答

書き起こしが完了していない場合

bodyのstatusフィールドは000000です。

bodyのdataフィールドはこの書き起こしタスクの説明です。

dataフィールドの定義は以下の通りです:

名前タイプ説明
descString書き起こし状態コードの説明
file_nameStringこの書き起こしのファイル名
insert_timeStringこのリクエストのファイル書き起こしの時間
process_timeString完了キューン、実際に書き起こしを開始する時間
progressInteger書き起こし進捗(パーセンテージ)

成功応答の例:

{
    "status": "000000",
    "message": "success",
    "data": {
        "desc": "Transcribing",
        "file_name": "test.mp3",
        "insert_time": "2022-11-11 12:42:04",
        "process_time": "2022-11-11 12:42:04"
        "progress": 67        
    }
}

書き起こしが完了している場合

bodyのstatusフィールドは000000です。

bodyのdata.resultフィールドはこの書き起こしタスクの書き起こし結果です。

書き起こし結果のフィールド定義は以下の通りです:

名前タイプ説明
beginString各フラグメントの開始時間(ソース音声ファイルに対して)
endString各フラグメントの終了時間(ソース音声ファイルに対して)
seg_numIntegerフラグメント番号(1から増加)
transcriptString各フラグメントの書き起こし結果
confidenceFloat[0, 1]の範囲で、現在の結果の信頼度
wordsObject単語情報(単語情報パラメータenable_words = Trueを設定したときに返されます)
lang_typeString言語を切り替える際に、認識結果に言語ラベルを返す:現在は日英混合、中英混合言語のみ対応しています(enable_lang_labeltrue に設定するときに返されます)
paragraphInteger段落番号、1から始まり、順次増加します(paragraph_conditiontrue に設定するときに返されます)
cluster_idInteger話者番号、1から順次増加します。同じ cluster_id の場合、同一話者を示しています
(有効なclustersパラメータが設定されている場合、またはchannelsが2以上に設定されている場合に返されます)

そこで、単語情報wordsオブジェクト:

パラメータタイプ説明
wordStringテキスト
start_timeInteger単語の開始時間、単位はミリ秒
end_timeInteger単語の終了時間、単位はミリ秒
typeStringタイプ
normalは通常のテキストを示します。modalは語調を表す言葉(リクエストパラメータwords_type = 0のときのみ返されます)、puncは句読符を示します
keywords_indexInteger対応するキーワードのシーケンス番号(0はキーワードではないことを示します)、リクエストパラメータwords_type = 0のときのみこのフィールドが返されます

bodyのdata.statisticsフィールドはこの書き起こしタスクの統計情報です:

パラメータタイプ説明
keywordsObjectキーワードオブジェクト(keywords_quantityパラメータを設定したときに返されます)
speedInteger平均語速(日本語/中国語/韓国語:字/分;英語/日本語/韓国語:単語/分)
word_countInteger字数統計(日本語/中国語/韓国語:字数;英語:単語数)
insert_timeStringこのリクエストのファイル書き起こしの時間
process_timeString完了キューン、実際に書き起こしを開始する時間
finish_timeString書き起こしタスクを完了するのにかかった時間

そこで、キーワードkeywordsオブジェクト:

パラメータタイプ説明
indexIntegerキーワードのシーケンス番号(1から増加)
wordStringキーワード
frequencyIntegerキーワードの出現頻度
timeDictキーワードの出現時間帯
├─ beginStringキーワードの開始時間
├─ endStringキーワードの終了時間

注意:

キーワードkeywordsオブジェクトの要素は頻度と重要度を総合して点数を付与して返しますTF-IDFアルゴリズム)。

単純にキーワードの出現頻度で並び替えが必要な場合は、frequencyフィールドを使用して並び替え処理を行ってください。

成功応答の例:

{
    "status": "000000",
    "message": "Success",
    "data": {
        "result": [
            {
                "begin": "00:00:01,170",
                "end": "00:00:04,610",
                "seg_num": 1,
                "transcript": "こんにちは。あの、お名前は何ですか?",
                "confidence": 0.9,
                "paragraph": 1,
                "lang_type": "ja-JP",
                "cluster_id": 1,
                "words": [
                    {
                        "word": "こんにちは",
                        "start_time": 80,
                        "end_time": 400,
                        "is_punc": false,
                        "keywords_index": 2,
                        "type": "normal"
                    },
                    {
                        "word": "。",
                        "start_time": 80,
                        "end_time": 400,
                        "is_punc": true,
                        "keywords_index": 0,
                        "type": "punc"
                    },
                    {
                        "word": "あの",
                        "start_time": 400,
                        "end_time": 860,
                        "is_punc": false,
                        "keywords_index": 0,
                        "type": "normal"
                    },
                     ……略……
                ]
            },
            {
                "begin": "00:00:04,630",
                "end": "00:00:07,010",
                "seg_num": 2,
                "transcript": "こんにちは。私はあきです,お名前は?",
                "confidence": 0.9,
                "paragraph": 1,
                "lang_type": "ja-JP",
                "cluster_id": 1,
                "words": [
                    ……略……
                ]
            }
        ],
        "statistics": {
            "finish_time": "2022-11-11 12:47:12",
            "insert_time": "2022-11-11 12:42:04",
            "process_time": "2022-11-11 12:46:28",
            "keywords": [
                {
                    "index": 1,
                    "words": "お名前",
                    "frequency": 2,
                    "time": [
                        {
                            "begin": "00:00:05,120",
                            "end": "00:00:05,590"
                        },
                        {
                            "begin": "00:00:13,420",
                            "end": "00:00:13,980"
                        }
                    ]
                }
            ],
            "speed": 210,
            "word_count": 86
        }
    }
}

6.3.2 失敗応答

bodyのstatusフィールドが000000ではない場合、すべてが失敗応答です。このフィールドを応答の成功フラグとして使用できます。

失敗応答の例:

{
    "status": "220404",
    "message": "task_id does not exist"
}

7 コールバック識別結果

callback_urlパラメータを指定してファイル書き起こしインターフェイスを呼び出している場合、システムは書き起こしが完了(または書き起こしが失敗)したときに自動的に識別結果を指定されたアドレスにHTTP POSTリクエストとして送信します。

応答結果のフィールドは以下の通りです:

名前タイプ説明
statusString状態コード
messageString状態コードの説明
dataObject書き起こし情報

7.1.1 書き起こし成功

書き起こし結果のdataフィールドの定義は以下の通りです:

名前タイプ説明
resultObject書き起こし結果、ポーリングインターフェイスのdataフィールドの形式と同じ
statisticsObject統計情報、ポーリングインターフェイスのstatisticsフィールドの形式と同じ
task_idStringこの書き起こしのタスクID
{
    "status":"000000",
    "message":"success",
    "data":{
        "result":[
            {
                "begin": "00:00:01,170",
                "end": "00:00:04,610",
                "seg_num": 1,
                "transcript": "こんにちは。あの、お名前は何ですか?"
            },
            {
                "begin": "00:00:04,630",
                "end": "00:00:7,010",
                "seg_num": 2,
                "transcript": "こんにちは。私はあきです,お名前は?"
        	}
        ],
        "statistics": {
            "keywords":[],
            "speed": 210,
            "word_count": 86,
            "finish_time": "2022-11-11 12:47:12",
            "insert_time": "2022-11-11 12:42:04",
            "process_time": "2022-11-11 12:46:28",
        },
        "task_id":"27dc2487-bb02-4585-bd10-b75b445441bc"
    }
}

7.1.2 書き起こし失敗

フィールドの形式は前と同じですが、resultフィールドの値は空です。タスクが失敗した具体的な情報についてはmessageフィールドを参照してください。

8 タスクのクエリインターフェイス

条件に基づいてタスクをフィルタリングし、書き起こし結果はプラットフォームでは1か月だけ保持しています。早めに取得してください。

8.1 リクエストライン

GET /v1/asrfile/tasks

8.2 リクエストパラメータ

クライアントがリクエストを送信し、queryパラメータの意味は以下の通りです:

パラメータ説明デフォルト値
timeアップロード時間に基づいてフィルタリングする条件、n時間以内にアップロードされた音声時間制限なし
type型に基づいてフィルタリング、0:失敗、1:完了、2:処理中型制限なし
count数量に基づいてフィルタリング、返すタスクの数の上限数量制限なし

以上のフィルタリング条件を組み合わせて使用すると「AND」の関係になります。

8.3 応答パラメータ

すべてのインターフェイスの応答のHTTPヘッダーのContent-Typeフィールドの内容は全てapplication/jsonで、応答結果はHTTPのBodyにあります。

応答結果のフィールドは以下の通りです:

パラメータタイプ説明
statusString状態コード
messageString状態コードの説明
dataDictタスク情報
├─ task_idStringタスクID
├─ descString書き起こし状態の説明
├─ file_nameString書き起こしされたファイル名
├─ insert_timeStringファイル書き起こしのリクエスト時間
├─ process_timeString完了キューン、実際に書き起こしを開始する時間
├─ finish_timeString書き起こしタスクを完了するのにかかった時間
statisticsObject統計情報
├─ countIntegerクエリの結果タスク総数
├─ typesDict各種類の数の合計
├─├─ typeInteger0:失敗、1:完了、2:処理中、3:キューン中
├─├─ descString書き起こし状態の説明
├─├─ countIntegerタスク数