Alexa 기술 개발
게시 됨: 2021-07-19이 블로그에서는 AWS에서 Alexa Skills를 생성하는 방법에 대한 간략한 개요를 제공하기 전에 Alexa가 무엇인지, 음성 인식 기술의 중요성에 대해 설명하겠습니다.
알렉사는 무엇입니까?
Alexa는 Amazon에서 제공하는 클라우드 기반 음성 인식 및 응답 서비스입니다. 사용자가 명령을 말하여 장치를 제어하고 정보에 액세스할 수 있습니다.
Amazon의 Echo 및 기타 타사 제조 장치를 비롯한 다양한 장치에서 작동할 수 있습니다.
왜 알렉사인가?
이것은 순전히 내 자신의 친숙함을 기반으로합니다. 이 분야의 다른 주요 플레이어는 Google Assistant와 Apple의 Siri이며 둘 다 매우 유사한 음성 인식 서비스입니다.
왜 보이스인가?
컴퓨터 사용자 인터페이스 디자인은 다양한 진화 단계를 거쳤습니다. 각 단계는 이전 디자인을 개선하기 위해 노력합니다. 일부는 다른 것보다 더 성공적입니다. 접근성의 경우 이것은 특히 중요합니다. 그러나 접근성과 관련된 사람에게 물어보면 많은 사용자의 요구를 충족시키기에 얼마나 부족하다고 말할 것입니다.
컴퓨터 사용자 인터페이스의 (매우) 간략한 역사
배치 컴퓨팅 / 펀치 카드
아주 초기의 "일반 사용" 컴퓨터는 펀치 카드를 만드는 힘든 작업을 필요로 했으며 일반적으로 평균적인 세탁기보다 컴퓨팅 성능이 낮습니다.
명령줄 인터페이스(CLI)
일부 사람들은 여전히 이것을 컴퓨터를 제어하는 *유일한* 방법이라고 생각하지만 일반적으로 이 방법은 수행하려는 일부 작업에는 다소 불편할 수 있다는 데 동의합니다. 이 시점에서 주요 입력 방법은 분명히 키보드였습니다. 여전히 모든 워크스테이션 설정의 필수 요소이기는 하지만(그리고 아마도 오랜 시간 동안 유지될 것입니다), 타이핑을 배우는 것은 사용에 있어 어려운 장벽이 될 수 있습니다.
그래픽 사용자 인터페이스(GUI)
그래픽 사용자 인터페이스의 도래와 함께 Windows 기반 시스템이 도입되었으며, 이는 사용성과 UX 측면에서 큰 도약이었습니다. 물론 이 반짝이는 새 창을 끌기 위해 컴퓨터와 상호 작용하는 매우 직관적인 방법인 마우스가 발명되었습니다.
스마트 폰
이전에는 데스크톱 컴퓨터에 사용되었지만 터치스크린 기술은 스마트폰 및 기타 "스마트" 장치가 등장할 때까지 실제로 등장한 적이 없습니다. 더 이상 키를 크게 두들기지 마십시오!
목소리
음성 조작 기술의 발전은 사용성과 UX 측면에서 또 다른 큰 도약을 이룹니다. 소프트웨어와 상호 작용하기 위해 필요한 유일한 능력은 동일한 언어로 말할 수 있는 것입니다. 인터페이스가 거의 완전히 자연 스럽기 때문에 학습 곡선이 거의 없습니다.
앞 문장에서 "거의"를 사용하는 이유는 무엇입니까? 글쎄, 여전히 원하는 결과를 얻을 수 있는 방식으로 명령을 수행하는 방법을 배워야 한다는 사실이 있습니다.
사람들이 이러한 종류의 인터페이스를 쉽게 사용할 수 있다는 점 외에도 자세 및 눈의 피로와 같은 다른 이점이 있습니다. 이 두 가지 문제는 컴퓨터에서 오랜 시간 작업하는 사람이라면 누구나 의심의 여지가 없을 것입니다.

