Nothing Special   »   [go: up one dir, main page]

KR102115926B1 - 애플리케이션의 음성 제어 시스템 및 애플리케이션의 음성 제어 방법 - Google Patents

애플리케이션의 음성 제어 시스템 및 애플리케이션의 음성 제어 방법 Download PDF

Info

Publication number
KR102115926B1
KR102115926B1 KR1020130101666A KR20130101666A KR102115926B1 KR 102115926 B1 KR102115926 B1 KR 102115926B1 KR 1020130101666 A KR1020130101666 A KR 1020130101666A KR 20130101666 A KR20130101666 A KR 20130101666A KR 102115926 B1 KR102115926 B1 KR 102115926B1
Authority
KR
South Korea
Prior art keywords
application
voice
command
control
type
Prior art date
Application number
KR1020130101666A
Other languages
English (en)
Other versions
KR20140113263A (ko
Inventor
앤슬리 정
던칸 웡
정호석
니쿤 쿤금주른
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20140113263A publication Critical patent/KR20140113263A/ko
Application granted granted Critical
Publication of KR102115926B1 publication Critical patent/KR102115926B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)

Abstract

애플리케이션 음성 제어를 위한 시스템은 음성 신호를 수신하고 음성 신호를 단어들로 변환하는 전자 장치를 포함한다. 음성 네비게이션 모듈은 애플리케이션을 분석하고 애플리케이션 타입과 가능한 기능들을 판단한다. 명령 등록 모듈은 판단된 애플리케이션 타입과 가능한 기능들을 기반으로 명령을 등록한다. 명령은 관련된 음성과 매치될 때, 애플리케이션을 제어한다. 음성 명령 해석 모듈은 단어들을 수신하고, 명령들을 해석된 음성과 매치하기 위해 음성 모드를 감지하고, 그리고 애플리케이션을 네비게이팅하고 제어하기 위해 매치된 명령들을 실행한다.

Description

