긴 음성 변환하기
1. 소개
최대 4시간 길이의 긴 음성 데이터를 텍스트로 변환하여 제공하는 서비스입니다. 이 API는 비동기화 방식이 사용되어 동작하며, 이를 통해 음성 데이터에서 얻은 텍스트를 활용하여 응용 프로그램을 개발하거나 자동 음성 텍스트 변환 서비스를 구축할 수 있습니다.
WARNING
⚠️ 노래 음원 혹은 배경음악이 크게 들리는 오디오는 텍스트 변환을 지원하지 않습니다.
2. 예제
아래는 간단한 사용 예제입니다. 이 예제에서는 긴 음성 파일을 API에 전송하고, API는 해당 음성을 텍스트로 변환하여 응답합니다.
POST
curl -X POST 'https://apis.daglo.ai/stt/v1/async/transcripts' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <API_TOKEN>' \
--data '{
"audio": {
"source": {
"url": "https://storage.googleapis.com/bkt-actionpower-examples/audio/actionpower_hello.wav"
}
}
}'
{"rid":"12345678-abcd-efgh-1234-abcdefghijkl"}
GET
curl 'https://apis.daglo.ai/stt/v1/async/transcripts/<RID>' \
--header 'Authorization: Bearer <API_TOKEN>'
{
"rid": "12345678-abcd-efgh-1234-abcdefghijkl",
"status": "transcribed",
"sttResults": [
{
"transcript": "안녕하세요. 액션 파워입니다. 음성 인식의 선두주자 액션 파워의 기술을 만나보세요. ",
"words": [
{
"word": "안녕하세요. ",
"startTime": {
"nanos": 60000000,
"seconds": "0"
},
"endTime": {
"nanos": 860000000,
"seconds": "0"
},
"segmentId": "1"
},
{
"word": "액션 ",
"startTime": {
"nanos": 820000000,
"seconds": "0"
},
"endTime": {
"nanos": 419999999,
"seconds": "1"
},
"segmentId": "2"
},
{
"word": "파워입니다. ",
"startTime": {
"nanos": 379999999,
"seconds": "1"
},
"endTime": {
"nanos": 20000000,
"seconds": "2"
},
"segmentId": "2"
},
{
"word": "음성 ",
"startTime": {
"nanos": 990000000,
"seconds": "1"
},
"endTime": {
"nanos": 509999999,
"seconds": "2"
},
"segmentId": "3"
},
{
"word": "인식의 ",
"startTime": {
"nanos": 470000000,
"seconds": "2"
},
"endTime": {
"nanos": 830000000,
"seconds": "2"
},
"segmentId": "3"
},
{
"word": "선두주자 ",
"startTime": {
"nanos": 790000000,
"seconds": "2"
},
"endTime": {
"nanos": 150000000,
"seconds": "4"
},
"segmentId": "3"
},
{
"word": "액션 ",
"startTime": {
"nanos": 110000000,
"seconds": "4"
},
"endTime": {
"nanos": 669999999,
"seconds": "4"
},
"segmentId": "3"
},
{
"word": "파워의 ",
"startTime": {
"nanos": 629999999,
"seconds": "4"
},
"endTime": {
"nanos": 950000000,
"seconds": "4"
},
"segmentId": "3"
},
{
"word": "기술을 ",
"startTime": {
"nanos": 950000000,
"seconds": "4"
},
"endTime": {
"nanos": 879999999,
"seconds": "5"
},
"segmentId": "3"
},
{
"word": "만나보세요. ",
"startTime": {
"nanos": 839999999,
"seconds": "5"
},
"endTime": {
"nanos": 479999999,
"seconds": "6"
},
"segmentId": "3"
}
],
"keywords": null
}
]
}
3. 사용법
1) API Key 발급하기
- API Console에 접속하여 회원가입 후 로그인합니다.
- 토큰 메뉴에 들어가 새로운 토큰을 발급합니다.
- 발급한 토큰 정보를 복사해 요청 시 인증 토큰 정보로 사용합니다.
2) 요청하기
- 지정된 엔드포인트로 필요한 파라미터 정보를 포함해 요청합니다.
- 보다 자세한 API 파라미터 정보는 API Reference를 참고해주세요.
a. POST
Send long audio to transcribe
- Endpoint
POST https://apis.daglo.ai/stt/v1/async/transcripts
b. GET
Get long audio transcription
- Endpoint
GET https://apis.daglo.ai/stt/v1/async/transcripts/{rid}
c. Callback으로 응답받기
- 요청후 Callback으로 처리를 하는 경우, 서버에서 작업이 완료된 후 지정된 URL로 완료 상태를 전송합니다. 보다 자세한 내용은 Get(Polling)과 Callback 문서를 참고해주세요.
3) 지원 포맷
- 파일 크기: 최대 2GB 이내
- 파일 재생 시간: 4시간 이내
- 지원 파일 포맷
🔊 오디오
.3gp, .3gpp .ac3, .aac, .aiff, .amr, .au, .flac, .m4a, .mp3, .mxf, .opus, .ra, .wav, .weba
📹 비디오
.asx, .avi, .ogm, .ogv, .m4v, .mov, .mp4, .mpeg, .mpg, .wmv
WARNING
⚠️ 포맷이 같더라도 실제 내용(인코딩)이 다를 경우 받아쓰기가 진행되지 않을 수 있습니다.
4) 응답받기
a. POST
Send long audio to transcribe
- Success
응답 코드 보기
200
204
- No Content. 요청은 성공하였으나 반환한 결과가 없습니다.
- 받아쓰기의 경우 받아쓰기는 완료되었으나, 결과가 비어있습니다.
- Error
응답 코드 보기
400
: Bad Request. 요청 형식이 잘못 되었습니다.401
: Unauthorized.403
: Forbidden. 허용되지 않은 접근입니다.413
: Payload Too Large. 요청이 너무 큽니다.415
: Unsupported Media Type.429
: Too Many Requests.500
: Internal Server Error. 서버 오류입니다.503
: 너무 많은 요청을 처리하고 있어 일시적으로 응답이 불가능한 상태입니다. 잠시 후 다시 시도해주세요.
b. GET
Get long audio transcription
Endpoint
shellGET https://apis.daglo.ai/stt/v1/async/transcripts/{rid}
Success
응답 코드 보기
200
ai_requested
: 요청이 시작되었습니다.uploaded
: 파일 업로드가 완료되었습니다.file_processing
: 파일을 전처리 중 입니다.transcribing
: 받아쓰기 중 입니다.post_processing
: 후처리 중 입니다.transcribed
: 받아쓰기가 완료되었습니다.transcript_error
: 받아쓰기 중 오류가 발생하였습니다. 잠시 기다렸다가 다시 요청해 주세요.file_error
: 파일에 오류가 있습니다. 파일 확인 후 다시 요청해 주세요.
204
- No Content. 요청은 성공하였으나 반환한 결과가 없습니다.
- 받아쓰기의 경우 받아쓰기는 완료되었으나, 결과가 비어있습니다.
- Error
응답 코드 보기
401
: Unauthorized.403
: Forbidden. 허용되지 않은 접근입니다.404
: Not Found.429
: Too Many Requests.500
: Internal Server Error. 서버 오류입니다.
c. Callback 으로 응답받기
요청 후 Callback으로 처리를 하는 경우, 서버에서 작업이 완료된 후 지정된 URL로 완료 상태를 전송합니다. 보다 자세한 내용은 Get(Polling)과 Callback 문서를 참고해주세요.
업데이트 이력
- 20240902 ver1.0 API 문서가 작성되었습니다.