일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 구글일정
- Selenium
- 독학
- Python
- 간단한파이썬게임
- 업무자동화
- 파이썬독학
- 딥러닝
- 기본기
- 음성인식
- 파이썬게임
- 자동화
- 머신러닝
- 소스코드
- Quickstart
- 구글캘린더
- 크롤링
- 카카오
- 파이썬
- Ai
- 웹크롤링
- 파이썬게임만들기
- STT
- 빅데이터
- OpenAPI
- 인공지능
- 구글
- kakao
- 오늘배워오늘쓰는
- 파이썬간단한게임
Archives
- Today
- Total
ai-creator
음성인식 (STT) 빨리 시작하기 - 카카오 OpenAPI 본문
반응형
카카오에서는 음성인식(STT, Speech-To-Text)을 무료로 제공하고 있습니다.
ㅁ 1일 무료 허용량
하루에 음성인식은 20,000건 / 5,400초(90분)를 무료로 제공하고 있습니다.
빠르게 살펴보겠습니다.
<< 순서 >>
Step 1) |
사전준비 - 음성 인식 사용 여부 체크 - rest api key 찾기 |
Step 2) | 구현 |
Step 1) 사전 준비
1-1) 음성 사용 On
- 내 애플리케이션 > 설정 > 음성 > [ON] 으로 설정 변경
1-2) REST API 키 확인
Step 2) 구현 (Quick Start)
ㅁ 음성 파일 준비
용어정리
- sample rate : 현실 세계의 아날로그 소리를 잘게 쪼갠 비율(속도). 잘게 쪼개진 하나를 샘플이라 부른다.
== 1초당 추출되는 샘플 개수 ex:) 44100 Hz - 1초당 44100개의 샘플
- channel : 스피커 수와 연관 있다.
- bits per sample : 하나의 샘플을 표현하기 위해 사용되는 bit 수.
- bit rate : 1초당 비트 전송 수. (sample rate * channel * bits per sample)
- RAW PCM 포맷 : PCM(Pulse code modulation)로 표현한 오디오 데이터를 압축하지 않은 RAW 형태(wav 등)
오디오 포맷에 관한 자세한 설명은 다른 블로그를 참고하세요.
카카오톡 샘플 오디오 파일 다운로드하기 ("헤이 카카오"라고 녹음 되어 있습니다)
- 해당 형식에 맞춰 오디오 파일을 준비합니다.
ㅁ 소스코드
import requests
import json
kakao_speech_url = "https://kakaoi-newtone-openapi.kakao.com/v1/recognize"
rest_api_key = '<YOUR REST API KEY>'
headers = {
"Content-Type": "application/octet-stream",
"X-DSS-Service": "DICTATION",
"Authorization": "KakaoAK " + rest_api_key,
}
with open('heykakao.wav', 'rb') as fp:
audio = fp.read()
res = requests.post(kakao_speech_url, headers=headers, data=audio)
ㅁ 결과
이런 재밌는 결과가 나왔네요~!
print(res.text)
# ------newtonemQRqgAYxWY2ZhLN2
# Content-Type: application/json; charset=UTF-8
#
# {"type":"beginPointDetection","value":"BPD"}
# ------newtonemQRqgAYxWY2ZhLN2
# Content-Type: application/json; charset=UTF-8
#
# {"type":"partialResult","value":"he"}
# ------newtonemQRqgAYxWY2ZhLN2
# Content-Type: application/json; charset=UTF-8
#
# {"type":"partialResult","value":"헤이 카카오"}
# ------newtonemQRqgAYxWY2ZhLN2
# Content-Type: application/json; charset=UTF-8
#
# {"type":"endPointDetection","value":"EPD"}
# ------newtonemQRqgAYxWY2ZhLN2
# Content-Type: application/json; charset=UTF-8
# Speech-Length: 2
#
# {"type":"finalResult","value":"헤이 카카오","nBest":[{"value":"헤이 카카오","score":88},{"value":"헤이 카카오야","score":0}]}
# ------newtonemQRqgAYxWY2ZhLN2--
# beginPointDetection # 사용자가 말하기 시작하는 것으로 판단되었을 때
# partialResult # 사용자가 말을 끝내기 전에 음성의 중간 인식 결과가 나왔을 때로, value에 중간 결과가 담김. 여러 번 발생할 수 있음
# endPointDetection # 사용자가 말하는 것을 끝마친 것으로 판단되었을 때
# finalResult # 사용자가 말한 음성의 최종 인식 결과가 나왔을 때로, value에 최종 인식 결과가 담김
# errorCalled # 음성 인식이 실패 했을 때로, value에 에러 메시지가 담김
(참고) finalResult 를 추출하는 방법
result_json_string = res.text[res.text.index('{"type":"finalResult"'):res.text.rindex('}')+1]
result = json.loads(result_json_string)
print(result)
print(result['value'])
저작물의 저작권은 작성자에게 있습니다.
공유는 자유롭게 하시되 댓글 남겨주세요~
상업적 용도로는 무단 사용을 금지합니다.
끝까지 읽어주셔서 감사합니다^^
반응형
'오늘 배워 오늘 쓰는 OpenAPI > Quick Start' 카테고리의 다른 글
[Python] 아파트 매매 실거래가 수집하기 (feat. 국토교통부 OpenAPI) (14) | 2020.03.09 |
---|---|
Python으로 네이버 블로그 자동 포스팅 하기 (5) | 2020.03.06 |
음성인식(STT/TTS) 빨리 시작하기 - SpeechRecognition 구글 (2) | 2020.03.06 |
음성인식(STT) 빨리 시작하기 - ETRI OpenAPI (2) | 2020.03.06 |
OpenAPI 가이드 보는 법과 사용법 (feat. 카카오 검색 / 번역) (0) | 2020.03.04 |
Comments