- 印刷する
- PDF
Object Storageファイルの認識
- 印刷する
- PDF
Classic/VPC環境で利用できます。
NAVERクラウドプラットフォームの Object Storageにアップロードしたオーディオ/ビデオファイルの固有の URLを呼び出して認識し、テキストに変換します。
リクエスト
リクエスト形式を説明します。リクエスト形式は次の通りです。
メソッド | URI |
---|---|
POST | /recognizer/object-storage |
リクエストヘッダ
CLOVA Speech APIで共通して使用されるヘッダの詳細は、CLOVA Speechの共通ヘッダをご参照ください。
リクエストボディ
リクエストボディの説明は次の通りです。
フィールド | タイプ | 必須の有無 | 説明 |
---|---|---|---|
datakey | String | Required | オーディオ/ビデオファイルの保存先の Object Storageパス
|
language | String | Required | テキスト認識言語
|
completion | String | Optional | 認識リクエスト後のレスポンス方法
|
callback | String | Conditional | Callback URL
|
userdata | Object | Optional | ユーザーデータの詳細情報 |
wordAlignment | Boolean | Optional | 認識結果の音声とテキストをソートして出力するかどうか
|
fullText | Boolean | Optional | 認識結果の全テキストを出力するかどうか
|
resultToObs | Boolean | Conditional | Object Storageに結果を保存するかどうか
|
noiseFiltering | Boolean | Optional | ノイズフィルタリングの有無
|
boostings | Array | Optional | キーワードブーストの詳細情報
|
useDomainBoostings | Boolean | Optional | ドメインブーストの使用有無
|
forbiddens | String | Optional | 要注意キーワード
|
diarization | Object | Optional | 話者認識の詳細設定 |
diarization.enable | Boolean | Optional | 話者認識するかどうか
|
sed | Object | Optional | イベント検知結果の詳細情報 |
sed.enable | Boolean | Optional | イベント検知するかどうか
|
format | String | Optional | レスポンス結果を返す形式
|
boostings
boostings
の説明は次の通りです。
フィールド | タイプ | 必須の有無 | 説明 |
---|---|---|---|
words | String | Optional | キーワードブースト対象の単語リスト |
completion
(リクエスト後のレスポンス方式)をasync
にしてリクエストすると、入力した Callback URLアドレスの有無や resultToObs(ObjectStorage)の有無に応じて認識結果を次のように返します。
Callback URL | resultToObs(ObjectStorage) | 結果 |
---|---|---|
URLアドレスあり | True | Callback URLと Object Storageの両方に結果を返す |
URLアドレスあり | False | Callback URLにのみ結果を返す |
URLアドレスなし | True | Object Storageにのみ結果を返す |
URLアドレスなし | False | エラーを返す |
リクエスト例
リクエストのサンプルコードは次の通りです。
curl --location --request POST 'https://clovaspeech-gw.ncloud.com/external/v1/88**/5f7e1b4c866f1c60594****************/recognizer/object-storage' \
--header 'Content-Type: application/json' \
--header 'X-CLOVASPEECH-API-KEY: {アプリの登録時に発行された Secret Key}' \
--data '{
"dataKey": "{file}.mp3",
"language": "ko-KR",
"completion":"sync",
"callback": "",
"fullText": true,
"boostings": [
{
"words": "comma separated words"
}
],
"forbiddens": "comma separated words"
}'
レスポンス
レスポンス形式を説明します。
レスポンスボディ
レスポンスボディの説明は次の通りです。
フィールド | タイプ | 必須の有無 | 説明 |
---|---|---|---|
result | String | - | レスポンスコード |
message | String | - | レスポンスメッセージ |
token | String | - | 結果トークン |
version | String | - | エンジンバージョン |
params | Object | - | パラメータの詳細情報 |
params.service | String | - | サービスコード |
params.domain | String | - | ドメインのタイプ
|
params.lang | String | - | 認識言語
|
params.completion | String | - | レスポンス方法
|
params.callback | String | - | Callback URL |
params.diarization | Object | - | 話者認識の詳細情報 |
params.diarization.enable | Boolean | - | 話者認識するかどうか
|
params.diarization.speakerCountMin | Integer | - | 最小話者数 |
params.diarization.speakerCountMax | Integer | - | 最大話者数 |
params.sed | Object | - | イベント検知結果 |
params.sed.enable | Boolean | - | イベント検知するかどうか
|
params.boostings | Array | - | キーワードブーストの詳細情報
|
params.forbiddens | String | - | 要注意キーワード
|
params.wordAlignment | Boolean | Optional | 認識結果の音声とテキストをソートして出力するかどうか
|
params.fullText | Boolean | - | 認識結果の全テキストを出力するかどうか
|
params.noiseFiltering | Boolean | - | ノイズフィルタリングの有無
|
params.resultToObs | Boolean | - | Object Storageに結果を保存するかどうか
|
params.priority | Integer | - | 優先順位
|
params.userdata | Object | - | ユーザーデータの詳細情報 |
params.userdata._ncp_DomainCode | String | - | ドメインコード
|
params.userdata._ncp_DomainId | Integer | - | ドメイン ID |
params.userdata._ncp_TaskId | Integer | - | タスク ID
|
params.userdata._ncp_TraceId | String | - | トレース ID
|
progress | Integer | - | 認識進捗率 |
segments | Array | - | segmentsの詳細情報 |
text | String | - | 全テキスト |
confidence | Double | - | 全体の精度 |
speakers | Array | - | 全話者の詳細情報 |
events | Array | - | イベントの詳細情報 |
eventTypes | Array | - | 認識された全イベントの詳細情報 |
params.boostings
params.boostings
の説明は次の通りです。
フィールド | タイプ | 必須の有無 | 説明 |
---|---|---|---|
words | String | - | キーワードブースト対象の単語リスト |
segments
segments
の説明は次の通りです。
フィールド | タイプ | 必須の有無 | 説明 |
---|---|---|---|
start | Long | - | 分析開始時刻(ms) |
end | Long | - | 分析終了時刻(ms) |
text | String | - | 分析テキスト |
confidence | Double | - | 分析の精度
|
diarization | Object | - | 認識された話者の詳細情報 |
diarization.label | String | - | 認識された話者の番号 |
speaker | Object | - | 変更後の話者の詳細情報 |
speaker.label | String | - | 変更後の話者の番号 |
speaker.name | String | - | 変更後の話者の名前 |
speaker.edited | Boolean | - | 話者は変更されたかどうか
|
words | Array<Long, Long, String> | - | 認識された単語リスト |
words.[0] | Long | - | セグメント開始時刻(ms) |
words.[1] | Long | - | セグメント終了時刻(ms) |
words.[2] | String | - | セグメントテキスト |
textEdited | String | - | 変更後の内容 |
speakers
speakers
の説明は次の通りです。
フィールド | タイプ | 必須の有無 | 説明 |
---|---|---|---|
label | String | - | すべての話者の番号 |
name | String | - | すべての話者の名前 |
edited | Boolean | - | 話者は変更されたかどうか
|
events
events
の説明は次の通りです。
フィールド | タイプ | 必須の有無 | 説明 |
---|---|---|---|
type | String | - | イベントタイプ |
label | String | - | イベント名 |
labelEdited | String | - | 変更後のイベント名 |
start | Long | - | イベントの開始時刻 |
end | Long | - | イベントの終了時刻 |
eventTypes
eventTypes
の説明は次の通りです。
フィールド | タイプ | 必須の有無 | 説明 |
---|---|---|---|
label | String | - | 認識されたイベント |
レスポンスステータスコード
CLOVA Speech APIで共通して使用されるレスポンスステータスコードの詳細は、CLOVA Speechの共通レスポンスステータスコードをご参照ください。
レスポンス例
レスポンスのサンプルコードは次の通りです。
async
でリクエストして jsonで返す
async
でリクエストして json形式で返すレスポンスのサンプルコードは次の通りです。
{
"token": "{token}",
"result": "SUCCEEDED",
"message": "Succeeded"
}
sync
でリクエストして jsonで返す
sync
でリクエストして json形式で返すレスポンスのサンプルコードは次の通りです。
{
"result": "COMPLETED",
"message": "Succeeded",
"token": "{token}",
"version": "ncp_v2_v2.3.0-aa6cd8d-20231205_231211-3cf30bfc_v0.0.0_",
"params": {
"service": "ncp",
"domain": "general",
"lang": "enko",
"completion": "sync",
"callback": "",
"diarization": {
"enable": true,
"speakerCountMin": -1,
"speakerCountMax": -1
},
"sed": {
"enable": true
},
"boostings": [
{
"words": "こんにちは。テスト"
}
],
"forbiddens": "",
"wordAlignment": true,
"fullText": true,
"noiseFiltering": true,
"resultToObs": false,
"priority": 0,
"userdata": {
"_ncp_DomainCode": "NEST",
"_ncp_DomainId": 1,
"_ncp_TaskId": **442,
"_ncp_TraceId": "*****ce98ec342d8a8c8fe9191cec343",
"id": 1
}
},
"progress": 100,
"keywords": {},
"segments": [
{
"start": 5870,
"end": 8160,
"text": "ソウルのプールです。",
"confidence": 0.9626975,
"diarization": {
"label": "2"
},
"speaker": {
"label": "2",
"name": "B",
"edited": false
},
"words": [
[
5871,
6730,
"ソウル"
],
[
6860,
7530,
"プールです。"
]
],
"textEdited": "ソウルのプールです。"
},
{
"start": 8160,
"end": 12950,
"text": "入場料はいくらですか? 5千ウォンです。ありがとうございます。",
"confidence": 0.8835926,
"diarization": {
"label": "1"
},
"speaker": {
"label": "1",
"name": "A",
"edited": false
},
"words": [
[
8161,
9220,
"入場料は"
],
[
9390,
10020,
"いくらですか?"
],
[
10410,
10640,
"5千"
],
[
10710,
11140,
"ウォンです。"
],
[
11910,
12500,
"ありがとうございます。"
]
],
"textEdited": "入場料はいくらですか? 5千ウォンです。ありがとうございます。"
}
],
"text": "ソウルのプールです。入場料はいくらですか? 5千ウォンです。ありがとうございます。",
"confidence": 0.9071357,
"speakers": [
{
"label": "1",
"name": "A",
"edited": false
},
{
"label": "2",
"name": "B",
"edited": false
}
],
"events": [
{
"type": "music",
"label": "music",
"labelEdited": "music",
"start": 1400,
"end": 5000
}
],
"eventTypes": [
"music"
]
}
sync
でリクエストして srtで返す
sync
でリクエストして srt形式で返すレスポンスのサンプルコードは次の通りです。
1
00:00:00,000 --> 00:00:01,425
A: 私、この前
2
00:00:02,533 --> 00:00:11,550
A: トウモロコシを食べたんですよ。すごく甘くて美味しかった。てか、私はそれが町の名前だと思ってたんですよ。
3
00:00:11,550 --> 00:00:19,025
A: Chosaierのチョ(超)に、甘いのダン(糖)だったとはね。知らなかった。私、チョダンってチョダン豆腐みたいなものだと思ってた。
4
00:00:19,025 --> 00:00:26,317
C: サッカリンのことを思い出したけど。ふいとね。作家さんはチョダンを召し上がりましたね。
5
00:00:26,317 --> 00:00:28,240
A: トウモロコシにですか?
6
00:00:28,240 --> 00:00:35,318
B: ちょっと、甘い味のする豆腐がどこにあるっていうの? この Doは理解できないな。サンドってチョダン地域じゃないの?
7
00:00:35,318 --> 00:00:42,800
A: いやいや。チョダントウモロコシってスーパースウィートって意味だった。めっちゃ甘いって意味だったとは誰も知らなかったよ。全然。
sync
でリクエストして smiで返す
sync
でリクエストして smi形式で返すレスポンスのサンプルコードは次の通りです。
<SAMI>
<Body>
<SYNC Start=0>
<P>A: 私、この前
<SYNC Start=2533>
<P>A: トウモロコシを食べたんですよ。すごく甘くて美味しかった。てか、私はそれが町の名前だと思ってたんですよ。
<SYNC Start=11550>
<P>A: Chosaierのチョ(超)に、甘いのダン(糖)だったとはね。知らなかった。私、チョダンってチョダン豆腐みたいなものだと思ってた。
<SYNC Start=19025>
<P>C: サッカリンのことを思い出したけど。ふいとね。作家さんはチョダンを召し上がりましたね。
<SYNC Start=26317>
<P>A: トウモロコシにですか?
<SYNC Start=28240>
<P>B: ちょっと、甘い味のする豆腐がどこにあるっていうの? この Doは理解できないな。サンドってチョダン地域じゃないの?
<SYNC Start=35318>
<P>A: いやいや。チョダントウモロコシってスーパースウィートって意味だった。めっちゃ甘いって意味だったとは誰も知らなかったよ。全然。
</Body>
</SAMI>