Pass by
원래 보안쪽에 관심이 있어 공부하다가, 클라우드쪽에 관심이 생겨 네이버클라우드에대해 공부하던 중
블로그 댓글 중 네이버클라우드에서 " 이달의 Nclouder " 이라는 기회를 소개 시켜주어서
8월 전략주제 #AI(CLOVA)와 #Security라 하여 한번 알아보고, 어떻게 적용되는지 알아보려고 해요.
https://blog.naver.com/n_cloudplatform/223173672657
네이버 클라우드 플랫폼과 인공지능기술 CLOVA
소개
현대에서는 인공지능과 클라우드 컴퓨팅은 중요한부분이고 서로 긴밀하게 연관되어 있다.
AI에 대해서 배우면, 약한인공지능과 강한인공지능에대해서 배우게되는데 CLOVA는
음성인식,자연어 처리, 이미지 분석 등 다양한 분야에서 활용되어서 두가지의 요소들을 포함하고 있는 경우이다.
* CLOVA 가 "CLOud Virtual Assistant"의 약자라는것을 알고 있었나요?
여기서, 클라우드 기반 AI는 인공지능 기술을 클라우드 환경에서 제공하는것을 의미하는데
클라우드 컴퓨팅의 유연성을 활용해서 AI모델의 훈련,배포,실행을 보다 효율적으로 수행할 수 있다.
CLOVA가 하는 주요 역할 몇가지
음성인식
자연어 처리
이미지 분석
감정 분석
머신 러닝 모델 개발 및 배포
음성 합성
AI 기반 서비스 구축
실제로 본인도 집에서 IoT를 이용하는데 AI로 편리하고 재미있는 삶을 살고있다.
"매일 아침 6시 알람맞춰줘"
네이버 클라우드에서 지원하는 AI서비스중 하나를 꼽아서,
어떻게 네이버 클라우드플랫폼과 연계되어 사용되는지 알아보자
https://www.ncloud.com/product/aiService
출처 : https://www.ncloud.com/product/aiService/clovaSpeech
집에서 음성인식 서비스를 쓰는만큼, 어떻게 작동이 되는지 궁금해져서 CLOVA Speech에 대해 상세히 알아보려고 한다.
CLOVA Speech를 활용한 실습
1. CLOVA Speech API 등록 및 설정
Speech 사용가이드 참조 : https://guide-fin.ncloud-docs.com/docs/clovaspeech-clovaspeech
Object Storage를 이용신청
1-1. Bucket 생성 해주자.
1-2. CLOVA Speech 도메인 생성
Free 도메인 유형은 매월 일정 인식시간을 무료로 이용할 수 있다. (1계정당 1개의 Free 도메인만 생성 가능)
이후 우측의 "빌더실행" 버튼으로 CLOVA 빌더를 실행할 수 있다.
이후 CLOVA Speech 엔진에 API작업을 요청할때 시크릿키와 URL이 필요하니 따로 적어두자
* 원본파일이 Object storage에 있을땐 파일의 위치를, 외부 URL일경우 해당 경로의 파일을 받아서 엔진에 요청
2. 음성 명령 인식 애플리케이션 구현 (파이썬 코드 예제)
Python으로 간단한 예제를 만들어보았다.
import requests
import sounddevice as sd
import io
import wave
import json
class ClovaSpeechClient:
# Clova Speech invoke URL
invoke_url = '본인의 Invoke url'
# Clova Speech secret key
secret = '본인의 secret key'
# 로컬의 파일 업로드해서 요청
def req_upload(self, file, completion, callback=None, userdata=None, forbiddens=None, boostings=None,
wordAlignment=True, fullText=True, diarization=None):
request_body = {
'language': 'ko-KR',
'completion': completion,
'callback': callback,
'userdata': userdata,
'wordAlignment': wordAlignment,
'fullText': fullText,
'forbiddens': forbiddens,
'boostings': boostings,
'diarization': diarization,
}
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
if __name__ == '__main__':
# 녹음 설정
fs = 16000 # 샘플링 레이트 (Hz)
duration = 5 # 녹음 길이 (초)
print("녹음시작")
audio_data = sd.rec(int(fs * duration), samplerate=fs, channels=1, dtype="int16")
sd.wait()
print("녹음완료")
# 녹음된 오디오 데이터를 WAV 형식으로 저장
wav_filename = "recorded_audio.wav"
with wave.open(wav_filename, "wb") as wf:
wf.setnchannels(1)
wf.setsampwidth(2)
wf.setframerate(fs)
wf.writeframes(audio_data.tobytes())
# ClovaSpeechClient 인스턴스 생성
clova_client = ClovaSpeechClient()
# 음성 파일 업로드 및 API 호출
response = clova_client.req_upload(file=wav_filename, completion='sync')
# 결과 처리
if response.status_code == 200:
try:
result = response.json()
if "text" in result:
converted_text = result["text"]
print("Converted Text:", converted_text)
else:
print("Conversion failed. Response:", result)
except requests.exceptions.JSONDecodeError:
print("JSON decoding failed. Response content:", response.content)
else:
print("API request failed. Status code:", response.status_code)
코드 진행 결과
API의 응답결과를 잘 받아오는것을 볼 수 있다.
마무리
간단한 실습으로 CLOVA Speech API를 활용하여 다양한 분야에서 사용될 수 있음을 확인했다.
"ex) if 헤이 클로바 if 불꺼줘"같은? ㅋㅋㅋ
음성 명령 및 제어 시스템을 통해 기기를 간편하게 제어하는 것부터 시작해, 더 나아가
의료, 교육, 보안 분야 등에서도 활용할 수 있는 창의적이고 혁신적인 애플리케이션을
개발하고 있는 사례들도 있고. 잠깐 생각해봐도 여러 분야에서 사용될 수 있을 것 같다는 생각이 들었습니다.
CLOVA AI 기술은 CLOVA Speech API와 더불어 다양한 다른 서비스도 제공하고 있는데
한국을 대표하는 기업이 개발한 서비스라서 그런지 한국어 지원에서도 높은 품질을 유지하고 있는 것이 흥미로웠어요.
네이버 클라우드 플랫폼은 기업과 개인 모두에게 인공지능과 클라우드 기술을 활용한 다양한 기회를 제공하는게
신기했고 미래 산업 발전에 기여하는 듯한 느낌을 받았고..
앞으로도 이러한 기술들이 계속해서 발전하여 생활과 사회에 더 큰 가치를 제공할 것으로 기대됩니다
언젠간 저도 이러한 기술들을 기여하는 사람으로 거듭나고 싶네요
'Cloud > NCP' 카테고리의 다른 글
NCA공부 (9) - Storage 서비스 (0) | 2023.08.31 |
---|---|
NCA공부 (8) - Auto Scaling 활용법 및 데모 시연 (2) | 2023.08.28 |
NCA공부 (7) - IPSEC-VPN, NAT Gateway, GRM 서비스 소개 (0) | 2023.08.24 |
NCA공부 (6) - 로드밸런서, DNS, CDN 서비스 생성 및 활용 데모 시연 (0) | 2023.08.23 |
NCA 공부 (5) - 로드밸런서, CDN 서비스 설명 (0) | 2023.08.21 |