애플리케이션의 음성 제어 시스템 및 애플리케이션의 음성 제어 방법{VOICE CONTROLLING SYSTEM OF APPLICATIONS AND METHOD THEREOF}
하나 혹은 그 이상의 실시 예들이 일반적으로 애플리케이션들과 관련되어 있고, 특별히 전자 장치에서 애플리케이션의 음성 제어를 위한 네비게이션 프레임워크에 대한 것이다.
텔레비전 애플리케이션들은 HTML, 자바스크립트, 및 플래시 같은 표준 웹 기술들을 사용해서 개발될지 모른다. 이런 웹 기반 텔레비전 애플리케이션들의 효용은 대개 방향적 단계적 입력 (즉, 상, 하, 좌, 우)을 가지는 리모컨과 방향적 입력을 사용해 네비게이팅(navigating)되는 클릭형 선택을 사용하는 것에만 제한되었다.
본 발명은 상술한 문제점에 기반한 것으로, 본 발명의 목적은, 전자장치에서 음성 제어 애플리케이션을 위한 프레임워크를 제공함에 있다.
한 실시 예에서, 애플리케이션들의 음성 제어를 위한 한 시스템이 제공된다. 한 실시 예는 음성 신호를 수신하고 그 음성 신호를 단어들로 변환하는 전자 장치를 포함하는 한 시스템을 포함한다. 한 실시 예에서, 음성 네비게이션 모듈(voice navigation module)은 애플리케이션을 분석하고 애플리케이션 타입과 가능한 기능들(enabled features)을 판단한다. 한 실시 예에서, 명령 등록 모듈은 그 판단된 애플리케이션 타입과 가능한 기능들에 근거해 명령들을 등록한다. 명령들은 관련된 음성들과 매치될 때 애플리케이션을 제어한다. 한 실시 예에서, 음성 명령 해석 모듈은 단어들을 수신하고, 명령들을 해석된 음성과 매치시키기 위해 음성 모드를 감지하고, 애플리케이션을 네비게이팅(navigating through)하고 제어하기 위해 매치된 명령들을 실행한다.
한 실시 예는 애플리케이션의 음성 제어 방법을 제공한다. 한 실시 예에서, 그 방법은 애플리케이션 타입과 가능한 기능들을 감지하기 위해 애플리케이션 분석하는 단계를 포함한다. 한 실시 예에서, 감지된 애플리케이션 타입과 가능한 기능들에 기반한 명령들은 등록된다. 관련된 음성과 매치될 때 명령들은 애플리케이션을 제어한다. 한 실시 예에서, 음성으로부터 변환된 단어들은 수신되고, 명령들을 해석된 음성과 매치하기 위한 음성 모드가 감지된다. 애플리케이션을 네비게이팅하고 제어하기 위한 매치된 명령들은 실행된다.
또 다른 실시 예는 컴퓨터에서 실행될 때 한 방법을 수행하는 인스트럭션들(instructions)을 갖는 비일시적 컴퓨터 판독가능 매체를 제공하며 다음을 포함한다:
애플리케이션 타입과 가능한 기능들을 감지하기 위한 애플리케이션 분석하는 단계. 한 실시 예에서, 명령들은 감지된 애플리케이션 타입과 가능한 기능들에 기반해 등록된다. 명령들은 관련 음성들과 매치될 때 애플리케이션을 제어한다. 한 실시 예에서, 음성으로부터 변환된 단어들은 수신되고, 명령들을 해석된 음성들과 매치하기 위한 음성 모드는 감지된다. 애플리케이션을 네비게이팅하고 제어하기 위한 매치된 명령들은 실행된다.
이러한 그리고 다른 측면들과 하나 혹은 그 이상의 실시 예들의 이점들은 다음 상세한 설명으로부터 명백해질 것인데, 실시 예들의 원리들의 예시 방법에 의해 도시된 도면들과 연관될 때 그렇다.
실시 예들의 특성과 이점들을 더욱 잘 이해하기 위해, 선호되는 사용모드뿐만 아니라 참고적인 사항은, 동반되는 도면과 함께 파악되는 상세한 설명으로서 주어져야만 한다.
도면 1은 한 실시 예에 따른 통신 시스템의 개념도를 보여준다.
도면 2는 한 실시 예에 따라 한 전자 장치에서 애플리케이션들의 음성 제어를 위한 네비게이션 프레임워크의 프레임워크 시스템 블록도를 보여준다.
도면 3은 한 실시 예에 따라, 한 전자 장치에서 애플리케이션들의 음성 제어를 위한 네비게이션 프레임워크 모듈을 보여준다.
도면 4는 한 실시 예에 따라, 한 전자 장치에서 애플리케이션들의 음성 제어를 위한 네비게이션 프레임워크 예시 흐름도를 보여준다.
도면 5는 한 실시 예에 따라, 한 전자 장치에서 애플리케이션들의 음성 제어를 위한 네비게이션 프레임워크 예시 시나리오를 보여준다.
도면 6은 한 실시 예에 따라, 한 전자 장치에서 애플리케이션들의 음성 제어를 위한 네비게이션 프레임워크의 또 다른 예시 시나리오를 보여준다.
도면 7은 한 실시 예에 따라, 한 전자 장치에서 애플리케이션들의 음성 제어를 위한 네비게이션 프레임워크를 위해 원격 제어 사용과 음성 제어 사용의 예시 시나리오를 보여준다.
도면 8은 한 실시 예에 따라, 한 전자 장치에서 애플리케이션들의 음성 제어를 위한 네비게이션 프레임워크를 위해 원격 제어 사용과 음성 제어 사용의 또 다른 예시 시나리오를 보여준다.
도면 9는 한 실시 예에 따라, 한 전자 장치에서 애플리케이션들의 음성 제어를 위한 네비게이션 프레임워크를 위해 세트로 조직된 명령 페어들(command pairs)을 위한 예시 다차원 데이터 구조를 보여준다.
도면 10은 한 실시 예에 따라, 한 전자 장치에서 애플리케이션들의 음성 제어를 위한 네비게이션 프레임워크를 위해 매칭하는 일상 표현 예시 표를 보여준다.
도면 11은 한 실시 예에 따라, 한 전자 장치에서 애플리케이션들의 음성 제어를 위한 네비게이션 프레임워크를 위해 발음 매칭 예시 표를 보여준다.
도면 12는 한 실시 예에 따라, 한 전자 장치에서 애플리케이션들의 음성 제어를 위한 네비게이션 프레임워크를 위해 원격 제어 에뮬레이션을 보여주는 예시를 보여준다.
도면 13은 한 실시 예에 따라, 한 전자 장치에서 애플리케이션들의 음성 제어를 위한 네비게이션 프레임워크를 위해 문서 객체 모델(DOM) 분석을 경유하는 자동화된 명령 등록을 보여주는 예시를 보여준다.
도면 14는 한 실시 예에 따라, 한 전자 장치에서 애플리케이션들의 음성 제어를 위한 네비게이션 프레임워크를 위해 예시 플래시 어댑터 모듈을 보여준다.
도면 15는 한 실시 예에 따라, 한 전자 장치에서 애플리케이션들의 음성 제어를 위한 네비게이션 프레임워크 플래시 모듈의 예시 흐름이다.
다음 설명은 실시 예들의 일반적 원리들을 도시하기 위한 목적을 위해 만들어졌고, 여기서 주장되는 발명의 개념들을 제한한다는 것을 의미하지 않는다. 더욱이, 여기서 설명되는 특별한 특징들은 다양하고 가능한 각각의 결합과 변형들에서 다른 설명된 특징들과 결합되어 사용될 수 있다. 여기서 상세하게 정의되지 않는다면, 모든 용어들은 사전이나 논문들에서 정의되거나 통상의 기술자들에 의해 이해되는 의미들뿐 아니라 명세서로부터 암시되는 의미들을 포함해 넓은 가능성의 해석적 의미를 가질 것이다.
하나 혹은 그 이상의 실시예들은 일반적으로 한 전자 장치(예를 들면, 텔레비전 장치)와 함께 사용될지 모르는 애플리케이션들(예를 들면, 웹 애플리케이션들)의 음성 제어와 관련된다. 한 실시 예에서, 음성 네비게이션 모듈은 애플리케이션을 분석하고 애플리케이션 타입과 가능한 기능들을 판단한다. 한 실시 예에서, 명령 등록 모듈은 판단된 애플리케이션 타입과 가능한 기능들에 근거해 명령들을 등록한다. 명령들은 연관 음성과 매치될 때 애플리케이션을 제어한다. 한 실시 예에서, 음성 명령 해석 모듈은 단어들을 수신하고, 명령들을 해석된 음성과 매치하기 위한 음성 모드를 감지하고, 애플리케이션을 네비게이팅하고 제어하기 위해 매치된 명령들을 실행한다.
한 실시 예에서, 전자 장치는 무선 통신 링크 같은 통신 링크에서 데이터 통신을 하게 하는 전자 장치를 포함한다. 그런 전자 장치의 예들은 고정된 전자 장치들, 모바일 전화 장치, 모바일 태블릿 장치 등을 포함한다. 고정된 전자 장치의 예들은 텔레비전, 프로젝터 시스템 등을 포함할지 모른다. 한 실시 예에서, 전자 장치를 위한 애플리케이션의 음성 제어를 위해 한 방법이 제공된다. 한 실시 예는 애플리케이션 타입과 가능한 기능들을 감지하기 위해 애플리케이션을 분석하는 것을 포함한다. 한 실시 예에서, 감지된 애플리케이션 타입과 가능한 기능들에 기반한 명령들은 등록된다. 명령들은 연관 음성과 매치될 때 애플리케이션을 제어한다. 한 실시 예에서, 음성으로부터 변환된 단어들이 수신되고, 명령들을 해석된 음성과 매치하기 위한 음성 모드는 감지된다. 애플리케이션을 네비게이팅하고 제어하기 위한 매치된 명령들은 실행된다.
웹 애플리케이션들은 화면 위의 어떤 객체이라도 언제든 클릭될지 모르고 음성과 제스처 같은 “클릭”형 제어를 위해 매우 적합하다는 것을 가정한다. 따라서, 상이한 버튼들 사이의 좌표 개념이 없기 때문에, 웹 애플리케이션 스타일 개발은 방향적 제어에 있어서 매우 적합하지 않다. 텔레비전에서의 애플리케이션들은, 복잡한 음성/제스처 네비게이션을 위해 변환하는 것을 어렵게 하는 “웹 애플리케이션 스타일” 대신에, 전형적으로 “원격 제어 스타일”(예를 들면, 직선 이동)에서 개발된다.
한 실시 예에서, 텔레비전 쪽(예를 들면, 클라이언트 쪽(client-side)) 프레임워크는 텔레비전 전자 장치에서 웹 애플리케이션을 네비게이팅하기 위해 음성 인식 기술을 사용한다. 한 실시 예에서, 프레임워크는 특정 기술들(예를 들면, 플래시)과 특정 특징들(예를 들면, 원격 제어 에뮬레이션)을 차지하는 모듈들뿐 아니라 코어 라이브러리를 포함한다. 한 실시 예에서, 프레임워크는 웹형 애플리케이션에 있어서, 다수의 객체를 검토하거나 한 객체를 검색하기 위한 웹형 애플리케이션(예를 들면, HTML/자바스크립트, 플래시/에어 등)들을 위해 하나의 인식 명령을 제공한다. 한 실시 예에서, 개발자 노력은 명령과 네비게이션을 위한 음성 제어를 위해 제공하도록 프레임워크를 사용하는 것에 있어 최소화된다. 한 실시 예에서, 특징들은 조건적 의존성 주입, 자동 명령 등록, 및 개발자들을 돕기 위한 스마트 디폴트 같은 프레임워크에 포함된다.
한 실시 예에서, 애플리케이션들은 약간 추가된 별도 코드 라인들(extra lines of code) 를 갖는 음성 원격 제어가 제공되는 원격제어 스타일 제어를 위해 디자인 된다. 한 실시 예에서, 제어를 위한 원격과 커서 스타일 사이의 하이브리드 애플리케이션들을 위해, 프레임워크는 클릭할 수 있는 객체들(예를 들면, 화면 객체들)을 등록하는 것을 위해 음성 명령들을 제공한다. 한 실시 예에서, 커서와, 이벤트 통제 스타일 제어를 완전히 사용하는 애플리케이션들을 위해, 프레임워크는 기존의 애플리케이션 코드에 대한 최소의 수정을 음성과 제스처 제어에 제공한다.
도면 1은 한 실시 예에 따른 통신 시스템의 개념도이다. 통신 시스템(10)은 아웃고잉 통신 동작(전송 장치(12))과 통신 네트워크 (110)를 시작하는 통신 장치를 포함할지 모르는데, 전송 장치(12)는 통신 네트워크(110) 내에서 다른 통신 장치들과 통신 동작을 시작하고 수행하도록 사용할지 모른다. 예를 들면, 통신 시스템(10)은 전송 장치 (12)(수신 장치 (11))로부터 통신 동작을 수신하는 통신 장치를 포함할지 모른다. 비록 통신 시스템(10)이 여러 전송 장치(12)와 수신 장치 (11)를 포함할지 모르지만, 도면을 단순화하기 위해 각각의 하나만이 도면 1에서 보여진다.
통신 네트워크를 만들기 위해 작동하는 어떤 적당한 회로, 장치, 시스템 혹은 이런 결합(예를 들면, 통신탑과 통신서버를 포함하는 무선 통신 기반시설)이든지 통신 네트워크(110)를 만들기 위해 사용될지 모른다. 통신 네트워크(110)는 적당한 통신 프로토콜을 사용하는 통신을 제공하는 능력을 갖출지 모른다. 일부 실시 예들에서, 통신 네트워크(110)는 예를 들면, 기존의 전화선, 케이블 텔레비전, 와이파이(예를 들면, 802.11 프로토콜), 블루투스, 하이프리퀀시 시스템(예를 들면, 900 MHz, 2.4 GHz, 및 5.6 GHz 통신 시스템), 적외선, 다른 비교적 로컬화된 무선 통신 프로토콜, 혹은 그 결합을 지원할지 모른다. 일부 실시 예들에서, 통신 네트워크 (110)는 무선, 휴대폰, 및 개인 이메일 장치들(예를 들면, 블랙베리(상표명))에 의해 사용되는 프로토콜들을 지원할지 모른다. 그런 프로토콜들은 예를 들면, GSM, GSM plus EDGE, CDMA, quadband, 및 다른 휴대폰 프로토콜들을 포함할 수 있다. 또 다른 예에서, 원거리 통신 프로토콜은 와이파이와 VoIP나 LAN을 사용해서 전화를 하거나 수신하기 위한 프로토콜들을 포함할 수 있다. 전송 장치(12)와 수신 장치(11)는, 통신 네트워크(110) 내에 위치할 때, 통로(path)(13) 같은 양방향 통신로를 통해 통신할지 모른다. 전송 장치(12)와 수신 장치(11)는 통신 동작을 시작하고 시작된 통신 동작을 수신하는 능력을 갖추었을지 모른다.
전송 장치(12)와 수신 장치(11)는 통신 동작들을 보내고 수신하기 위한 적당한 어떤 장치든지 포함할지 모른다. 예를 들면, 전송 장치 (12)와 수신 장치(11)는 텔레비전 시스템, 음성 영상 능력을 갖춘 장치, 태블릿, 및 무선으로 혹은 유선 통로를 경유해(예를 들면, 기존의 전화선들을 사용해서) 통신할 수 있는 다른 어떤 장치(액세서리 시스템을 가능하게 하는 무선의 도움을 받고 혹은 받지 않고)라도 포함할지 모른다. 통신 동작들은 예를 들면, 음성 통신(예를 들면, 전화), 데이터 통신(예를 들면, 이메일, 텍스트 메시지, 미디어 메시지), 혹은 이런 결합(예를 들면, 영상 전화)을 포함하는 통신들의 적당한 형태이든지 포함할지 모른다.
도면 2는 한 실시 예에 따라, 전자 장치(120)를 위한 애플리케이션들의 음성 제어를 위해 사용될지 모르는 프레임워크 시스템 (100)의 기능적 블록도를 보여준다. 전송 장치(12)와 수신 장치 (11)는 전자 장치(120)의 특징들의 일부 혹은 모든 것을 포함할지 모른다. 한 실시 예에서, 전자 장치(120)는 디스플레이 장치(121), 마이크로폰(122), 음성 출력(123), 입력 매커니즘(124), 통신 회로(125), 제어 회로(126), 음성 네비게이션 프레임워크 모듈(135), 및 다른 적당한 구성물들을 포함할지 모른다. 한 실시 예에서, 애플리케이션(1-N 127)은 제공자들(예를 들면, 제 3자 제공자들, 개발자들 등)에 의해 제공받고 N이 1과 같거나 1보다 큰 양의 정수인, 클라우드 혹은 서버(130), 통신 네트워크(110) 등으로부터 획득될지 모른다.
한 실시 예에서, 음성 출력(123), 디스플레이 장치(121), 입력 매커니즘 (124), 통신 회로(125) 및 마이크로폰(122)에 의해 사용되는 모든 애플리케이션들은 제어 회로(126)에 의해 서로 연결되고 관리될지 모른다. 한 예에서, 음악을 다른 튜닝 장치들로 전송하는 능력을 갖춘 휴대용 뮤직 플레이어는 전자 장치(120)로 결합될지 모른다.
한 실시 예에서, 음성 출력(123)은 전자 장치(120)의 사용자에게 음성을 제공하기 위해 적당한 음성 컴포넌트 포함할지 모른다. 예를 들면, 음성 출력(123)은 전자 장치(120)에 장착된 하나 혹은 그 이상의 스피커들(예를 들면, 모노 혹은 스테레오 스피커들)을 포함할지 모른다. 일부 실시 예들에서, 음성 출력(123)은 전자 장치(120)와 원격으로 연결되는 음성 구성물을 포함할지 모른다. 예를 들면, 음성 출력(123)은 유선(예를 들면, 전자 장치(120)와 잭을 가지고 연결되는) 혹은 무선(예를 들면, 블루투스 헤드폰 혹은 블루투스 헤드셋)으로 통신 장치와 연결될지 모르는 헤드셋, 헤드폰, 혹은 이어버드를 포함할지 모른다.
한 실시 예에서, 디스플레이 장치(121)는 사용자에게 보여질 수 있는 디스플레이를 제공하기 위한 적당한 화면 혹은 프로젝션 시스템을 포함할지 모른다. 예를 들면, 디스플레이 장치(121)는 전자 장치(120)에 결합되는 화면(예를 들면, LCD 화면)을 포함할지 모른다. 또 다른 예에서, 디스플레이 장치(121)는 전자 장치(120)(예를 들면, 영상 프로젝터)로부터 떨어진 표면에 컨텐츠 디스플레이를 제공하기 위한 이동 가능한 디스플레이 혹은 프로젝팅 시스템을 포함할지 모른다. 디스플레이 장치(121)는 제어 회로 (126)의 지시에 의해 컨텐츠(예를 들면, 통신 동작에 관련된 정보 혹은 이용가능한 미디어 선택에 관련된 정보)를 디스플레이하기 위해 작동할지 모른다.
한 실시 예에서, 입력 매커니즘(124)은 사용자 입력 혹은 지시사항을 전자 장치(120)로 제공하기 위한 적당한 매커니즘 혹은 사용자 인터페이스가 될지 모른다. 입력 매커니즘(124)은 버튼, 키패드, 다이얼, 클릭 휠, 혹은 터치 스크린 같은 다양한 형태를 취할지 모른다. 입력 매커니즘(124)은 멀티터치 스크린을 포함할지 모른다.
한 실시 예에서, 통신 회로(125)는 통신 네트워크(예를 들면, 통신 네트워크(110), 도면 1)에 연결되기 위해, 그리고 전자 장치 (120)에서 통신 네트워크 내 다른 장치들로 통신 동작들과 미디어를 전송하기 위해 작동하는 적당한 통신 회로가 될지 모른다. 통신 회로(125)는 예를 들면, 와이파이(예를 들면, 802.11 프로토콜), 블루투스, 하이프리퀀시 시스템(예를 들면, 900 MHz, 2.4 GHz, 및 5.6 GHz 통신 시스템), 적외선, GSM, GSM plus EDGE, CDMA, 쿼드밴드, 및 다른 휴대폰 프로토콜들, VoIP, 혹은 다른 적당한 프로토콜 같은 적당한 통신 프로토콜을 사용하는 통신 네트워크와 결합되도록 작동할지 모른다.
일부 실시 예들에서, 통신 회로(125)는 적당한 통신 프로토콜을 사용해 통신 네트워크를 만들도록 작동할지 모른다. 예를 들면, 통신 회로(125)는 다른 통신 장치들과 연결하기 위해 단거리 통신 프로토콜을 사용하는 단거리 통신 네트워크를 만들지 모른다. 예를 들면, 통신 회로(125)는 전자 장치(120)를 블루투스 헤드셋과 연결하기 위해 블루투스 프로토콜을 사용하는 로컬 통신 네트워크를 만들도록 작동할지 모른다.
한 실시 예에서, 제어 회로(126)는 전자 장치(120)의 동작과 수행을 제어하기 위해 작동할지 모른다. 제어 회로(126)는 예를 들면, 프로세서, 버스(예를 들면, 지시사항들을 전자 장치(120)의 다른 구성물들로 보내기 위한), 메모리, 스토리지, 혹은 전자 장치 (120)의 동작들을 제어하기 위한 다른 적당한 구성물을 포함할지 모른다. 일부 실시 예들에서, 프로세서는 디스플레이를 움직이고 사용자 인터페이스로부터 수신된 입력을 처리할지 모른다. 메모리와 스토리지는 예를 들면, 캐시(cache), 플래시 메모리, ROM, 그리고/혹은 RAM을 포함할지 모른다. 일부 실시 예에서, 메모리는 상세하게는 펌웨어(예를 들면, 작동 시스템, 사용자 인터페이스 기능들, 그리고 프로세서 기능들 같은 장치 애플리케이션들을 위한)를 저장하도록 사용될지 모른다. 일부 실시 예들에서, 메모리는 전자 장치 (120)가 통신 동작들(예를 들면, 통신 동작들과 관련된 연락처 정보 저장하기 혹은 다른 미디어 타입들 그리고 사용자에 의해 선택된 미디어 객체들과 관련된 정보 저장하기)을 수행하게 하는 다른 장치들과 관련된 정보를 저장하도록 작동할지 모른다.
한 실시 예에서, 제어 회로(126)는 전자 장치(120)에서 실행되는 하나 혹은 그 이상의 애플리케이션들의 동작들을 수행하도록 작동할지 모른다. 어떤 적당한 수와 타입의 애플리케이션이든지 실행될지 모른다. 비록 다음 논의는 다른 애플리케이션들을 열거할 것이지만, 애플리케이션들의 일부 혹은 모두가 하나 혹은 그 이상의 애플리케이션들과 결합될지 모른다는 것이 이해될 것이다. 예를 들면, 전자 장치(120)는 자동 음성 인식(ASR) 애플리케이션, 대화 애플리케이션, 지도 애플리케이션, 미디어 애플리케이션(예를 들면, 퀵타임, MobileMusic.app, 혹은 MobileVideo.app)을 포함할지 모른다. 일부 실시 예들에서, 전자 장치(120)는 통신 동작들을 수행하도록 작동하는 하나 혹은 여러 개의 애플리케이션을 포함할지 모른다. 예를 들면, 전자 장치 (120)는 메시지 애플리케이션, 메일 애플리케이션, 보이스메일 애플리케이션, 인스턴트 메시지 애플리케이션(예를 들면, 채팅을 위한), 영상회의 애플리케이션, 팩스 애플리케이션, 혹은 적당한 통신 동작을 수행하기 위한 다른 적당한 애플리케이션을 포함할지 모른다.
일부 실시 예들에서, 전자 장치(120)는 마이크로폰(122)을 포함할지 모른다. 예를 들면, 전자 장치(120)는 통신 동작 동안, 혹은 통신 동작을 설정하는 수단으로서, 혹은 물리적 사용자 인터페이스를 사용하는 것의 대체안으로서 동안, 사용자가 음성 제어와 애플리케이션 (1-N 127)의 네비게이션을 위해 음성(예를 들면, 목소리 음성)을 전송하게 하도록 마이크로폰(122)을 포함할지 모른다. 마이크로폰 (122)은 전자 장치(120)에 결합될지 모르고 혹은 전자 장치(120)와 원격으로 연결될지 모른다. 예를 들면, 마이크로폰(122)은 유선 헤드폰에서 결합될지 모르고, 마이크로폰(122)은 무선 헤드셋과 결합될지 모르고, 원격 제어 장치 등에 결합될지 모른다.
한 실시 예에서, 전자 장치(120)는 통신 동작을 수행하기에 적당한 다른 구성물을 포함할지 모른다. 예를 들면, 전자 장치(120)는 전력 공급, 호스트 장치와 연결되기 위한 포트나 인터페이스, 2차적 입력 매커니즘(예를 들면, ON/OFF 스위치), 혹은 다른 적당한 구성물을 포함할지 모른다.
한 실시 예에서, 음성 네비게이션 프레임워크 모듈(135)은 애플리케이션 음성 제어를 위한 어떤 수단이든지 포함하지 않는 애플리케이션을 위한 음성 명령 제어를 제공한다. 한 실시 예에서, 원격 제어 스타일 제어(예를 들면, 단독 입력 누르기, 상, 하, 좌, 우 같은 단계적 이동 네비게이션)를 위해 디자인 된 애플리케이션들을 위해, 음성 네비게이션 프레임워크 모듈(135)은 원격 제어의 음성 명령 제어를 제공한다. 한 실시 예에서, 자바스크립트 라이브러리를 위해, 음성 네비게이션 프레임워크 모듈(135)은 음성명령들을 원격 제어 명령들로 매핑하는 이벤트들을 생성한다. 또 다른 실시 예에서, 음성 네비게이션 프레임워크 모듈(135)은 모든 애플리케이션들이 config.xml 파일 같은 파일에서 파라미터를 가지고 기본 음성 제어를 하도록 펌웨어를 수정한다.
한 실시 예에서, 원격 제어와 커서 스타일 제어(예를 들면, 이동과 클릭) 사이의 하이브리드인 애플리케이션들을 위해, 음성 네비게이션 프레임워크 모듈(135)은 화면에서 클릭 가능한 객체들을 등록하기 위한 프레임워크를 제공한다. 한 실시 예에서, 한 객체가 한 애플리케이션에서 전형적으로 “클릭”될 때 같은 방법으로 음성/제스처를 위한 매커니즘은 작동하며, 그것을 다루기 위해 한개의 함수, 즉 function()이 불러진다. 한 실시 예에서, 음성 네비게이션 프레임워크 모듈(135)은 화면에 클릭 가능한 모든 객체들을 등록하도록 개발자를 위한 단독 라이브러리를 제공한다. 한 실시 예에서, 라이브러리는 음성, 제스처, 그리고 원격(예를 들면, HTML/JS 를 위한 음성 네비 라이브러리와 플래시/에어를 위한 음성 네비 라이브러리)을 위한 구현(implementation)들을 제공할지 모른다. 일부 실시 예들에서. 애플리케이션(예를 들면, TV를 위한 웹 애플리케이션) 개발자는 그들이 일단 애플리케이션 코드를 제공하면, 모든 디자인된 물리적 제어들이 자동적으로 작동할 것이기 때문에, 멀티방식 제어에 대해 걱정할 필요가 없다.
한 실시 예에서, 음성 네비게이션 프레임워크 모듈(135)은 기존의 소프트웨어 개발 키트(SDK)의 위에 추가적 특징들을 제공한다. 개발자들이 명령들을 작업하도록 하게 하고 가능한 명령 목록을 통해 시각적으로 순환하고, 다수의 명령들을 명확히(disambiguation) 하도록 한다. 한 실시 예에서, 전체적으로, 커서 + 이벤트 처리 스타일(cursor + event handler style) 제어를 사용하도록 디자인된 애플리케이션들을 위해, 음성 네비게이션 프레임워크 모듈(135)은 기존 애플리케이션 코드를 최소한 수정하는 전체 음성과 제스처 제어를 제공한다. 한 실시 예에서, 개발자들에게 콜백(callbacks)을 등록하도록 요구하는 대신에, 음성 네비게이션 프레임워크 모듈(135)은 자동적으로 콜백을 등록하도록 DOM 을 분석하는 것을 제공한다. 한 실시 예에서, 음성 네비게이션 프레임워크 모듈(135)은 개발자들이 웹 애플리케이션을 위한 혁신적 음성 네비게이션 솔루션을 개발하도록 이점을 제공한다.
음성 네비게이션 프레임워크 모듈 (135)은 강력한 특징들을 가지며 배우기 쉽고, 개발자들이 채택하도록 독려해야 하는 프레임워크를 제공한다. 실시 예에서, 음성 네비게이션 프레임워크 모듈(135)은 개발자들이 어떤 단계의 음성 네비게이션이 TV 애플리케이션을 위해 적당한지 결정하고 그리고 그 선택된 단계에 의존하도록 하게 하는데, 그 애플리케이션은 아주 작은 수정이나 상당한 수정을 요구할지 모른다. 한 실시 예에서, 원격 제어 에뮬레이션만을 위해, 기존 애플리케이션은 기존 코드(예를 들면, 판도라, Vudu, NHL 앱 등을 가능하게 하는 음성)에 다른 변화를 주지 않고, 음성 네비게이션 라이브러리의 한줄 추가만 요구할지 모른다. 한 실시 예에서, 음성 네비게이션 프레임워크 모듈(135)은 개발자들이 음성 네비게이션 라이브러리에 원하는 음성 명령들을 등록하도록 하게 한다(예를 들면, Comcast Xfinity 앱을 가능하게 하는 음성).
도면 3은 한 실시 예에 따라, 한 전자 장치(예를 들면, 전자 장치 (120), 도면 1)에서의 음성 제어 애플리케이션을 위한 음성 네비게이션 프레임워크 모듈(135)을 보여준다. 한 실시 예에서, 음성 네비게이션 프레임워크 모듈 (135)은 명령 등록 모듈(310), 자유 음성 명령 해석 모듈(320), DOM 분석 모듈(330), 원격 에뮬레이션 모듈(340), 의존성 주입(Dependency Injection) 모듈(350), 그리고 플래시 어댑터 모듈(360)을 포함한다. 한 실시 예에서, 명령 등록 모듈(310)은 자유 음성 모듈(311), 그리고 로컬 사전 모듈(312)을 포함한다. 한 실시 예에서, 자유 음성 명령 해석 모듈(320)은 Regex(정규 표현식) 라우팅 모듈(321) 그리고 발음 매칭 모듈(322)을 포함한다.
도면 4는 한 실시 예에 따라, 음성 네비게이션 프레임워크 모듈(135)의 모듈들이 어떻게 다른 것들과 관련되어 사용되는지를 보여주기 위한 예시 흐름도(400)를 보여준다. 한 실시 예에서, 블록 401에서, 사용자/개발자는 한 애플리케이션에서 음성과 네비게이션 라이브러리(예를 들면, 보이스네비 라이브러리(voicenavi library))를 포함시킨다. 블록 402에서, 음성 네비게이션 프레임워크 모듈(135)은 애플리케이션이 플래시 타입의 애플리케이션인지 아닌지를 판단한다. 만약 블록 402에서 애플리케이션이 플래시 타입 애플리케이션이라고 판단되면, 흐름도 400은 플래시 어댑터 모듈(360)이 프레임워크를 액션스크립트 라이브러리로서 액션스크립트 개발자들에게 접근가능하게 되도록 만들기 위해 사용되는 곳인 블록 403으로 계속 이어진다. 한 실시 예에서, 싱글 라인 액션스크립트 콜(single line actionscript call)을 한 후에, 플래시 어댑터 모듈(360)은 플래시 플레이어에 의해 제공되는 외부인터페이스 API(Application programming interface)를 통해 애플리케이션의 음성 제어를 위한 프레임워크를 주입한다. 한 실시 예에서, 플래시 어댑터 모듈은 애플리케이션 웹 페이지에서 플래시 객체를 검색하는 추가적인 자바스크립트를 주입하고, 대응되는 액션스크립트 콜백을 음성-네비게이션 라이브러리에 등록한다.
한 실시 예에서, 만약 블록 402가 애플리케이션이 플래시 애플리케이션이 아니라고 판단하면, 흐름도는 음성 네비게이션 프레임워크 모듈(135)이 애플리케이션이 어떤 의존성(dependency)(예를 들면, 특정 의존성 장치(device specific dependency))을 포함하는 의존성 애플리케이션 타입(an included dependencies application type)인지 아닌지 판단하는 곳인 블록 404로 계속 이어진다. 한 실시 예에서, 만약 애플리케이션이 의존성을 포함한다고 판단되면, 흐름도 400은 의존성 주입 모듈(350)이 실행되는 곳인 블록 405로 계속 이어진다. 한 실시 예에서, 의존성 주입 모듈(350)은 프레임워크의 요구되는 소프트웨어 의존성을 애플리케이션의 개발자 코드(developer code)로 주입한다. 한 실시 예에서, 주입된 의존성은, 같은 프레임워크가 다양한 전자 장치(예를 들면, 다른 타입의 TV시스템, 장치들, 구성물들 등)에서 사용되게끔 하는 장치에 특화된 의존성(device-specific dependencies)을 포함한다. 한 실시 예에서, 애플리케이션의 프레임워크를 포함하는 의존성 주입 모듈(350)로, 스스로 실행하는 기능은 기존 라이브러리들을 확인하고, 만약 로컬 복사물들이 포함되어 있지 않으면, 로컬 복사물을 생성한다. 한 실시 예에서, 일단 애플리케이션으로의 주입이 의존성 주입 모듈(350)에 의해 완료되면, 스스로 실행하는 기능이, 개발자들이 더 개입하는 것 없이 어떤 애플리케이션 모듈들을 선택하든지 초기화를 시작한다. 만약 블록 404가 의존성이 애플리케이션에 포함되어있지 않다고 판단하면, 흐름도 400은 음성 네비게이션 라이브러리가 사용될 준비가 되어 있는 곳인 블록 406에 계속 이어진다.
블록 407에서, 음성 네비게이션 프레임워크 모듈(135)은 애플리케이션(음성 네비게이션 라이브러리)에서 이용가능하게 하는 특징들을 판단한다. 한 실시 예에서, 애플리케이션에서 개발자에 의해 원해지는 맞춤 명령들을 위해, 블록 409에서, 명령 등록 모듈(310)은 맞춤 명령 사전에 맞춤 명령들을 추가한다. 한 실시 예에서, 애플리케이션에서의 원격 제어 명령들을 위해, 블록 410에서, 명령 등록 모듈(310)은 원격 제어 명령/콜백 페어들(command/callback pairs)을 다차원 데이터 구조 (1000)(도면 9)로 등록한다. 한 실시 예에서, 사용자 인터페이스(UI)가 애플리케이션의 다른 장면들 사이에서 이동함에 따라 새로운 명령/콜백 페어들이 역동적으로 다차원 데이터 구조(1000)로 추가될지 모른다. 한 실시 예에서, 명령 페어들은 세트로 조직되고 세트들은 메뉴 객체들이나 컨텐츠 아이콘들 같은 UI의 논리적 구획을 나타낸다. 한 실시 예에서, 명령 페어들은 원격 제어 입력 같은 요약 명령들의 세트들을 나타낸다. 한 실시 예에서, 그 세트들은 UI를 통한 사용자 네비게이션을 원하는 개발자들에 의해 이용가능하게 되거나 불가능하게 될지 모른다.
한 실시 예에서, 애플리케이션에서 커서/제스처 명령을 위해, 블록 411에서, DOM 분석 모듈(330)은 애플리케이션에서 DOM 분석을 수행하고, 명령들과 콜백 기능들을 위해 애플리케이션을 분석하고, 발견된 명령과 콜백 기능들을 자동으로 명령 등록 모듈(310)로 등록한다. 한 실시 예에서, 개발자는 “음성” 혹은 “ID” 같은 기존의 것 같은 관용 속성을 사용하는 분석 동안 검색될 HTML 속성을 상세화할지 모른다. 한 실시 예에서, DOM 분석 모듈(330)은 예를 들면 jQuery를 사용하는 관용 속성을 위해 검색하고, 명령 등록 모듈(310)로 그들의 콜백을 등록한다. 흐름도 400은 적절한 블록 409, 410 혹은 411의 완료 아래 블록 412를 계속 이어간다.
한 실시 예에서, 블록 412에서, 애플리케이션의 라이브러리는 전자 장치, 예를 들면 전자 장치(120)의 사용자로부터 명령을 수신하기 위해 준비가 되어 있다. 한 실시 예에서, 애플리케이션은 입력 매커니즘(124)(예를 들면, 애플리케이션을 시작하고, 디스플레이 화면에 탭핑하고, 버튼을 누르고, 원격 제어를 사용하고, 다이얼 애플리케이션을 시작하는 등을 위한 명령을 말하기)를 사용하는 전자 장치에서 음성 인식 애플리케이션에 의해 시작될지 모른다. 한 실시 예에서, 마이크로폰(예를 들면, 마이크로폰(122))를 통해 들어간 음성 신호는 ASR에 의해 처리되고 초기 발음을 위해 블록 413에서 입력된다. 블록 413에서, 음성 명령은 전자 장치에서 시작되는 애플리케이션을 위해 수신된다. 흐름도 400은 그리고 나서 블록 414로 계속 이어진다.
블록 414에서, 음성 네비게이션 프레임워크 모듈(135)은 수신된 음성이 포함하는 모드 타입을 판단한다. 한 실시 예에서, 만약 모드가 로컬 사전 명령만을 위한 것이라고 판단된다면, 흐름도는 로컬 사전 모듈(312)에 의해 처리되기 위해 블록 421을 계속 이어가고, 그렇지 않고 만약 모드가 자유 음성 명령을 위한 것이라고 판단된다면, 흐름도는 자유 음성 모듈(311)에 의해 처리되기 위해 블록 425를 계속 이어간다. 한 실시 예에서, 모드는 음성을 매칭하는 것에 근거해 판단된다.
한 실시 예에서, 전자 장치가 음성 입력을 감지할 때, 음성은 스트링으로 해석되고 음성 네비게이션 프레임워크 모듈(135)로 통과한다. 음성 네비게이션 프레임워크 모듈(135)은 현재 활동하는 명령 페어 세트 내에서 그 스트링을 명령과 매치하기 위해 스트링을 처리한다. 한 실시 예에서, 만약 현재 모드가 로컬 사전이라고 판단되면, 정적 타입의 엔트리들(entries)만이 블록 420에서 검색된다. 만약 현재 모드가 자유 음성으로 판단된다면, 블록 425에서 정적 그리고 역동적 엔트리 모두 명령들과 매칭하기 위해 검색된다.
한 실시 예에서, 로컬 사전 모드에 있어서, 블록 420은 음성 입력을 처리하고, 로컬 사전 모듈(312)을 사용해 명령을 매치하려고 시도한다. 블록 421에서, 만약 매치가 발견된다면, 흐름도는 블록 422를 계속 이어간다. 만약 매치가 블록 421에서 발견되지 않는다면, 흐름도는 블록 412를 계속 이어간다. 한 실시 예에서, 블록 422에서, 매치된 명령들은 수신된 음성에 근거해 애플리케이션을 위해 실행된다. 흐름도는 애플리케이션의 페이지가 전환되었는지 아닌지를 판단하는 곳인 블록 423으로 진행한다. 음성 네비게이션 프레임워크 모듈(135)이 애플리케이션의 페이지를 마지막 처리한 이래, 애플리케이션의 페이지가 전환된 것을 감지하면, 흐름도는 처리를 위해 블록 408로 돌아가고, 그렇지 않으면, 흐름도는 음성 명령들을 더 기다리며 블록 412로 돌아간다.
한 실시 예에서, 블록 425에서, 자유 음성 명령 해석 모듈(320)은 자유 음성 모듈(311) 내에서 검색을 위해 Regex 라우팅 모듈 (321)을 사용해 수신된 음성을 처리하기 위해 사용된다. 한 실시 예에서, 역동적 타입 명령들은 개발자들에게 추가적 유연성을 주고자 일상 표현 구문(regular expression syntax)을 사용한다. 한 실시 예에서, 역동적 명령들은 매칭을 위해 Regex 라우팅 모듈 (321)에 의해 처리된다. 블록 426에서, 만약 일상 표현 매치가 발견된다면, 흐름도는 처리를 위해 블록 422로 계속 이어간다. 만약 블록 426에서 매치가 발견되지 않는다면, 흐름도는 블록 427로 계속 이어간다. 한 실시 예에서, 블록 427에서, 발음 매칭 모듈(322)은 음성 입력 매치를 시도하기 위해 사용된다.
한 실시 예에서, 발음 매칭 모듈(322)은 Regex 라우팅 모듈 (321)을 퍼지 매칭을 사용해 지원한다. 한 실시 예에서, 만약 Regex 라우팅 모듈 (321)에 의해 주어진 구두 명령을 위한 직접적 매치가 발견되지 않는다면, 발음 매칭 모듈(322)을 사용한 발음 매칭을 사용해 두 번째 시도가 이루어진다. 한 실시 예에서, 발음 해석 과정은 일반적 언어 패턴들을 검색하고, 일반적 스트링들(strings)을 발음 동의어로 압축한다. 한 실시 예에서, 발음 동의어들은 명령들을 등록한(예를 들면, 자유 음성 모듈(311)에서) 사용자의 발음 동의어와 비교될지 모른다. 한 실시 예에서, 음성 네비게이션 프레임워크 모듈(135)은 발음 번역을 처리하기 위한 이중 메타폰 같은 알려진 알고리즘을 사용한다. 블록 428에서, 만약 매치가 발견된다면, 흐름도는 처리를 위해 블록 422로 계속 이어지고, 그렇지 않으면, 흐름도는 처리를 위해 블록 412로 계속 이어진다.
도면 5는 한 실시 예에 따라, 전자 장치(예를 들면, 전자 장치(120))에서 음성 제어 애플리케이션을 위한 네비게이션 프레임워크를 사용하는 원격 제어 명령 에뮬레이션을 위한 예시 시나리오(600)을 보여준다. 한 실시 예에서, 마이크로폰(122)로 들어간 음성 명령(610)은 원격 제어 장치(예를 들면, 원격 제어 620)의 방향적 제어(630)으로의 일대일 맵핑(605)를 갖는다. 한 실시 예에서, 만약 전자 장치(120)의 디스플레이 장치(121)에 디스플레이된 실행된 애플리케이션(1-N 127)이 이미 방향적 제어(예를 들면, 방향적 제어(630))를 가능하게 하지 않는다면, 음성 네비게이션 프레임워크 모듈(135)은 DOM 분석을 경유해 방향적 제어를 제공한다. 한 실시 예에서, 일단 방향적 제어(예를 들면, 방향적 제어(630))가 이용가능하게 되면, 음성 네비게이션 프레임워크 모듈(135)은 음성 명령이 원격 제어 버튼들을 에뮬레이트 하도록 미리 조절한다. 한 실시 예에서, 의존성 주입은 개발자들에 의해 하나 혹은 두 개의 여분 선들을 추가만 하며 이 특징이 애플리케이션에서 이용가능하게 되도록 한다.
도면 6은 한 실시 예에 따라, 전자 장치(120)에서 음성 제어 애플리케이션을 위해 네비게이션 프레임워크를 사용하기 위한 또 다른 예시 시나리오(700)을 보여준다. 한 실시 예에서, 사용자 음성 명령(610)은 예시 맞춤 명령(730)같은 등록되고 맞춤화된 명령들을 사용하는 마이크로폰(122)를 사용해 입력된다. 한 실시 예에서, 디스플레이 장치(121)에서 사용자가 애플리케이션 1(127)을 봄에 따라, 음성은 단어들 “클로저 재생”(705)을 포함한다. 한 실시 예에서, 음성 네비게이션 프레임워크 모듈(135)은 명령을 실행하기 위해 수신된 음성 (705)을 사용하도록 단어들을 검색 명령 페어을 위한 명령으로 변환하기 위해 ASR(710)을 사용한다.
한 실시 예에서, 사용자는 디스플레이 장치(121)에서 검색하기 위해 스트링을 입력하기 위하여 또 다른 애플리케이션 2(127)를 사용하고 있다. 이 실시 예에서, 맞춤 명령(730)은 사용자가 음성 용어 “스타워즈를 검색”(730)을 입력함에 따라 검색되고 있다. 한 실시 예에서, 사용자 음성은 스트링 검색 애플리케이션(즉, 애플리케이션 2 (127))을 실행하는 것을 동반하는, 용어 “검색”을 사용하는 애플리케이션 2(127)를 불러낸다. 음성 용어 “스타워즈”를 사용하며, 음성 네비게이션 프레임워크 모듈(135)은 처리과정(예를 들면, 맥박 코드 모듈레이션 (PCM(740)))과 융합 애플리케이션 (예를 들면, NUANCE (720))을 사용해 변환된 텍스트(예를 들면, “스타워즈” 750)가 실행을 위해 애플리케이션 2(127)로 입력되도록 한다. 한 실시 예에서, 음성 네비게이션 프레임워크 모듈(135)은 개발자가 직접적으로 음성 명령/함수 콜백 페어들(voice command/function callback pairs)을 상세화하도록 하게 하기 위해 맞춤 명령(730)의 명령 등록을 사용한다, 이것은 예를 들면, 원격 제어 에뮬레이션보다 더 많은 개발 노력을 요구하며 자동적으로 추출될지 모르는 것들 밖의 음성 명령으로부터 독특한 행동들을 정의하기 위해 가장 큰 유연성을 제공한다. 한 실시 예에서, 자동 명령 등록은 선택가능한 HTML 객체들을 식별하도록 웹 애플리케이션을 분석하기 위해 음성 네비게이션 프레임워크 모듈(135)에 의해 사용되며, 그것들을 음성 네비게이션 사전에 등록한다. 한 실시 예에서, 애플리케이션에 표시되던 페이지가 새로운 페이지로 전환됨에 따라, 음성 네비게이션 프레임워크 모듈(135)은 새롭게 선택가능한 객체들을 가지고 음성 네비게이션 사전을 자동적으로 업데이트 할 것이다. 한 실시 예에서, 자동 명령 등록은 제목 네비게이션이 개발자에 의해 요구되는 최소한의 코드 변화를 가지게 할 것이다.
도면 7은 한 실시 예에 따라, 전자 장치(120)에서 원격 제어(remote control) 사용, 그리고 음성 제어 애플리케이션을 위한 네비게이션 프레임워크를 위해 음성 제어 사용을 하기 위한 예시 시나리오(800)를 보여준다. 음성 네비게이션 프레임워크 모듈(135)을 사용하기 전에, 전자 장치에서 운영되는 예시 애플리케이션(805)은 애플리케이션 (805)의 1차 제어로 진입하기 위하여 원격 제어 입력(806)을 사용한다. 이 예시에서 애플리케이션(805)을 네비게이팅하기 위한 원격 제어 입력(806)은 원하는 아이콘을 선택하기 위해 하, 우, 우, 우, 우 하를 위한 버튼 누르기(807)를 포함할지 모른다. 한 실시 예에서, 한 예시(815)는 음성 네비게이션 프레임워크 모듈(135)이 애플리케이션(예를 들면, 애플리케이션 1 (127))에서 처리된 후에, “사이키”의 음성 입력 (816)이 원하는 아이콘을 선택하기 위해 행동 (817)을 직접적으로 야기하는 것을 보여준다.
도면 8은 한 실시 예에 따라, 원격 제어 사용을 위한, 그리고 전자 장치(120)에서 음성 제어 애플리케이션을 위한 네비게이션 프레임워크의 음성 제어 사용을 위한 또 다른 예시 시나리오(900)를 보여준다. 음성 네비게이션 프레임워크 모듈(135)을 사용하기에 앞서, 전자 장치에서 운영되는 예시 검색 스트링 애플리케이션(905)은 애플리케이션(905)의 1차 제어에 진입하기 위해 네비게이션 엔트리(907)을 사용하는 원격 제어 입력(906)을 사용한다. 이 예시에서 애플리케이션(905)를 네비게이팅하기 위한 원격 제어 입력(906)은 원하는 검색 용어 “The closer”를 입력하기 위해 문자 T, H, E, [스페이스], C, L, O, S, E, R을 입력하기 위한 네비게이션(907)을 포함할지 모른다. 한 실시 예에서, 한 예시(915)는 음성 네비게이션 프레임워크 모듈(135)이 애플리케이션(예를 들면, 애플리케이션 1 127)에서 처리된 이후, “The closer”의 음성 입력(916)이 원하는 검색 용어를 입력하기 위해 행동(917)을 직접적으로 야기한다는 것을 보여준다.
도면 9는 한 실시 예에 따라, 전자 장치(120)에서 음성 제어 애플리케이션을 위한 네비게이션 프레임워크를 위해 세트(예를 들면, 1010, 1020, 1030, 및 1040)로 조직된 명령 페어들의 예시 다차원 데이터 구조(1000)를 보여준다. 한 실시 예에서, 명령 등록 모듈(310)은 다차원 데이터 구조(1000)에서 명령/콜백 페어들을 저장한다. 한 실시 예에서, 새로운 명령/콜백 페어들은 UI가 애플리케이션의 다른 장면 사이에서 이동함에 따라 역동적으로 추가될지 모른다. 한 실시 예에서, 명령 페어들은 1010, 1020, 1030, 및 1040 같은 세트로 조직되는데, 각 세트는 세트명(1050)과 관련된다. 한 실시 예에서, 다차원 데이터 구조는 세트명(1050), 명령(1060), 콜백 (1070), 명령 타입(1080)(예를 들면, 정적(static) 혹은 역동적(dynamic)), 및 선택적 노트(1090)을 위한 란을 포함한다. 한 실시 예에서, 세트들은 메뉴 객체, 컨텐츠 아이콘 등 같은 UI의 논리적 구획을 나타낸다. 한 실시 예에서, 세트들은 원격 제어 입력 같은 요약 명령들 세트들을 나타낼지 모른다. 한 실시 예에서, 사용자가 애플리케이션의 UI를 통해 네비게이팅함에 따라, 세트들은 사용을 제어하도록 개발자에 의해 이용가능하게 되거나 불가능하게 될지 모른다.
한 실시 예에서, 명령(1060)은 또한 타입(1080)에 의해 “정적(static)” 혹은 “역동적(dynamic)” 명령으로 카테고리화 된다. 한 실시 예에서, 정적 명령들은 고정된 스트링들이고, 매우 정확한 매칭을 위해 전자 장치에 장착된 ASR을 사용한다. 한 실시 예에서, 역동적 명령들은 클라우드나 자유 음성 음성 인식 결과의 서버에 매치되며, 전자 장치의 ASR을 사용하는 것보다 덜 정확할지 모르지만 더욱 유연하다.
도면 10은 한 실시 예에 따라, 전자 장치(120)에서 음성 제어 애플리케이션을 위한 네비게이션 프레임워크를 위해 일상표현 매칭의 예시 표(1100)을 보여준다. 한 실시 예에서, 역동적 타입 명령들은 개발자들에게 추가적 유연성을 제공하기 위해 일반적 표현 구문을 사용한다. 한 실시 예에서, 역동적 명령들은 Regex 라우팅 모듈 (321)(도면 3)의 엔진과 매칭하는 일반 표현에 의해 처리된다. 한 실시 예에서, 역동적 명령들을 사용하는 것의 한가지 이점은 예를 들면, 하위 스트링 “코미디”를 포함하는 스트링을 매치하는 스트링 매칭을 포함한다. 한 실시 예에서, 역동적 명령들을 사용하는 또 다른 이점은 변수 식별을 포함하는데, 예를 들면, 하위 스트링 “검색”을 찾고, 텍스트를 통과하고, 그 다음에 [제목] 변수로서 콜백 기능으로 간다. Regex 명령(1110)을 위한 Regex 샘플 매치(1120)의 일부 예시들은 표(1100)에서 보여진다.
도면 11은 한 실시 예에 따라, 전자 장치(120)에서 음성 제어 애플리케이션을 위한 네비게이션 프레임워크를 위해 발음 매칭의 예시 표(1200)를 보여준다. 예시 표(1200)에서, 입력 스트링(1110)은 세트 1250, 1260, 및 1270으로 그룹화된다. 예시 발음 스트링 (1220)은 매칭 스트링(1230)과 함께 보여진다. 한 실시 예에서, 발음 매칭 모듈(360)은 퍼지 매칭과 함께 Regex 라우팅 모듈 (321)을 지원한다. 한 실시 예에서, 발음 매칭 모듈(360)의 발음 번역 알고리즘은 일반적 언어 패턴을 검색하고, 일반적 스트링들을 발음 동의어로 압축하는데, 발음 동의어들은 명령들을 등록한 사용자의 발음 동의어와 비교될지 모른다. 표(1200)는 일반적 일상표현 매칭이 실패하지만 발음 매칭 모듈(360)을 사용하는 발음 매칭은 성공하는 예시를 보여준다.
도면 12는 한 실시 예에 따라, 전자 장치(120)에서 음성 제어 애플리케이션을 위한 네비게이션 프레임워크를 위하여 원격 제어 에뮬레이션을 보여주는 예시(1300)를 보여준다. 일부 애플리케이션들은 원격 제어 장치들로부터의 입력을 다루기 위한 코드를 이미 포함한다. 원격 제어 장치들로부터의 입력을 다루기 위한 코드를 이미 포함하는 애플리케이션들을 위해, 한 실시 예에서, 음성 네비게이션 프레임워크 모듈(135)은 매칭 음성 명령이 감지될 때, 키(key) 이벤트들을 개시하는 것에 의해 기존 구현(implementation)으로 간다. 한 실시 예에서, 원격 제어 버튼들로 가는 음성 명령의 직접적 일대일 번역이 제공된다. 다른 애플리케이션들은 원격 제어 장치 입력을 다루기 위한 코드를 제공하지 않을지 모른다. 이런 애플리케이션들을 위해, 한 실시 예에서, 원격 제어 에뮬레이션 모듈(340)은 원격 제어와 음성 동의어를 가지고 사용하도록 하게 하는 방향적 이벤트들(예를 들면, 상, 하, 좌, 우)을 구현한다.
한 실시 예에서, 애플리케이션의 한 페이지를 통해 사용자가 네비게이팅함에 따라, 현재 객체과 화면의 모든 선택가능한 객체들의 좌표들(coordinates)을 사용해서 선택될 다음 객체가 역동적으로 계산된다. 한 실시 예에서, 아이콘(1310)의 좌표는 애플리케이션 페이지를 나타낸다. 한 실시 예에서, 현재 선택된 요소의 위쪽 왼손 코너로부터, 각각 다른 선택가능한 요소의 위쪽 왼손 코너 사이의 거리가 계산된다. 한 실시 예에서, 검색은 각 방향에서 확장되는 원뿔(1320) 내에서 떨어지는 객체들에만 제한된다. 원뿔의 모양은 현재 객체와 일직선인 선호 요소들로 좁혀진다. 한 실시 예에서, 원뿔로 떨어지는 객체들로부터, 가장 짧은 거리를 갖는 객체는 방향이 눌러질 때, 선택된다.
도면 13은 한 실시 예에 따라, 전자 장치(120)에서 음성 제어 애플리케이션을 위한 네비게이션 프레임워크를 위하여 DOM 분석 모듈(330)을 경유하는 DOM 분석을 경유한 자동화된 명령 등록을 보여주는 예시(1420)를 보여준다. 한 실시 예에서, DOM 분석 모듈(330)은 명령과 콜백 기능들을 위해 웹 애플리케이션을 분석하고, 명령들과 콜백 기능들을 자동적으로 명령 등록 모듈(310)로 등록한다. 예시 420에서, 개발자는 “음성” 혹은 “id.” 같은 기존 속성(attribute) 같은 관용 속성을 사용해, 분석 동안 검색되는 HTML 속성(1410)을 상세화할지 모른다. 한 실시 예에서, 명령 등록 모듈(310)은 jQuery를 사용해 이런 속성들을 검색하고, 각각의 콜백들을 명령 등록 모듈(310)로 등록한다. 한 실시 예에서, 등록은 명령(1425)와 콜백(1426)을 표, 데이터베이스, 사전에 입력하는 것을 포함한다. 예시(1420)는 명령 콜백 페어들을 등록하기 위하여 “id” 속성을 사용하는 개발자 코드(1410)을 보여준다.
도면 14는 한 실시 예에 따라, 전자 장치(120)에서 음성 제어 애플리케이션을 위한 네비게이션 프레임워크를 위하여 플래시 애플리케이션(1510)과 텔레비전 애플리케이션 1(127)과 연결되는 플래시 어댑터 모듈(360)의 예시(1500)를 보여준다. 한 실시 예에서, 플래시 애플리케이션(1510)은 플래시 델리게이트(Delegate)(1535)를 포함하는 음성 네비게이션 프레임워크 모듈(135)과 연결된 외부인터페이스 API (1525)를 포함한다. 한 실시 예에서, 외부인터페이스 API(1525)는 플래시 모듈(360)과 플래시 델리게이트(1535) 사이에서 통신한다.
한 실시 예에서, 싱글 라인 액션스크립트 콜(single line actionscript call)을 한 후에, 플래시 모듈(360)은 플래시 플레이어에 의해 제공되는 외부인터페이스 API (1525)를 통해 처리하는 음성 네비게이션 프레임워크 모듈(135)을 주입한다. 한 실시 예에서, 양쪽이 작동하게 하기 위해, 플래시 모듈(360)은 플래시 애플리케이션(1510) 페이지에서 플래시 객체를 검색하는 추가적 자바스크립트를 주입하고, 해당 액션스크립트 콜백을 등록한다.
도면 15는 한 실시 예에 따라, 전자 장치(120)에서 음성 제어 애플리케이션을 위한 네비게이션 프레임워크를 위하여 플래시 애플리케이션(예를 들면, 플래시 애플리케이션 1510)을 가지고 사용되는 플래시 모듈(360)을 위한 예시 흐름 1600이다. 한 실시 예에서, 초기화 1641 이후에, 음성 네비게이션 프레임워크 모듈(135)은 어떤 음성 입력이든 다룰 수 있고, 원격 명령(“위”, “아래”, “재생”, “엔터” 등)을 플래시로 교체할 수 있다. 한 실시 예에서, 일단 수신되면, 액션스크립트는 명령을 해당 네이티브 액션스크립트 키보드 이벤트로 번역한다. 이것은 개발자가 음성 명령을 가능하게 하는 가운데, 기존 애플리케이션 논리를 강화하게 한다. 한 실시 예에서, 플래시 모듈(360)은 또한 액션스크립트 개발자들이 액션스크립트 라이브러리를 통해 비슷한 인터페이스를 노출하는 것에 의해 음성 네비게이션 프레임워크 135의 명령 등록 능력을 강화하게 한다.
한 실시 예에서, 플래시 모듈(360)이 불려질 때, 플래시 모듈(360)은 액션스크립트 단계에 놓여진 텍스트 스트링들을 자동적으로 등록하기 위해 단계 분석(DOM 분석과 유사한)을 수행할지 모른다. 한 실시 예에서, 말해진 스트링들을 버블된 마우스 이벤트(bubbled mouse events)로 번역하는 것은 전자 장치의 방향적 원격 입력을 위해 디자인되지 않은 플래시 애플리케이션이 음성 명령을 통해 쉽게 네비게이팅 가능해지도록 하게 한다. 예시(1600)는 음성 네비게이션 프레임워크 모듈(135), 플래시 델리게이트(1535), 및 플래시 모듈(360) 사이에서 작동하기 위한 예시 단계를 보여준다. 한 실시 예에서, 예시 단계는 초기화(1641), 주입(1642), 생성(1643), 콜백 엔트리(1644)(예를 들면, setFixedCommand(“left”, delegate.callback), 명령 엔트리(1645)(예를 들면, “좌”), 명령 “좌”(1647)(예를 들면, delegateCallback(“left”)를 사용하는 델리게이트 콜백, object.relayCommand(“left”)(1648), 및 emulateEvent(“left”) (1649) 를 포함한다.
통상의 기술자들에게는 자명하지만, 위에서 설명한 앞서 말한 예시 프레임워크는, 말한 프레임워크들에 따라, 많은 방법으로 구현될 수 있는데, 프로세서에 의한 실행을 위한 프로그램 인스트럭션(instruction)사항 같은, 소프트웨어 모듈, 마이크로코드 같은, 컴퓨터 판독가능 미디어에서의 컴퓨터 프로그램 상품 같은, 아날로그/로직 회로 같은, 애플리케이션 특정 통합 회로 같은, 펌웨어 같은, 소비자 전자 장치, AV 장치, 유/무선 전송기, 유/무선 수신기, 네트워크, 멀티미디어 장치 등 같은 것들이다. 더욱이, 말한 프레임워크의 실시 예들은 완전히 하드웨어 실시 예, 완전히 소프트웨어 실시 예, 혹은 하드웨어와 소프트웨어 요소 모두를 포함하는 실시 예의 형태를 취할 수 있다.
하나 혹은 그 이상의 실시 예들은 실시 예에 따라 흐름도 도시들 그리고/혹은 방법 블록도들, 장치(시스템들), 컴퓨터 프로그램 제품들을 참고하며 설명되었다. 도시들/도표들 같은 각각의 블록, 혹은 그 결합은 컴퓨터 프로그램 인스트럭션들(instructions)에 의해 구현될 수 있다. 프로세서에 제공될 때, 컴퓨터 프로그램 인스트럭션들은 기계를 생산하는데, 프로세서를 경유해 실행하는 그런 인스트럭션들은, 흐름도 그리고/혹은 블록도에서 상세화된 기능들/동작들을 구현하기 위한 수단을 만든다. 흐름도/블록도의 각 블록은 하드웨어 그리고/혹은 소프트웨어 모듈 혹은 로직을 나타낼지 모르고, 하나 혹은 그 이상의 실시 예들을 구현한다. 대체안적인 구현들에서, 블록들에서 말한 기능들은 동시적으로 도면들에서 언급된 고장을 발생시킬지 모른다.
“컴퓨터 프로그램 매체”, “컴퓨터 사용 가능 매체”, “컴퓨터 판독가능 매체”, 그리고 “컴퓨터 프로그램 제품” 같은 용어들은 일반적으로 메인 메모리, 2차적 메모리, 제거가능 스토리지 드라이브, 하드디스크 드라이브에 설치된 하드디스크 같은 미디어를 참고하도록 사용된다. 이런 컴퓨터 프로그램 제품들은 컴퓨터 시스템으로 소프트웨어를 제공하기 위한 수단이다. 컴퓨터 판독가능 매체는 컴퓨터 시스템이 데이터, 인스트럭션들, 메시지들, 혹은 메시지 패킷들, 및 다른 컴퓨터 판독가능 정보들을 컴퓨터 판독가능 매체들로부터 읽게 한다. 컴퓨터 판독가능 매체는, 예를 들면, 플로피 디스크, ROM, 플래시 메모리, 디스크 드라이브 메모리, CD-ROM, 및 다른 영구적 스토리지 같은 비휘발성 메모리를 포함할지 모른다. 그것은 예를 들면, 컴퓨터 시스템들 사이의 데이터, 컴퓨터 인스트럭션들 같은 정보를 이동시키기 위해 유용하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터, 다른 프로그램 데이터 처리 장치, 혹은 다른 장치들을 특별한 방식으로 기능하도록 이끌 수 있는 컴퓨터 판독가능 매체에 저장될지 모르는데, 컴퓨터 판독가능 매체에 저장된 그런 인스트럭션들은 흐름도 그리고/혹은 블록도 블록 혹은 블록들에서 상세화된 기능/활동을 구현하는 인스트럭션들을 포함하는 제조품을 생산한다.
여기서 블록도 그리고/혹은 흐름도를 나타내는 컴퓨터 프로그램 인스트럭션들은 컴퓨터 구현 프로세스를 생산하도록 수행하는 동작들을 유발하도록 컴퓨터, 프로그램 데이터 처리 장치, 혹은 처리장치로 로드될지 모른다. 컴퓨터 프로그램(즉, 컴퓨터 제어 로직)은 메인 메모리 그리고/혹은 2차적 메모리에 저장된다. 컴퓨터 프로그램들은 또한 통신 인터페이스를 경유해 수신될지 모른다. 그런 컴퓨터 프로그램들은, 실행될 때, 여기서 논의되었듯이, 컴퓨터 시스템이 실시 예들의 특징들을 수행하도록 하게 한다. 특별히, 컴퓨터 프로그램들은, 실행될 때, 프로세서 그리고/혹은 멀티코어 프로세서가 컴퓨터 시스템의 특징들을 수행하도록 하게 한다. 그런 컴퓨터 프로그램들은 컴퓨터 시스템의 제어부들을 나타낸다. 컴퓨터 프로그램 제품은 컴퓨터 시스템에 의해 판독가능한 만질 수 있는 저장 매체, 하나 혹은 그 이상의 실시 예들의 방법을 수행하기 위해 컴퓨터 시스템에 의해 실행되기 위한 인스트럭션들을 저장하는 것을 포함한다.
비록 실시 예들은 특정 버전들을 참고해 설명되었지만; 하지만, 다른 버전들도 가능하다. 따라서, 덧붙여진 청구항들의 범위와 정신은 여기에 포함된 선호되는 버전들의 설명에만 제한되어서는 안 된다.
12: 전송 장치 11: 수신 장치
100: 프레임워크 시스템 120: 전자 장치
121: 디스플레이 장치 122: 마이크로폰
123: 음성 출력, 124: 입력 매커니즘
125: 통신 회로 126: 제어 회로
135: 음성 네비게이션 프레임워크 모듈

Claims (30)

  1. 애플리케이션의 음성 제어 시스템에 있어서,
    애플리케이션을 분석하여, 애플리케이션 타입 및 애플리케이션에서 가능한 기능(features)을 판단하는 음성 네비게이션 프로세서;
    상기 판단된 애플리케이션 타입 및 애플리케이션에서 가능한 기능을 기반으로, 상기 애플리케이션을 제어하기 위한 명령을 등록하며, 음성 명령 매핑으로 원격 제어 버튼 누르기를 에뮬레이팅(emulating)하기 위한 방향적 이벤트 및 상기 방향적 이벤트에 대한 음성 동의어를 구현하는 명령 등록 프로세서; 및
    사용자의 음성 신호가 텍스트로 변환된 단어들을 수신하여, 상기 명령 및 상기 음성 신호를 매칭시키는 음성 모드를 감지하고, 상기 음성 신호에 매칭되는 명령을 실행시켜 애플리케이션 제어 및 네비게이팅(navigating through)을 수행하는 음성 명령 해석 프로세서;를 포함하는 음성 제어 시스템.
  2. 제 1항에 있어서,
    상기 애플리케이션 타입은,
    플래시 애플리케이션 타입, 웹 애플리케이션 타입, 또는 의존성 애플리케이션 타입(an included dependencies application type) 중 적어도 하나를 포함하는 것을 특징으로 하는, 음성 제어 시스템.
  3. 제 1항에 있어서,
    상기 기능은 맞춤 명령(custom command), 원격 제어 명령, 클릭 가능한 객체 명령, 및 제스처 명령을 포함하는 것을 특징으로 하는, 음성 제어 시스템.
  4. 제 3항에 있어서,
    상기 명령 등록 프로세서는, 원격 제어 버튼 누르기를 에뮬레이팅(emulating)하는 음성 명령 매핑을 이용하여 애플리케이션에 대한 방향적(directional) 제어를 제공하는 것을 이용하는 것을 특징으로 하는, 음성 제어 시스템.
  5. 제 4항에 있어서,
    상기 방향적 제어는, 문서 객체 모델(Document object medel;DOM) 분석을 이용하는 원격 제어 타입 애플리케이션에 대해 제공되는 것을 특징으로 하는, 음성 제어 시스템.
  6. 제 5항에 있어서,
    상기 명령 등록 프로세서는,
    애플리케이션에 특화된 음성명령 및 함수 콜백 페어(application specified voice command and function callback pair)를 등록하는 것을 특징으로 하는, 음성 제어 시스템.
  7. 제 6항에 있어서,
    상기 명령 등록 프로세서는,
    선택가능한 객체를 감지하기 위해, 웹 타입 애플리케이션을 분석하여 상기 선택가능한 객체를 음성 네비게이션 사전에 등록하며,
    상기 웹 타입 애플리케이션에 표시되던 페이지가 새로운 페이지로 전환되면, 상기 새로운 페이지를 자동적으로 분석하여 새롭게 감지된 선택가능한 객체를 상기 음성 네비게이션 사전에 등록하는 것을 특징으로 하는, 음성 제어 시스템.
  8. 제 6항에 있어서,
    상기 음성 모드는,
    정적인(static) 명령으로 분류되는 음성신호를 위한 제 1 모드 또는 역동적(dynamic) 명령으로 분류되는 음성신호를 위한 제 2 모드 중 적어도 하나를 포함하는 것을 특징으로 하는, 음성 제어 시스템.
  9. 제 8항에 있어서,
    상기 정적인 명령은,
    고정된 스트링(fixed string)을 포함하고, 음성 인식 엔진을 사용해 음성 신호와 매칭되며,
    상기 역동적 명령은,
    표현 구문(expression syntax)을 포함하고, 네트워크를 통해 획득된 자유 음성 인식 결과에 매칭되는 것을 특징으로 하는, 음성 제어 시스템.
  10. 제 9항에 있어서,
    음성 명령 해석 프로세서는,
    음성 신호와 명령의 발음 매칭(phonetic matching)을 더 제공하는 것을 특징으로 하는, 음성 제어 시스템.
  11. 제 10항에 있어서,
    디스플레이 장치에 디스플레이되는 애플리케이션의 선택 가능 객체는 상기 디스플레이 장치에 디스플레이되는 모든 선택 가능 객체 및 현재 아이템의 좌표를 이용하여 동적으로 산출되는 것을 특징으로 하는 음성 제어 시스템.
  12. 제 11항에 있어서,
    플래시 어댑터를 더 포함하며,
    상기 플래시 어댑터는 애플리케이션 페이지에서 플래시 객체를 검색하여 대응되는 콜백을 등록하며,
    상기 콜백은 애플리케이션에 대한 명령을 음성신호와 매칭시키는데 사용되는 것을 특징으로 하는, 음성 제어 시스템.
  13. 제 1항에 있어서,
    상기 시스템은 텔레비전 장치를 포함하는 것을 특징으로 하는, 음성 제어 시스템.
  14. 애플리케이션 음성 제어 방법에 있어서,
    음성 신호를 수신하고 상기 음성 신호를 텍스트 단어들로 변환하는 단계;
    애플리케이션 타입 및 애플리케이션에서 가능한 기능을 판단하기 위해 애플리케이션을 분석하는 단계;
    음성 명령 매핑으로 원격 제어 버튼 누르기를 에뮬레이팅(emulating)하기 위한 방향적 이벤트 및 상기 방향적 이벤트에 대한 음성 동의어를 구현하는 단계;
    상기 판단된 애플리케이션 타입 및 애플리케이션에서 가능한 기능을 기반으로 명령을 등록하는 단계;
    상기 텍스트 단어들을 수신하여, 상기 명령 및 상기 음성 신호를 매칭시키는 음성 모드를 감지하는 단계; 및
    상기 음성 신호에 매칭되는 명령을 실행시켜 애플리케이션 제어 및 네비게이팅(navigating through)을 수행하는 단계;를 포함하며,
    상기 명령은 관련된 음성과 매치될 때 상기 애플리케이션을 제어하기 위한 명령인 애플리케이션 음성 제어 방법.
  15. 제 14항에 있어서,
    상기 애플리케이션 타입은
    플래시 애플리케이션 타입, 웹 애플리케이션 타입, 또는 의존성 애플리케이션 타입 중 적어도 하나를 포함하며,
    상기 가능한 기능은 맞춤 명령(custom command), 원격 제어 명령, 클릭가능한 객체 명령, 및 제스처 명령을 포함하는 것을 특징으로 하는 애플리케이션 음성 제어 방법.
  16. 제 15항에 있어서,
    원격 제어 버튼 누르기를 음성 명령 매핑으로 에뮬레이팅하여 원격 제어 타입 애플리케이션에 대한 방향적(directional) 제어를 제공하는 단계; 및
    애플리케이션 페이지에서 플래시 객체를 검색하여 대응되는 콜백을 등록하는 단계;를 더 포함하며,
    상기 콜백은 플래시 애플리케이션에 대한 명령을 상기 음성신호와 매칭시키는 것을 특징으로 하는, 애플리케이션 음성 제어 방법.
  17. 제 16항에 있어서,
    상기 방향적 제어를 제공하는 것은,
    문서 객체 모델(Document object medel;DOM) 분석을 이용하는 것을 특징으로 하는 애플리케이션 음성 제어 방법.
  18. 제 17항에 있어서,
    애플리케이션에 특화된 음성명령 및 함수 콜백 페어를 등록하는 단계;
    선택가능한 객체를 감지하기 위해 웹 타입 애플리케이션을 분석하는 단계; 및
    상기 선택가능한 객체를 음성 네비게이션 사전에 등록하는 단계;를 더 포함하며,
    상기 웹 타입 애플리케이션에 표시되던 페이지가 새로운 페이지로 전환되면, 상기 새로운 페이지를 자동적으로 분석하여 새롭게 감지된 선택가능한 객체를 상기 음성 네비게이션 사전에 등록하는 것을 특징으로 하는, 애플리케이션 음성 제어 방법.
  19. 제 18항에 있어서,
    상기 음성 모드는,
    정적인(static) 명령으로 분류되는 음성신호를 위한 제 1 모드 또는 역동적(dynamic) 명령으로 분류되는 음성신호를 위한 제 2 모드 중 적어도 하나를 포함하고,
    상기 정적인 명령은 고정된 스트링을 포함하고,
    상기 역동적 명령은 표현 구문(expression syntax)을 포함하는 것을 특징으로 하는, 애플리케이션 음성 제어 방법.
  20. 제 19항에 있어서,
    상기 음성 신호와 상기 명령의 발음 매칭(phonetic matching)을 통해 음성 명령을 해석하는 단계;를 더 포함하는 것을 특징으로 하는, 애플리케이션 음성 제어 방법.
  21. 제 20항에 있어서,
    디스플레이 장치에 디스플레이되는 애플리케이션의 선택 가능 객체는 상기 디스플레이 장치에 디스플레이되는 모든 선택 가능 객체 및 현재 아이템의 좌표를 이용하여 동적으로 산출되는 것을 특징으로 하는 애플리케이션 음성 제어 방법.
  22. 컴퓨터에서 실행될 때, 하기 방법을 수행하는 인스트럭션(instructions)을 가지는 비일시적 컴퓨터 판독가능 매체에 있어서, 상기 방법은,
    애플리케이션을 분석하여, 애플리케이션 타입 및 애플리케이션에서 가능한 기능을 판단하는 단계;
    음성 명령 매핑으로 원격 제어 버튼 누르기를 에뮬레이팅(emulating)하기 위한 방향적 이벤트 및 상기 방향적 이벤트에 대한 음성 동의어를 구현하는 단계;
    상기 판단된 애플리케이션 타입 및 애플리케이션에서 가능한 기능을 기반으로 명령을 등록하는 단계;
    음성 신호로부터 변환된 텍스트 단어들을 수신하여, 상기 명령 및 상기 음성 신호를 매칭시키는 음성 모드를 감지하는 단계; 및
    상기 음성 신호에 매칭되는 명령을 실행시켜 애플리케이션 제어 및 네비게이팅(navigating through)을 수행하는 단계;를 포함하며,
    상기 명령은 관련된 음성과 매치될 때 상기 애플리케이션을 제어하기 위한 명령인, 비일시적 컴퓨터 판독가능 매체.
  23. 제 22항에 있어서,
    상기 애플리케이션 타입은
    플래시 애플리케이션 타입, 웹 애플리케이션 타입, 또는 의존성 포함 애플리케이션 타입 중 적어도 하나를 포함하며,
    상기 가능한 기능은 맞춤 명령(custom command), 원격 제어 명령, 클릭가능한 객체 명령, 및 제스처 명령을 포함하는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 매체.
  24. 제 23항에 있어서,
    원격 제어 버튼 누르기를 음성 명령 매핑으로 에뮬레이팅하여 원격 제어 타입 애플리케이션에 대한 방향적(directional) 제어를 제공하는 단계; 및
    애플리케이션 페이지에서 플래시 객체를 검색하여 대응되는 콜백을 등록하는 단계;를 더 포함하며,
    상기 콜백은 플래시 애플리케이션에 대한 명령을 상기 음성신호와 매칭시키는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 매체.
  25. 제 24항에 있어서,
    상기 방향적 제어를 제공하는 것은,
    문서 객체 모델(Document object medel;DOM) 분석을 이용하는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 매체.
  26. 제 25항에 있어서,
    애플리케이션에 특화된 음성명령 및 함수 콜백 페어를 등록하는 단계;를 더 포함하는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 매체.
  27. 제 26항에 있어서,
    선택가능한 객체를 감지하기 위해 웹 타입 애플리케이션을 분석하는 단계; 및
    상기 선택가능한 객체를 음성 네비게이션 사전에 등록하는 단계;를 더 포함하며,
    상기 웹 타입 애플리케이션에 표시되던 페이지가 새로운 페이지로 전환되면, 상기 새로운 페이지를 자동적으로 분석하여 새롭게 감지된 선택가능한 객체를 상기 음성 네비게이션 사전에 등록하는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 매체.
  28. 제 27항에 있어서,
    상기 음성 모드는,
    정적인(static) 명령으로 분류되는 음성신호를 위한 제 1 모드 또는 역동적(dynamic) 명령으로 분류되는 음성신호를 위한 제 2 모드 중 적어도 하나를 포함하고,
    상기 정적인 명령은 고정된 스트링을 포함하고,
    상기 역동적 명령은 표현 구문을 포함하는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 매체.
  29. 제 28항에 있어서,
    상기 음성 신호와 상기 명령의 발음 매칭(phonetic matching)을 통해 음성 명령을 해석하는 단계;를 더 포함하는 것을 특징으로 하는, 비일시적 컴퓨터 판독가능 매체.
  30. 제 29항에 있어서,
    디스플레이 장치에 디스플레이되는 애플리케이션의 선택 가능 객체는 상기 디스플레이 장치에 디스플레이되는 모든 선택 가능 객체 및 현재 아이템의 좌표를 이용하여 동적으로 산출되는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 매체.
KR1020130101666A 2013-03-14 2013-08-27 애플리케이션의 음성 제어 시스템 및 애플리케이션의 음성 제어 방법 KR102115926B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/831,113 US9218052B2 (en) 2013-03-14 2013-03-14 Framework for voice controlling applications
US13/831,113 2013-03-14

Publications (2)

Publication Number Publication Date
KR20140113263A KR20140113263A (ko) 2014-09-24
KR102115926B1 true KR102115926B1 (ko) 2020-05-27

Family

ID=51531845

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130101666A KR102115926B1 (ko) 2013-03-14 2013-08-27 애플리케이션의 음성 제어 시스템 및 애플리케이션의 음성 제어 방법

Country Status (2)

Country Link
US (1) US9218052B2 (ko)
KR (1) KR102115926B1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140282273A1 (en) * 2013-03-15 2014-09-18 Glen J. Anderson System and method for assigning voice and gesture command areas
CN105334997A (zh) * 2014-08-12 2016-02-17 扬智科技股份有限公司 智能输入装置及其设定方法与控制方法
WO2016029045A2 (en) * 2014-08-21 2016-02-25 Jobu Productions Lexical dialect analysis system
KR102245747B1 (ko) 2014-11-20 2021-04-28 삼성전자주식회사 사용자 명령어 등록을 위한 디스플레이 장치 및 방법
KR101678087B1 (ko) 2015-02-16 2016-11-23 현대자동차주식회사 차량 및 그 제어방법
US10770067B1 (en) * 2015-09-08 2020-09-08 Amazon Technologies, Inc. Dynamic voice search transitioning
US20170147286A1 (en) * 2015-11-20 2017-05-25 GM Global Technology Operations LLC Methods and systems for interfacing a speech dialog with new applications
CN107289964B (zh) * 2016-03-31 2020-04-14 高德信息技术有限公司 一种导航语音播报方法及装置
US10210864B2 (en) * 2016-12-29 2019-02-19 T-Mobile Usa, Inc. Voice command for communication between related devices
US20180217810A1 (en) * 2017-01-27 2018-08-02 Motorola Mobility Llc Context based voice commands
CN110874201B (zh) * 2018-08-29 2023-06-23 斑马智行网络(香港)有限公司 交互方法、设备、存储介质和操作系统
US11620102B1 (en) * 2018-09-26 2023-04-04 Amazon Technologies, Inc. Voice navigation for network-connected device browsers
WO2020145522A1 (en) * 2019-01-11 2020-07-16 Samsung Electronics Co., Ltd. A system and method for performing voice based browsing on an electronic device
US11482218B2 (en) * 2019-01-22 2022-10-25 Beijing Boe Technology Development Co., Ltd. Voice control method, voice control device, and computer-executable non-volatile storage medium
US11978448B2 (en) * 2019-02-26 2024-05-07 Lg Electronics Inc. Display device and method of operating the same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003274309A (ja) * 2002-03-12 2003-09-26 Canon Inc 受信装置
US20080059195A1 (en) * 2006-08-09 2008-03-06 Microsoft Corporation Automatic pruning of grammars in a multi-application speech recognition interface
US20120311070A1 (en) * 2011-05-31 2012-12-06 Fanhattan Llc Intelligent application adapted to multiple devices

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL142364A0 (en) 1998-10-02 2002-03-10 Ibm Conversational computing via conversational virtual machine
US6584439B1 (en) * 1999-05-21 2003-06-24 Winbond Electronics Corporation Method and apparatus for controlling voice controlled devices
ATE391986T1 (de) 2000-11-23 2008-04-15 Ibm Sprachnavigation in webanwendungen
US7324947B2 (en) * 2001-10-03 2008-01-29 Promptu Systems Corporation Global speech user interface
US20060075429A1 (en) 2004-04-30 2006-04-06 Vulcan Inc. Voice control of television-related information
US7940338B2 (en) 2006-10-31 2011-05-10 Inventec Corporation Voice-controlled TV set

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003274309A (ja) * 2002-03-12 2003-09-26 Canon Inc 受信装置
US20080059195A1 (en) * 2006-08-09 2008-03-06 Microsoft Corporation Automatic pruning of grammars in a multi-application speech recognition interface
US20120311070A1 (en) * 2011-05-31 2012-12-06 Fanhattan Llc Intelligent application adapted to multiple devices

Also Published As

Publication number Publication date
KR20140113263A (ko) 2014-09-24
US9218052B2 (en) 2015-12-22
US20140278440A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
KR102115926B1 (ko) 애플리케이션의 음성 제어 시스템 및 애플리케이션의 음성 제어 방법
KR102490776B1 (ko) 디지털 개인 비서 내에서 헤드리스로 작업을 완료하기 위한 기법
US10074365B2 (en) Voice control method, mobile terminal device, and voice control system
US9383827B1 (en) Multi-modal command display
US8259082B2 (en) Multimodal portable communication interface for accessing video content
JP6618223B2 (ja) 音声処理方法及び装置
US10860289B2 (en) Flexible voice-based information retrieval system for virtual assistant
KR20150089145A (ko) 음성 제어를 수행하는 디스플레이 장치 및 그 음성 제어 방법
US10528320B2 (en) System and method for speech-based navigation and interaction with a device's visible screen elements using a corresponding view hierarchy
KR102249054B1 (ko) 온스크린 키보드에 대한 빠른 작업
JP2020118955A (ja) 非表音文字体系を使用する言語のための音声支援型アプリケーションプロトタイプの試験中の音声コマンドマッチング
US20120278719A1 (en) Method for providing link list and display apparatus applying the same
JP2013037688A (ja) 電子装置及びその制御方法
JP2013037689A (ja) 電子装置及びその制御方法
JP2014532933A (ja) 電子装置及びその制御方法
JP2013041579A (ja) 電子装置及びその制御方法
KR20130018464A (ko) 전자 장치 및 그의 제어 방법
US20180341466A1 (en) Voice-enabled user interface framework
JP2014049140A (ja) 使用者デバイスで入力文字を利用した知能型サービス提供方法及び装置
KR20200115625A (ko) 개인화된 의도 학습 방법
JP2014106523A (ja) 音声入力対応装置及び音声入力対応プログラム
JP2019175453A (ja) ユーザ音声入力の処理を含むシステム及びその動作方法並びに電子装置
CN108829686A (zh) 翻译信息显示方法、装置、设备及存储介质
KR20210038812A (ko) 음성 제어 방법, 장치, 전자 기기 및 판독 가능 저장 매체
CN117409774A (zh) 语音引导方法、装置、电子设备及计算机可读存储介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant