- 인쇄
- PDF
외부 파일 인식
- 인쇄
- PDF
Classic/VPC 환경에서 이용 가능합니다.
외부에서 접속 가능한 오디오/비디오 파일의 URL을 호출하여 인식하고 텍스트로 변환합니다.
요청
요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.
메서드 | URI |
---|---|
POST | /recognizer/url |
요청 헤더
CLOVA Speech API에서 공통으로 사용하는 헤더에 대한 정보는 CLOVA Speech 공통 헤더를 참조해 주십시오.
요청 바디
요청 바디에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
url | String | Required | 오디오/비디오 파일 URL |
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/8881/5f7e1b4c866f1c605946c9236f9aa8************/recognizer/url' \
--header 'Content-Type: application/json' \
--header 'X-CLOVASPEECH-API-KEY: {앱 등록 시 발급받은 Secret Key}' \
--data '{
"language": "ko-KR",
"completion":"async",
"url": "{url}",
"resultToObs" : true
}'
응답
응답 형식을 설명합니다.
응답 바디
응답 바디에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
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 | - | 도메인 아이디 |
params.userdata._ncp_TaskId | Integer | - | 태스크 아이디
|
params.userdata._ncp_TraceId | String | - | 트레이스 아이디
|
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": "*****f6a1015466bae2c926177f26310",
"result": "SUCCEEDED",
"message": "Succeeded"
}
sync
로 요청하여 json으로 반환
sync
로 요청하여 json 형식으로 반환하는 응답 예시는 다음과 같습니다.
{
"result": "COMPLETED",
"message": "Succeeded",
"token": "*****166039e486abbb90e4a84c3b3a5",
"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: 초사이어있을 때 그 초자에다가 달다는 당이었어 몰랐어요. 몰랐어. 나는 초당이 초당두부 이런 건 줄 알았어.
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: 아니 지금 두부 단 맛나는 두부가 어디 있어. 지금 이 도는 이해를 못 해. 상도면 초당 지역 아니야?
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: 초사이어있을 때 그 초자에다가 달다는 당이었어 몰랐어요. 몰랐어. 나는 초당이 초당두부 이런 건 줄 알았어.
<SYNC Start=19025>
<P>C: 사카린 생각했죠. 조금. 작가님 초당으로 드셨는데.
<SYNC Start=26317>
<P>A: 옥수수에요?
<SYNC Start=28240>
<P>B: 아니 지금 두부 단 맛나는 두부가 어디 있어. 지금 이 도는 이해를 못 해. 상도면 초당 지역 아니야?
<SYNC Start=35318>
<P>A: 아니. 초당 옥수수는 슈퍼 스위트란 뜻이었어. 초 달다고 아무도 이해 못했어요. 지금.
</Body>
</SAMI>