힘의 균형
수년에 걸쳐 진화한 다양한 유형의 사용자 인터페이스를 볼 때 명백해지는 한 가지는 모두 공통점이 있다는 것입니다. 이 문제를 해결하는 데 많은 자원과 시간을 할애했음에도 불구하고 컴퓨터 작동 방식에 맞추기 위해 어느 정도 인력이 필요합니다. 이러한 의미에서 음성 및 제스처 인식(해결하기 어려운 문제)과 같은 기술은 이러한 균형의 변화를 보여줍니다. 컴퓨터는 인간이 작동하는 방식에 맞게 작동합니다.
음성 인식의 과제
1950년대로 거슬러 올라가면 음성 인식은 매우 어려운 문제 중 하나입니다. 예를 들어 다음 문장을 보자.
장사꾼 : "나는 당신이 찾고있는 것을 요청할 수 있습니까?"
고객 : "촛불 4개."
물론 우리가 이것을 서면 형태로 볼 때 우리는 그 사람이 원하는 것이 무엇인지 정확히 압니다. 그러나 구어체로 들었을 때 그 사람은 실제로 "포크 핸들"을 원했을 수 있습니다!
이것은 상당히 사소하고 있을 법하지 않은 시나리오이지만 이와 같은 모호성은 구어에서 매우 일반적입니다. 컴퓨터가 수행하는 작업의 종류를 고려할 때 의미는 엄청납니다.
그 기간 동안 Hidden Markov 모델과 신경망이 가장 성공적인 것으로 많은 방법이 활용되었습니다. 보다 최근에는 딥 러닝이 활용되었으며 이것이 현재 사용 가능한 강력한 솔루션을 제공한 것입니다.
필수 단계 비교
"노력을 대신할 수 있는 것은 없습니다." ~ 토마스 A. 에디슨
… 아니면 거기에 있습니까? 비교적 현대적인 기술에도 추가 단계의 오버헤드가 수반되므로 우리는 그 기술에 대해 작업하고 그 반대는 아닙니다.
다음은 우리가 깨닫지 못한 채 얼마나 많은 작업을 수행하는지 설명하기 위해 "알고리즘적으로" 설정된 몇 가지 기본 작업입니다.

TV 켜기/끄기:
전통적인 방법
- 리모컨 찾기
- 원격 픽업
- 올바른 버튼 찾기
- 버튼을 누르시오
음성 방식
- "알렉사, TV 켜고 끄기"
할 일 목록에 항목 추가:
전통적인 방법
- 전화를 찾아서 (수신)
- 전화 잠금 해제
- 앱 찾기
- 앱 열기
음성 방식
- "Alexa, 내 할일 목록에 "빵 구입" 추가"
보시다시피 음성으로 장치를 제어하는 기능은 훨씬 적은 단계가 필요합니다.
측정항목
다음은 음성 활성화 서비스의 일반적인 상태를 보여주는 몇 가지 그래프입니다. 앱 스토어 다운로드에 비해 숫자는 적지만 이 분야는 빠르게 성장하고 있습니다.



크레딧: https://www.voicebot.ai/amazon-echo-alexa-stats
Amazon Skills API 소개
Amazon Alexa Skills API는 디바이스를 통해 수신된 음성 명령을 수신, 인식, 처리 및 응답하는 프레임워크를 제공합니다.
일반적인 단계는 다음과 같습니다.
필수 단계 개요
기술 이름 지정
사용자의 명령에 응답할 수 있도록 Alexa를 활성화하는 데 사용할 스킬의 호출 이름을 선택합니다.
의도 정의
Amazon Skills에서 "의도" 또는 "의도"는 사용자의 명령과 관련된 요청 또는 작업입니다.
예를 들어, "Alexa, 1729년 이 날에 무슨 일이?"라는 문장에서 "1729년 이 날에 무슨 일이?"라는 명령이 있습니다. 앱이 답변을 가져올 올바른 키워드를 제공하여 사전 정의된 인텐트에 매핑됩니다.
기술을 보다 유연하게 만들기 위해 본질적으로 특정 유형의 데이터에 대한 자리 표시자인 "슬롯"이라는 것을 사용합니다.
모델 구축
여기에서는 추가 정보 및 가능한 응답 패턴에 대한 프롬프트를 포함하여 Alexa와 상호 작용하는 전체 구조를 설정합니다.
끝점 정의
이것은 애플리케이션의 논리를 처리할 코드의 물리적 위치를 가리킵니다. 인터넷 어디에서나 보관할 수 있지만 가장 간단한 옵션은 기술에 따라 원격으로 호출할 수 있는 AWS Lambda를 생성하는 것입니다.
Lambda 함수 생성
AWS에서 이것을 생성하는 것은 매우 간단합니다. 약간의 설정과 매핑을 수행해야 하지만 필요한 것이 무엇인지 잘 알 수 있는 청사진이 제공됩니다.
Alexa Skill에서 명령을 수신하면 여기에 있는 코드가 올바른 응답을 처리하고 추적해야 하는 모든 모델을 업데이트합니다.
결론
이것은 음성 활성화 서비스가 하는 일과 Alexa Skills Kit를 사용하여 서비스를 생성하는 방법에 대한 (매우) 간단한 개요였습니다. Alexa 기술 개발에 대한 다음 게시물에서는 실제로 작은 기술을 만들어 Amazon Skills에 게시하는 방법을 살펴보겠습니다! 또는 웹 디자인 및 개발에 대한 도움이 필요하면 지금 저희에게 연락하십시오.
도움이 필요하시면 주저하지 마시고 저희에게 연락해 주십시오.
