음성을 텍스트로 변환하기
1. 소개
음성 인식 API는 사용자가 제공한 음성 데이터를 텍스트로 변환하여 제공하는 서비스입니다. 이 API는 비동기화 방식이 사용되어 동작하며, 이를 통해 음성 데이터에서 얻은 텍스트를 활용하여 응용 프로그램을 개발하거나 자동 음성 텍스트 변환 서비스를 구축할 수 있습니다.
주요 기능
- 음성 데이터 변환: API를 통해 제공된 음성 데이터를 텍스트로 변환합니다.
- 다양한 오디오 형식 지원: WAV, MP3 등 다양한 오디오 형식을 지원하여 유연한 사용이 가능합니다.
- 높은 정확도: 자체 음성 인식 알고리즘을 통해 높은 정확도로 음성 데이터를 텍스트로 변환합니다.
WARNING
⚠️ 노래 음원 혹은 배경음악이 크게 들리는 오디오는 텍스트 변환을 지원하지 않습니다.
왜 사용해야 하나요?
음성 인식 API를 사용하면 음성 데이터를 효과적으로 활용하여 텍스트로 변환할 수 있습니다. 이를 통해 다음과 같은 음성 기반의 응용 프로그램을 개발하거나, 자동 음성 텍스트 변환 서비스를 구현하여 사용자 경험을 향상시킬 수 있습니다.
- 음성 메모 앱 개발: 사용자가 음성으로 메모를 녹음하면 API를 통해 텍스트로 변환하여 메모 어플리케이션에 자동으로 저장합니다.
- 음성 기반 검색 엔진: 사용자가 음성으로 검색어를 전달하면 API가 텍스트로 변환하고, 검색 엔진에서 관련된 결과를 반환합니다.
- 전화 음성 자동화 시스템: 고객 전화 내용을 API를 통해 텍스트로 변환하면 음성 자동 응답 시스템이 해당 내용에 기반하여 적절한 응답을 생성합니다.
- 회의록 자동 기록 서비스: 회의 중 음성 데이터가 API를 통해 텍스트로 변환되면 자동으로 회의록이 작성되어 참석자들에게 제공됩니다.
- 영상자료의 자막 생성: API는 음성 파일을 텍스트로 변환하고 해당 내용을 자막 파일로 반환합니다.
2. 예제
아래는 간단한 사용 예제입니다. 이 예제에서는 긴 음성 파일을 Async 방식으로 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"
}
}
}'
POST-Response
{"rid":"12345678-abcd-efgh-1234-abcdefghijkl"}
GET
curl 'https://apis.daglo.ai/stt/v1/async/transcripts/<RID>' \
--header 'Authorization: Bearer <API_TOKEN>'
GET-Response
{
"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"
}
],
"keywords": null
}
]
}
3. 사용법
1) API Key 발급하기
- API Console에 접속하여 회원가입 후 로그인합니다.
- 토큰 메뉴에 들어가 새로운 토큰을 발급합니다.
- 발급한 토큰 정보를 복사해 요청 시 인증 토큰 정보로 사용합니다.
2) 요청하기
- 이 예제에서는 긴 음성 파일을 전송합니다.
- 지정된 엔드포인트(Send long audio to transcribe)로 필요한 파라미터 정보를 포함해 요청합니다.
POST https://apis.daglo.ai/stt/v1/async/transcripts
- 보다 자세한 API 파라미터 정보는 API Reference를 참고해주세요.
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 문서가 작성되었습니다.