반응형
apidocs.ncloud.com/ko/ai-naver/clova_speech_recognition/stt/
stt (Speech-To-Text) - API 참조서
개요 Clova Speech Recognition REST API (이하 CSR REST API)는 HTTP 기반의 REST API로 제공하는 음성인식 API로, 인식에 사용할 언어와 음성 데이터를 입력받고, 그에 맞는 인식 결과를 텍스트로 반환합니다. 입�
apidocs.ncloud.com
stt (Speech-To-Text)
- Clova Speech Recognition REST API (이하 CSR REST API)는 HTTP 기반의 REST API로 제공하는 음성인식 API로, 인식에 사용할 언어와 음성 데이터를 입력받고, 그에 맞는 인식 결과를 텍스트로 반환합니다.
- 입력 음성데이터 포맷은 mp3, aac, ac3, ogg, flac, wav을 지원합니다.
요청
MethodRequest URI
POST | https://naveropenapi.apigw.ntruss.com/recog/v1/stt |
요청 파라미터
파라미터 이름타입설명필수 여부
lang | string | 음성인식에 사용할 언어 - Kor: 한국어 - Jpn: 일본어 - Chn: 중국어 - Eng: 영어 |
필수 |
요청 헤더
헤더명설명
X-NCP-APIGW-API-KEY-ID | 앱 등록 시 발급받은 Client ID X-NCP-APIGW-API-KEY-ID:{Client ID} |
X-NCP-APIGW-API-KEY | 앱 등록 시 발급 받은 Client Secret X-NCP-APIGW-API-KEY:{Client Secret} |
Content-Type | application/octet-stream으로 고정 Content-Type: application/octet-stream |
요청 바디
필드명필수 여부타입제약 사항설명
image | Yes | mp3, aac, ac3, ogg, flac, wav | 바이너리 사운드 데이터 (최대 60초) | 음성 파일 |
응답
응답 바디
필드 이름데이터 타입설명
text | string | 음성에 대한 Text |
예시
요청 예시
HTTP
Copy[HTTP Request URL] https://naveropenapi.apigw.ntruss.com/recog/v1/stt?lang=Kor [HTTP Request Body] --- binary sound data ---
응답 예시
JSON
Copy{ "text": "안녕하세요" }
API 예제
다음은 각 언어별 CSR API 구현 예제입니다
JAVASCRIPT
const fs = require('fs');
const request = require('request');
const clientId = 'YOUR_CLIENT_ID';
const clientSecret = 'YOUR_CLIENT_SECRET';
// language => 언어 코드 ( Kor, Jpn, Eng, Chn )
function stt(language, filePath) {
const url = `https://naveropenapi.apigw.ntruss.com/recog/v1/stt?lang=${language}`;
const requestConfig = {
url: url,
method: 'POST',
headers: {
'Content-Type': 'application/octet-stream',
'X-NCP-APIGW-API-KEY-ID': clientId,
'X-NCP-APIGW-API-KEY': clientSecret
},
body: fs.createReadStream(filePath)
};
request(requestConfig, (err, response, body) => {
if (err) {
console.log(err);
return;
}
console.log(response.statusCode);
console.log(body);
});
}
stt('Kor', '음성 파일 경로 (ex: ./test.wav)');
python
import sys
import requests
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
lang = "Kor" # 언어 코드 ( Kor, Jpn, Eng, Chn )
url = "https://naveropenapi.apigw.ntruss.com/recog/v1/stt?lang=" + lang
data = open('음성 파일 경로', 'rb')
headers = {
"X-NCP-APIGW-API-KEY-ID": client_id,
"X-NCP-APIGW-API-KEY": client_secret,
"Content-Type": "application/octet-stream"
}
response = requests.post(url, data=data, headers=headers)
rescode = response.status_code
if(rescode == 200):
print (response.text)
else:
print("Error : " + response.text)
C#
using System;
using System.Net;
using System.Text;
using System.IO;
using System.Collections.Generic;
using System.Collections.Specialized;
namespace NaverAPI_Guide
{
class APIExamSTT
{
static void Main(string[] args)
{
string FilePath = "YOUR_FILE_NAME";
FileStream fs = new FileStream(FilePath, FileMode.Open, FileAccess.Read);
byte[] fileData = new byte[fs.Length];
fs.Read(fileData, 0, fileData.Length);
fs.Close();
string lang = "Kor"; // 언어 코드 ( Kor, Jpn, Eng, Chn )
string url = $"https://naveropenapi.apigw.ntruss.com/recog/v1/stt?lang={lang}";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Headers.Add("X-NCP-APIGW-API-KEY-ID", "YOUR_CLIENT_ID");
request.Headers.Add("X-NCP-APIGW-API-KEY", "YOUR_CLIENT_SECRET");
request.Method = "POST";
request.ContentType = "application/octet-stream";
request.ContentLength = fileData.Length;
using (Stream requestStream = request.GetRequestStream())
{
requestStream.Write(fileData, 0, fileData.Length);
requestStream.Close();
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
string text = reader.ReadToEnd();
stream.Close();
response.Close();
reader.Close();
Console.WriteLine(text);
}
}
}
반응형
'프로그래밍 > Architect' 카테고리의 다른 글
코로나, 뉴노멀, 언택트 시대... (0) | 2020.09.11 |
---|---|
슈퍼리더십, 셀프리더십 (0) | 2020.09.11 |
'버추얼 3D 부동산 박람회' 한경이 국내 최초로 엽니다 (0) | 2020.09.02 |
집코노미 언택트 박람회 4~6일 개최‥K-VINA 해외부동산 부스 및 강연 (0) | 2020.09.02 |
개발자 몰리는 '네카라쿠배'...'R&D 퍼스트' 확산 (0) | 2020.08.24 |