Search
moon
sun

240905 연구노트

목차

✍️ 문제 해결 과정

1.
CLOLA STT 이해하기(link)
블로그 참조해서 따라해보기
2.
각 과정을 서로 연결시켜보기 ⇒ (240905 회의내용 : https://www.notion.so/240905-a6999458631f4021a94a6c35e55e46fd?pvs=4)

📖 결과

결과

🌟 최종 코드는 아래와 같습니다.

1.
결과 파일
import requests import json
Python
복사
class ClovaSpeechClient: # Clova Speech invoke URL invoke_url = 'https://clovaspeech-gw.ncloud.com/external/v1/8983/54d5b161d3da62f82f3592398295d44524110cfef1b81e5ca3dae43e79f634d0' secret = 'b256e2de4b3a4898b3f020894236934f' # 외부 URL을 text로 전환 def req_url(self,url, completion, callback=None, userdata =None, forbiddens=None,boostings=None, wordAlignment=True, fullText=True, diarization=None, sed=None ): request_body = { 'url': url, 'language': 'ko-KR', 'completion': completion, 'callback': callback, 'userdata': userdata, 'wordAlignment': wordAlignment, 'fullText': fullText, 'forbiddens': forbiddens, 'boostings': boostings, 'diarization': diarization, 'sed': sed, } headers = { 'Accept': 'application/json;UTF-8', 'Content-Type': 'application/json;UTF-8', 'X-CLOVASPEECH-API-KEY': self.secret } return requests.post(headers=headers, url=self.invoke_url + '/recognizer/url', data=json.dumps(request_body).encode('UTF-8')) # 클라두으 스토리지에 저장되어 있는 파일을 text로 전환 def req_object_storage(self, data_key, completion, callback=None, userdata=None, forbiddens=None, boostings=None, wordAlignment=True, fullText=True, diarization=None, sed=None): request_body = { 'dataKey': data_key, 'language': 'ko-KR', 'completion': completion, 'callback': callback, 'userdata': userdata, 'wordAlignment': wordAlignment, 'fullText': fullText, 'forbiddens': forbiddens, 'boostings': boostings, 'diarization': diarization, 'sed': sed, } headers = { 'Accept': 'application/json;UTF-8', 'Content-Type': 'application/json;UTF-8', 'X-CLOVASPEECH-API-KEY': self.secret } return requests.post(headers=headers, url=self.invoke_url + '/recognizer/object-storage', data=json.dumps(request_body).encode('UTF-8')) # 로컬 저장소에 있는 파일을 text로 전환 def req_upload(self, file, completion, callback=None, userdata=None, forbiddens=None, boostings=None, wordAlignment=True, fullText=True, diarization=None, sed=None): request_body = { 'language': 'ko-KR', 'completion': completion, 'callback': callback, 'userdata': userdata, 'wordAlignment': wordAlignment, 'fullText': fullText, 'forbiddens': forbiddens, 'boostings': boostings, 'diarization': diarization, 'sed': sed, } headers = { 'Accept': 'application/json;UTF-8', 'X-CLOVASPEECH-API-KEY': self.secret } print(json.dumps(request_body, ensure_ascii=False).encode('UTF-8')) files = { 'media': open(file, 'rb'), 'params': (None, json.dumps(request_body, ensure_ascii=False).encode('UTF-8'), 'application/json') } response = requests.post(headers=headers, url=self.invoke_url + '/recognizer/upload', files=files) return response
Python
복사
if __name__ == '__main__': # res = ClovaSpeechClient().req_url(url='http://example.com/media.mp3', completion='sync') # res = ClovaSpeechClient().req_object_storage(data_key='data/media.mp3', completion='sync') """ file에 인식하고자 하는 파일의 경로를 입력하기 """ res = ClovaSpeechClient().req_upload(file='./data/서영은 - 꿈을 꾼다.m4a', completion='sync') print(res.text)
Python
복사

서영은 ‘꿈을 꾼다’ m4a 파일 speech to text 변환 결과

"text":
"때로 마음먹은 대로 되지 않은 해도 일
간 세월을 돌아보며
괜히 웃음이 나와
정신없는 하루 끝에
눈물이 날 따돌
뒤돌아보며
미소 꿈을 꾼다.
잠시 힘겨워
한 걸음 한 걸음
내일을 향 나는 꿈을 다.
혹시 너무 힘이 들면
잠시 쉬어 아파도 괜찮아.
천천히 함께 갈 수 있다면
이미 충분하니까
자꾸 못나 보이는 날
마음에 들지 않는
소중한 힘이 될 거야.
다 잠시 힘겨운 날도 있겠지만
한 걸음 한 걸음
내일을 향해 나는 꿈을 꾼다.
잠시 외로운 날도 있겠지만,
세월이 흘러서
시간이 가면 모두 지나
다 잠시 힘겨운 날도 있겠지만
한 걸음 한 걸음
내일을 향해
나는 오늘 다 행복한 꿈을."
해결되지 않은 점