KR20230074544A - 실시간 및 파일 기반 오디오 데이터 프로세싱 - Google Patents
실시간 및 파일 기반 오디오 데이터 프로세싱 Download PDFInfo
- Publication number
- KR20230074544A KR20230074544A KR1020237013865A KR20237013865A KR20230074544A KR 20230074544 A KR20230074544 A KR 20230074544A KR 1020237013865 A KR1020237013865 A KR 1020237013865A KR 20237013865 A KR20237013865 A KR 20237013865A KR 20230074544 A KR20230074544 A KR 20230074544A
- Authority
- KR
- South Korea
- Prior art keywords
- audio data
- electronic device
- sequence
- data samples
- audio
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 219
- 238000000034 method Methods 0.000 claims abstract description 70
- 230000005236 sound signal Effects 0.000 claims abstract description 62
- 230000008569 process Effects 0.000 claims abstract description 39
- 230000009471 action Effects 0.000 claims description 43
- 230000004044 response Effects 0.000 claims description 32
- 238000012546 transfer Methods 0.000 claims description 24
- 230000005540 biological transmission Effects 0.000 claims description 17
- 238000005070 sampling Methods 0.000 claims description 13
- 238000003672 processing method Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 42
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 230000004913 activation Effects 0.000 description 5
- 238000005266 casting Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 3
- 238000003825 pressing Methods 0.000 description 3
- 230000007812 deficiency Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000994 depressogenic effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1059—End-user terminal functionalities specially adapted for real-time communication
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1083—In-session procedures
- H04L65/1094—Inter-user-equipment sessions transfer or sharing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/402—Support for services or applications wherein the services involve a main real-time session and one or more additional parallel non-real time sessions, e.g. downloading a file in a parallel FTP session, initiating an email or combinational services
- H04L65/4025—Support for services or applications wherein the services involve a main real-time session and one or more additional parallel non-real time sessions, e.g. downloading a file in a parallel FTP session, initiating an email or combinational services where none of the additional parallel sessions is real time or time sensitive, e.g. downloading a file in a parallel FTP session, initiating an email or combinational services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/422—Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
- H04N21/42204—User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Human Computer Interaction (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Telephonic Communication Services (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Computer And Data Communications (AREA)
- Circuit For Audible Band Transducer (AREA)
Abstract
이 애플리케이션은 실시간으로 또는 일괄적으로 오디오 데이터를 동적으로 전송하는 것에 관한 것이다. 제1 전자 디바이스의 마이크로폰은 오디오 신호들을 캡처한다. 오디오 신호들은 오디오 데이터 샘플들의 제1 시퀀스 및 제1 시퀀스에 후속하는 오디오 데이터 샘플들의 제2 시퀀스를 제공하도록 샘플링된다. 제2 전자 디바이스는 오디오 데이터 샘플들의 제1 및 제2 시퀀스를 수신하고, 실시간 데이터 프로세싱 모드에 따라 오디오 데이터 샘플들의 제1 시퀀스를 오디오 데이터 패킷들로 프로세싱한다. 제2 전자 디바이스는 실시간 데이터 프로세싱 모드에서 제2 전자 디바이스가 오디오 데이터 샘플들의 프로세싱을 지원할 수 없다고 결정하고, 배치 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 제2 시퀀스를 버퍼에 캐싱하고, 오디오 데이터 샘플들의 제2 시퀀스를 포함하는 데이터 파일을 생성한다.
Description
본 출원은 2020년 10월 2일에 출원된 미국 가출원 번호 63/086,953의 우선권을 주장하며, 그 전체 내용이 여기에 참조로 포함된다.
이 애플리케이션은 일반적으로 오디오 데이터 전송 및 프로세싱에 관한 것으로, 전자 디바이스들에서 데이터 전송 및 스피치 인식을 용이하게 하기 위해 실시간 및 파일 기반 오디오 데이터 프로세싱을 제공하는 방법들 및 시스템들을 포함하지만 이에 한정되지는 않는다.
마이크로폰들을 갖는 전자 디바이스들은 사용자들로부터 보이스 입력들을 수집하고 보이스 입력들에 따라 상이한 보이스 활성화 기능들을 개시하는 어시스턴트 디바이스들로서 널리 사용된다. 예를 들어, 디지털 텔레비전 디바이스들에 결합된 많은 원격 제어 디바이스들은 마이크로폰들을 통합하도록 구성된다. 이러한 원격 제어 디바이스들의 보이스 입력들은 디지털 텔레비전 디바이스들로 스트리밍되고 디지털 텔레비전 디바이스들에 의해 적어도 부분적으로 프로세싱된다. 디지털 텔레비전 디바이스들은 추가 오디오 프로세싱을 위해 원격 서버 시스템에 보이스 입력들(사전 프로세싱 여부와 상관없이)을 제출할 수 있다. 사용자 요청들은 텔레비전 디바이스들 및/또는 원격 서버 시스템에서 오디오 프로세싱의 결과로 보이스 활성화 기능들을 개시하기 위한 보이스 입력들에서 추출된다. 텔레비전 디바이스들의 통신, 캐싱 및 프로세싱 능력들의 결함으로 인해 보이스 활성화 기능들의 개시가 지연될 수 있다. 이는 능력들이 제한된 저가 TV 디바이스들에서 자주 발생한다. 이러한 디바이스들의 통신, 캐싱 또는 프로세싱 능력들의 결함을 보완하기 위해 현재 관행보다 더 효율적인 데이터 프로세싱 및 전송 메커니즘을 갖는 것이 유리할 것이다.
이 애플리케이션은 마이크로폰들을 갖는 전자 디바이스(예: 원격 제어 디바이스, 어시스턴트 디바이스)로부터 수신된 오디오 데이터를 프로세싱 및 전송하는 것에 관한 것이다. 전자 디바이스는 오디오 프로세싱 능력들을 가진 다른 전자 디바이스(예: 텔레비전 디바이스)에 결합되거나 오디오 프로세싱 능력들을 가진 서버에 연결된다. 이 두 전자 디바이스들은 통신 채널을 통해 결합된다. 오디오 데이터는 통신 채널을 통해 실시간으로 전송되며, 수신 전자 디바이스의 통신, 계산 및 저장이 실시간으로 오디오 데이터 샘플들의 프로세싱을 지원할 수 있는지 여부에 따라 수신 전자 디바이스에 의해 실시간으로 또는 일괄로 프로세싱된다. 따라서 실시간 오디오 데이터 프로세싱은 배치(batch) 오디오 데이터 프로세싱에 의해 보완되며, 특히 오디오 데이터를 실시간으로 통신, 캐싱 또는 프로세싱할 수 있는 충분한 리소스를 가지고 있지 않은 일부 전자 디바이스들에서는 더욱 그러하다.
구체적으로, 일 양태에서, 오디오 데이터 프로세싱 방법, 예를 들어 실시간 데이터 프로세싱 모드에서 배치 데이터 프로세싱 모드로 전환하는 방법이 구현된다. 방법은 제2 전자 디바이스(예: 텔레비전 디바이스)에 의해, 제1 전자 디바이스(예: 원격 제어 디바이스)로부터, 오디오 데이터 샘플들의 제1 시퀀스 및 오디오 데이터 샘플들의 제2 시퀀스를 수신하는 단계를 포함한다. 상기 오디오 데이터 샘플들의 제2 시퀀스는 제1 전자 디바이스의 마이크로폰에 의해 캡처된 오디오 신호들에서 오디오 데이터 샘플들의 제1 시퀀스에 후속한다. 방법은 제2 전자 디바이스에 의해 실시간 데이터 프로세싱 모드에 따라 오디오 데이터 샘플들의 제1 시퀀스를 프로세싱하는 단계 및 제2 전자 디바이스가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 없다고 결정하는 단계를 더 포함한다. 방법은 제2 전자 디바이스가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 없다는 결정에 따라, 배치 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 제2 시퀀스를 제2 전자 디바이스의 버퍼에 캐싱하는 단계 및 오디오 데이터 샘플들의 제2 시퀀스를 포함하는 데이터 파일을 생성하는 단계를 더 포함한다.
대안적으로, 다른 양태에서, 오디오 데이터 프로세싱 방법, 예를 들어 배치 데이터 프로세싱 모드에서 실시간 데이터 프로세싱 모드로 전환하는 방법이 구현된다. 방법은 제2 전자 디바이스(예: 텔레비전 디바이스)에 의해, 제1 전자 디바이스(예: 원격 제어 디바이스)로부터, 오디오 데이터 샘플들의 제1 시퀀스 및 오디오 데이터 샘플들의 제2 시퀀스를 수신하는 단계를 포함한다. 오디오 데이터 샘플들의 제2 시퀀스는 제1 전자 디바이스의 마이크로폰에 의해 캡처된 오디오 신호들에서 오디오 데이터 샘플들의 제1 시퀀스에 후속한다. 방법은 제2 전자 디바이스에 의해 배치 데이터 프로세싱 모드에 따라 오디오 데이터 샘플들의 제1 시퀀스를 프로세싱하는 단계를 더 포함하며, 이 단계는 오디오 데이터 샘플들의 제1 시퀀스를 제2 전자 디바이스의 버퍼에 캐싱하는 단계 및 오디오 데이터 샘플들의 제1 시퀀스를 포함하는 데이터 파일을 생성하는 단계를 더 포함한다. 방법은 제2 전자 디바이스가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 있다고 결정하는 단계를 더 포함한다. 방법은 제2 전자 디바이스가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 있다는 결정에 따라, 제2 전자 디바이스에 의해 실시간 데이터 프로세싱 모드에 따라 오디오 데이터 샘플들의 제2 시퀀스를 프로세싱하는 단계를 더 포함한다.
비일시적 컴퓨터 판독가능 매체는 하나 이상의 프로세서들에 의해 실행될 때 프로세서들로 하여금 상기 방법들 중 임의의 방법을 수행하게 하는 명령어들을 저장한다. 전자 디바이스는 하나 이상의 프로세서들 및 저장된 명령어들을 갖는 메모리를 포함하며, 상기 명령어들은 하나 이상의 프로세서들에 의해 실행될 때 프로세서들로 하여금 상기 방법들 중 임의의 방법을 수행하게 한다.
설명된 다양한 구현예들의 더 나은 이해를 위해, 동일한 참조 번호가 도면 전체에 걸쳐 대응하는 부분을 나타내는 다음 도면들과 함께, 아래 구현예들의 설명을 참조해야 한다.
도 1은 일부 구현예들에 따른, 네트워크 연결된 TV 디바이스, 원격 제어 디바이스 및 서버 시스템이 하나 이상의 통신 네트워크들을 통해 서로 상호 작용하는 예시적인 미디어 환경이다.
도 2는 일부 구현예들에 따른, 제1 전자 디바이스와 제2 전자 디바이스 사이의 예시적인 오디오 데이터 전송 경로이다.
도 3은 일부 구현예들에 따른, 실시간 데이터 프로세싱 모드에서 배치 데이터 프로세싱 모드로 전환하는 예시적인 오디오 데이터 프로세싱 프로세스를 나타내는 개략도이다.
도 4는 일부 구현예들에 따른, 배치 데이터 프로세싱 모드에서 실시간 데이터 프로세싱 모드로 전환하는 예시적인 오디오 데이터 프로세싱 프로세스를 나타내는 개략도이다.
도 5는 일부 구현예들에 따른, 사용자 액션 또는 보이스 입력에 의해 개시되는 예시적인 보이스 어시스턴트 프로세스를 나타내는 개략도이다.
도 6은 일부 구현예들에 따른, 텔레비전 디바이스에 오디오 데이터를 전송하도록 구성된 예시적인 원격 제어 디바이스를 도시한다.
도 7은 일부 구현예들에 따른, 2개의 오디오 데이터 프로세싱 모드에서 동적으로 오디오 데이터를 프로세싱하기 위한 방법의 흐름도이다.
도 8은 일부 구현예들에 따른, 2개의 오디오 데이터 프로세싱 모드에서 동적으로 오디오 데이터를 프로세싱하기 위한 또 다른 방법의 흐름도이다.
동일한 참조 번호는 도면의 여러 보기들에서 대응하는 부분들을 나타낸다.
도 1은 일부 구현예들에 따른, 네트워크 연결된 TV 디바이스, 원격 제어 디바이스 및 서버 시스템이 하나 이상의 통신 네트워크들을 통해 서로 상호 작용하는 예시적인 미디어 환경이다.
도 2는 일부 구현예들에 따른, 제1 전자 디바이스와 제2 전자 디바이스 사이의 예시적인 오디오 데이터 전송 경로이다.
도 3은 일부 구현예들에 따른, 실시간 데이터 프로세싱 모드에서 배치 데이터 프로세싱 모드로 전환하는 예시적인 오디오 데이터 프로세싱 프로세스를 나타내는 개략도이다.
도 4는 일부 구현예들에 따른, 배치 데이터 프로세싱 모드에서 실시간 데이터 프로세싱 모드로 전환하는 예시적인 오디오 데이터 프로세싱 프로세스를 나타내는 개략도이다.
도 5는 일부 구현예들에 따른, 사용자 액션 또는 보이스 입력에 의해 개시되는 예시적인 보이스 어시스턴트 프로세스를 나타내는 개략도이다.
도 6은 일부 구현예들에 따른, 텔레비전 디바이스에 오디오 데이터를 전송하도록 구성된 예시적인 원격 제어 디바이스를 도시한다.
도 7은 일부 구현예들에 따른, 2개의 오디오 데이터 프로세싱 모드에서 동적으로 오디오 데이터를 프로세싱하기 위한 방법의 흐름도이다.
도 8은 일부 구현예들에 따른, 2개의 오디오 데이터 프로세싱 모드에서 동적으로 오디오 데이터를 프로세싱하기 위한 또 다른 방법의 흐름도이다.
동일한 참조 번호는 도면의 여러 보기들에서 대응하는 부분들을 나타낸다.
많은 전자 디바이스들(예: 원격 제어 디바이스, 보이스 활성화 디스플레이 또는 스피커 디바이스들)에는 전자 디바이스들이 배치된 환경에서 보이스 입력들을 수집하는 데 사용되는 마이크로폰들이 포함되어 있다. 이러한 전자 디바이스는 오디오 신호에서 핫 워드들을 검출하거나 사용자가 전자 디바이스의 전용 어시스턴트 버튼을 누르는 것에 응답하여 보이스 입력들을 자동으로 수집하도록 구성될 수 있다. 보이스 입력을 수신하면, 전자 디바이스는 하나 이상의 통신 네트워크를 통해 원격 서버 시스템(예: 어시스턴트 서버)에 보이스 입력을 통신하고, 원격 서버 시스템은 보이스 입력에서 사용자 요청을 인식하고 사용자 요청에 응답한다. 예를 들어, 전자 디바이스는 원격 제어 디바이스를 포함하고, 보이스 입력은 원격 제어 디바이스에 결합된 네트워크 연결된 텔레비전(TV) 디바이스를 제어하기 위해 개시된다. 원격 제어 디바이스는 보이스 입력을 TV 디바이스를 통해 원격 서버 시스템으로 전송하고, 보이스 입력은 TV 디바이스가 원격 서버 시스템에 보이스 입력을 전송하기 전에 TV 디바이스에서 프로세싱된다. 보이스 입력을 프로세싱하는 프로세스에서, TV 디바이스는 통신, 계산 및 저장 능력들을 사용하여 원격 제어 디바이스와 원격 서버 시스템을 연결한다.
TV 디바이스의 오디오 관리자에게 전달되는 오디오 데이터는 원격 제어 디바이스의 마이크로폰에 의해 수집된 것과 상이할 수 있다. 이는 원격 제어와 TV 디바이스들을 결합하는 통신 채널을 통한 데이터 패킷들의 손실 및 지연, TV 디바이스의 프로세서 부하와 같은 다양한 요인들로 인해 발생한다. 이 애플리케이션의 다양한 구현예들에서, 실시간 데이터 프로세싱 및 파일 기반 배치 데이터 프로세싱의 조합은 제1 전자 디바이스(예: 원격 제어 디바이스)의 마이크로폰에 의해 수집된 오디오 데이터를 프로세싱하기 위해 제2 전자 디바이스(예: TV 디바이스)에서 구현된다. 일부 구현예들에서는, 실시간 데이터 프로세싱이 파일 기반 배치 데이터 프로세싱보다 우선한다. 제2 전자 디바이스의 통신, 계산 및 저장 능력들 중 적어도 하나가 오디오 데이터 샘플들의 실시간 프로세싱을 지원할 수 없다고 결정되면, 후속 데이터 샘플들은 캐싱되고 제2 전자 디바이스에서 데이터 파일로 조직화된다(예: 오디오 관리자와 별개의 오디오 데이터 프로세싱 모듈에 의해 프로세싱됨). 대안적으로, 제2 전자 디바이스의 통신, 계산 및 저장 능력들이 오디오 데이터 샘플들의 프로세싱을 실시간으로 지원할 수 있다고 결정되면, 후속 데이터 샘플들은 실시간으로 제2 전자 디바이스에 의해 데이터 패킷들로 프로세싱된다(예: 제2 전자 디바이스의 운영 시스템의 일부인 오디오 관리자에 의해 프로세싱됨). 이러한 제어되는 오디오 데이터 전송 프로세스는 제2 전자 디바이스에서 데이터 프로세싱 및 통신을 간소화하고 전자 디바이스들과 사용자 상호 작용을 개시하는 보이스 입력들과 연관된 성능, 오디오 품질 및 사용자 경험을 개선한다.
첨부된 도면들에 도시된 실시예들에 대한 참조가 이제 상세하게 이루어질 것이다. 다음의 상세한 설명에서, 설명된 다양한 구현예들의 완전한 이해를 제공하기 위해 많은 구체적인 세부사항들이 제시된다. 그러나, 기술된 다양한 구현예들이 이들 특정 세부사항들 없이 실시될 수 있다는 것이 당업자에게 명백할 것이다. 다른 경우에, 잘 알려진 방법들, 절차들, 구성요소들, 회로들 및 네트워크들은 구현예들의 양태들을 불필요하게 모호하게 하지 않기 위해 자세히 설명하지 않았다.
도 1은 일부 구현예들에 따라, 네트워크 연결된 TV 디바이스(102), 원격 제어 디바이스(104) 및 서버 시스템(106)이 하나 이상의 통신 네트워크들(180)을 통해 서로 상호작용하는 예시적인 미디어 환경(100)이다. 미디어 환경(100)은 서버 시스템(106)에 의해 생성되고 호스팅되는 가상 사용자 도메인에 대응하고, 가상 사용자 도메인은 복수의 사용자 계정들을 포함한다. 각각의 사용자 계정에 대해, 서버 시스템(106)은 콘텐츠 소스(110) 및 하나 이상의 미디어 디바이스들(102 및 116-126)에 결합되고, 각각의 사용자 계정을 통해 사용자에 의한 리뷰를 위해 콘텐츠 소스(110)에 의해 제공되는 미디어 콘텐츠를 스트리밍하도록 구성된다. 선택적으로, 콘텐츠 소스(110)는 광고 소스들, 전자 프로그램 가이드(EPG) 소스들 및 미디어 콘텐츠 소스들 중 하나 이상을 포함한다.
구체적으로, 사용자 및 사용자 계정과 연관된 하나 이상의 미디어 디바이스들은 콘텐츠 소스(110)에 저장되고 콘텐츠 소스(110)로부터 스트리밍되는 미디어 콘텐츠를 사용자에게 제공하기 위해 미디어 환경(100)에 배치된다. 콘텐츠 소스(110)는 선택적으로 서버 시스템(106)에 의해 호스팅되는 제3자 미디어 콘텐츠 소스 또는 내부 미디어 소스이다. 일부 구현예들에서, 하나 이상의 미디어 디바이스들은 원격 콘텐츠 소스로부터 미디어 콘텐츠를 직접 스트리밍하거나 시청자에게 디스플레이하기 위해 미디어 콘텐츠를 스트리밍하도록 구성된 임베디드 캐스팅 유닛을 통합하는 네트워크 연결된 TV 디바이스(102)를 포함한다. 네트워크 연결된 TV 디바이스(102)는 전용 원격 제어 디바이스(104) 및/또는 원격 제어 애플리케이션을 갖는 전자 디바이스(예: 휴대폰(122), 태블릿 컴퓨터(124), 랩탑 컴퓨터(126), 어시스턴트 디바이스(138))에 통신적으로 결합된다. 전용 원격 제어 디바이스(104)는 TV 디바이스(102)에 근접하게 배치될 수 있고 디지털 코딩된 적외선 신호 펄스로 TV 디바이스(102)와 통신하도록 구성될 수 있다. 대안적으로, 일부 상황에서, 전용 원격 제어 디바이스(104) 또는 원격 제어 애플리케이션을 갖는 전자 디바이스는 통신 네트워크들(180)을 통해(즉, 단거리 통신 링크, LAN 및 /또는 광역 네트워크를 통해) TV 디바이스(102)와 통신하도록 구성되며, TV 디바이스(102)에 물리적으로 근접할 필요는 없다.
네트워크 연결된 TV 디바이스(102)는 하나 이상의 프로세서들 및 하나 이상의 프로세서들에 의한 실행을 위한 명령어들을 저장하는 메모리를 포함한다. 네트워크 연결된 TV 디바이스(102)에 저장된 명령어들은 통합 TV 애플리케이션, 로컬 콘텐츠 캐스팅 애플리케이션, 원격 제어 애플리케이션, 어시스턴트 애플리케이션 및 콘텐츠 소스(110)와 연관된 하나 이상의 미디어 재생 애플리케이션들 중 하나 이상을 포함한다. 이러한 애플리케이션들은 TV 디바이스(102)의 운영 시스템과 구별되는 사용자 애플리케이션들이며 미디어 환경(100)의 가상 사용자 도메인에서 사용자 계정에 선택적으로 링크된다. 또한, 네트워크 연결된 TV 디바이스(102)는 데이터 패킷 레벨에서 오디오 데이터를 프로세싱하기 위해 운영 시스템에 통합된 오디오 관리자(예: 도 2의 234)를 포함한다.
대안적으로, 일부 구현예들에서, 미디어 환경(100)에 배치된 미디어 디바이스들은 미디어 콘텐츠를 청중에게 직접 출력하는 디스플레이 디바이스(116) 및 미디어 콘텐츠를 디스플레이 디바이스(116)들에 스트리밍하도록 결합되어 구성되는 캐스팅 디바이스(118)를 포함한다. 디스플레이 디바이스(116)의 예는 텔레비전(TV) 디스플레이 디바이스 및 뮤직 플레이어를 포함하지만 이에 제한되지 않는다. 캐스팅 디바이스(118)의 예는 셋톱 박스(STB), DVD 플레이어 및 TV 박스를 포함하지만 이에 제한되지 않는다. 그림 1에 표시된 이 예에서, 디스플레이 디바이스(116)는 DVD 플레이어 또는 셋톱 박스(118)에 유선으로 연결된 TV 디스플레이를 포함한다. 반대로, 일부 구현예들에서, 미디어 환경(100)에 배치된 미디어 디바이스들은 청중에게 미디어 콘텐츠를 출력하는 컴퓨터 스크린(120A) 및 미디어 콘텐츠를 컴퓨터 스크린(120A)으로 스트리밍하는 데스크탑 컴퓨터(120B)를 포함한다. 일부 구현예들에서, 미디어 환경(100)에 배치된 미디어 디바이스들은 모바일 디바이스, 예를 들어 휴대폰(122), 태블릿 컴퓨터(124) 및 랩탑 컴퓨터(126)를 포함한다. 각각의 미디어 디바이스들(118-126)은 콘텐츠 소스(110) 또는 서버 시스템(106)과 연관된 내부 미디어 소스에 의해 제공되는 미디어 콘텐츠 항목들을 수신하고 재생하도록 구성된 하나 이상의 미디어 재생 애플리케이션들을 포함한다.
서버 시스템(106)은 미디어 환경(100)의 하나 이상의 미디어 디바이스들에 대한 미디어 콘텐츠 추천 및 스트리밍을 관리하도록 구성된 통합 미디어 플랫폼(I-JWP)(128)을 포함한다. I-AAP(128)에 의해 생성된 미디어 콘텐츠 추천들은 서버측 TV 애플리케이션(134)을 통해 네트워크 연결된 TV 디바이스(102)에 제시되고, 서버측 TV 애플리케이션(134)은 미디어 콘텐츠 추천들로부터의 사용자 선택에 응답하여 TV 디바이스(102) 상의 통합 TV 애플리케이션에 미디어 콘텐츠를 디스플레이하게 할 수 있다. 또한, UNIP(128)는 TV 디바이스(102) 외에 다른 미디어 디바이스들(118-126)에 미디어 콘텐츠 추천들을 제공하도록 구성된 중앙집중식 미디어 콘텐츠 관리 모듈로서 기능할 수 있다. 일부 구현예들에서, 각각의 사용자 계정과 연관된 활동 데이터는 TV 애플리케이션(134) 및 캐스팅 서비스 모듈(136)로부터 수집되고, 사용자 계정의 사용자에게 제공되는 미디어 콘텐츠 추천들을 개인화하는 데 사용된다.
일부 구현예들에서, 미디어 디바이스들(102, 104, 116-126) 중 하나 이상에 더하여, 서버 시스템(106)에 의해 호스팅되는 가상 사용자 도메인의 사용자 계정은 또한 다른 유형의 하나 이상의 디바이스들, 예를 들어 미디어 환경(100)에 설치된 네트워크 연결된 어시스턴트 디바이스들(138)와 연관된다. 어시스턴트 디바이스들(138)의 예는 스피커 어시스턴트 디바이스(142) 및 디스플레이 어시스턴트 디바이스(144)를 포함한다. 스피커 어시스턴트 디바이스(142)는 오디오 입력들을 수집하고, 오디오 입력들로부터 사용자 명령들을 인식하고, 사용자 명령들에 응답하여 동작들(예: 음악 재생, 질문에 답하기)을 구현할 수 있다. 디스플레이 어시스턴트 디바이스(144)는 오디오 및/또는 비디오 입력들을 수집하고, 오디오 및/또는 비디오 입력들로부터 사용자 명령들을 인식하고, 동작들(예: 음악 재생, 이미지 또는 비디오 클립 제시, 질문에 답하기)을 구현할 수 있다. 각각의 어시스턴트 디바이스들(138)은 선택적으로 전용 디바이스 애플리케이션 또는 일반 사용자 애플리케이션(예: 웹 브라우저)에 의해 관리되며, 네트워크에 연결된 TV 디바이스(102)의 통합 TV 애플리케이션과 함께 가상 도메인의 사용자 계정에 링크된다.
또한, 일부 구현예들에서, 서버 시스템(106)은 선택적으로 인공 지능에 의해 구동되는 어시스턴트 모듈(140)을 포함한다. 어시스턴트 모듈(140)은 마이크로폰에 의해 수집된 보이스 입력들부터 사용자 요청들을 인식하고 인터넷 검색, 이벤트 및 알람 예약, 하드웨어 설정 조정, 공개 또는 비공개 정보 제시, 미디어 콘텐츠 항목 재생, 사용자와 양방향 대화, 제품 구매, 머니 송금 등의 동작들을 개시하도록 구성된다. 마이크로폰은 미디어 환경(100)에 배치된 임의의 미디어 디바이스들(102, 104, 116-126) 및 어시스턴트 디바이스들(138)에 통합된다. 일부 구현예들에서, 어시스턴트 모듈(140)은 마이크로폰에 의해 수집된 보이스 입력들을 프로세싱하고 예를 들어 자연어 프로세싱(NLP) 알고리즘을 사용하여 보이스 입력들로부터 사용자 요청들을 식별하도록 구성된 스피치 인식 모듈(160)에 결합된다.
일부 구현예들에서, 서버 시스템(106)은 서버 시스템(106)에 의해 관리되는 하나 이상의 사용자 계정들의 정보 및 하나 이상의 사용자 계정들 각각과 연관된 사용자 디바이스들 및 애플리케이션들의 정보를 저장하도록 구성된 디바이스 및 애플리케이션 레지스트리(150)를 포함한다. 예를 들어, 디바이스 및 애플리케이션 레지스트리(150)는 네트워크 연결된 TV 디바이스(102), 원격 제어 디바이스(104), 미디어 디바이스들(116-126), 어시스턴트 디바이스들(138)의 정보 및 대응하는 통합 TV 애플리케이션, 원격 제어 애플리케이션, 미디어 플레이 애플리케이션들, 및 어시스턴트 디바이스들(138)와 연관된 전용 디바이스 애플리케이션들의 정보를 저장한다.
선택적으로, 동일한 사용자 계정과 연관된 이러한 미디어 디바이스들 및 어시스턴트 디바이스들은 서로 다른 지리적 영역들에 분산되어 있다. 선택적으로, 이러한 디바이스들은 동일한 물리적 위치에 있다. 각 미디어 또는 어시스턴트 디바이스는 하나 이상의 통신 네트워크들(180)을 사용하여 다른 디바이스 또는 서버 시스템(106)과 통신한다. 사용되는 통신 네트워크들(180)은 인터넷, 인트라넷, 로컬 영역 네트워크(LANs), 셀룰러 네트워크, 이더넷, 스토리지 영역 네트워크(SANs), 전화 네트워크, 블루투스 개인 영역 네트워크(PAN) 등을 포함하지만 이에 제한되지 않는 하나 이상의 유형의 토폴로지들을 갖는 하나 이상의 네트워크들일 수 있다. 일부 구현예들에서, 서브 네트워크에 있는 두 개 이상의 디바이스들이 유선 연결을 통해 결합되는 반면, 동일한 서브 네트워크에 있는 디바이스들 중 적어도 일부는 로컬 무선 통신 네트워크(예: ZigBee, Z-Wave, Insteon, Bluetooth, Wi-Fi 및 기타 무선 통신 네트워크들)를 통해 결합된다.
다양한 구현예들에서, 마이크로폰을 갖는 제1 전자 디바이스(예: 원격 제어 디바이스(104), 미디어 디바이스들(116-126) 중 임의의 디바이스, 어시스턴트 디바이스(138))는 하나 이상의 프로세서들 및 통신 채널을 통해 하나 이상의 프로세서들에 의해 실행될 명령어들을 저장하는 메모리를 갖는 제2 전자 디바이스(예: TV 디바이스(102) 또는 미디어 디바이스들(116) 중 임의의 디바이스)에 결합된다. 제1 전자 디바이스는 마이크로폰을 사용하여 오디오 신호를 캡처한다. 오디오 신호는 오디오 데이터 샘플들의 제1 시퀀스 및 오디오 데이터 샘플들의 제1 시퀀스에 후속하는 오디오 데이터 샘플들의 제2 시퀀스로 샘플링된다. 선택적으로, 오디오 데이터 샘플들의 제1 및 제2 시퀀스는 동일한 녹음 세션에서 또는 두 개의 개별 녹음 세션들 동안 녹음된다. 각각의 녹음 세션은 제1 전자 디바이스와의 각각의 사용자 액션(예: 사용자가 도 6의 어시스턴트 버튼(606)을 누름)에 의해 활성화된다. 제1 전자 디바이스는 오디오 데이터 샘플들의 제1 및 제2 시퀀스 모두를 제2 전자 디바이스로 전송하고, 제2 전자 디바이스는 실시간 데이터 프로세싱 모드 및 배치 데이터 프로세싱 모드 중 하나를 통해 오디오 데이터 샘플의 각 시퀀스를 프로세싱한다.
오디오 데이터 샘플들의 제1 시퀀스를 전송하는 동안 또는 전송한 후, 제2 전자 디바이스는 제2 전자 디바이스의 통신, 계산 및 저장 능력들이 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 있는지 여부를 결정한다. 제2 전자 디바이스의 통신, 계산 및 저장 능력들 중 적어도 하나가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 없는 경우, 제2 전자 디바이스는 배치 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 제2 시퀀스를 프로세싱한다(예: 도 2에서, 운영 시스템에 설치되거나 사용자 애플리케이션으로 설치된, 오디오 데이터 프로세싱 모듈(238)에 의해). 대조적으로, 제2 전자 디바이스가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 있는 경우, 제2 전자 디바이스는 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 제2 시퀀스를 프로세싱한다(예: 도 2에서, 운영 시스템에 통합된 오디오 관리자(234)에 의해). 이와 같이, 제2 전자 디바이스가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 없다고 결정함에 따라, 예를 들어 오디오 데이터의 에러 레이트 또는 레이턴시가 대응하는 에러 또는 레이턴시 허용 오차를 초과할 때, 배치 데이터 프로세싱 모드가 활성화된다.
도 2는 일부 구현예들에 따른 제1 전자 디바이스(202)와 제2 전자 디바이스(204) 사이의 예시적인 오디오 데이터 전송 경로(200)이다. 제1 전자 디바이스(202)는 오디오 신호(220)를 캡처하도록 구성된 마이크로폰(206)을 갖거나 이에 결합되고, 제2 전자 디바이스(204)는 통신 채널(208)을 통해 제1 전자 디바이스(202)에 결합된다. 오디오 신호(220)는 제1 전자 디바이스(202)에서 샘플링되고, 오디오 데이터 샘플들은 통신 채널(208)을 통해 제1 전자 디바이스(202)에서 제2 전자 디바이스(204)로 전송된다. 통신 채널(208)은 로컬 무선 통신 네트워크(예: ZigBee, Z-Wave, Insteon, Bluetooth, Wi-Fi 및 기타 무선 통신 네트워크들)를 포함하지만 이에 제한되지 않는 하나 이상의 통신 네트워크들(180)에 의해 활성화된다. 이 예시 오디오 데이터 전송 경로(200)에서, 통신 채널(208)은 제1 전자 디바이스(202)의 제1 블루투스 스택(208A) 및 제2 전자 디바이스(204)의 제2 블루투스 스택(208B)에 의해 집합적으로 활성화되는 블루투스 통신 링크를 통해 형성된다.
제1 전자 디바이스(202)는 마이크로폰(206)에 의해 캡처된 오디오 신호(220)의 오디오 데이터 샘플들을 획득하고 통신 채널(208)을 통해 제2 전자 디바이스로 전송될 오디오 데이터 샘플들을 조직화하도록 구성된 오디오 스트리밍 모듈(210)을 포함한다. 일부 구현예들에서, 오디오 스트리밍 모듈(210)은 오디오 데이터 샘플들의 서브세트를 오디오 데이터 패킷들의 정렬된 시퀀스로 그룹화한다. 각 데이터 패킷은 하나 이상의 연속적인 오디오 데이터 샘플들을 포함하고 선택적으로 미리 정의된 데이터 형식(예: MPEG-4 HE-ACC 코덱 포맷, EVRC 보이스 코덱 포맷)에 따라 프리앰블, 메시지 헤더, 인코딩 패킷 데이터, 더미 필드 및 무결성 검사 필드를 갖는다. 제1 블루투스 스택(208A)에 대한 입력에서, 오디오 데이터 패킷들의 복수의 정렬된 시퀀스들은 통신 채널(208)을 통한 전송을 위해 오디오 데이터(230)의 스트림으로 순차적으로 배열된다. 일부 구현예들에서, 동일한 데이터 패킷 시퀀스의 각 데이터 패킷은 미리 정의된 데이터 형식에 대응하는 반면, 두 개의 서로 다른 데이터 패킷 시퀀스들은 선택적으로 동일한 데이터 형식 또는 상이한 데이터 형식들에 대응한다.
제2 전자 디바이스(204)는 세 가지 레벨의 프로그램들, 즉 하드웨어 추상화 레이어(HAL)(216) 상의 커널, 디바이스 펌웨어(218) 및 애플리케이션 및 서비스 프로그램들(222)을 포함한다. HAL(216) 상의 커널 및 디바이스 펌웨어(218)는 제2 전자 디바이스(204)의 운영 시스템의 일부인 반면, 애플리케이션 및 서비스 프로그램들(222)은 운영 시스템 외부에 있으며 제조업체 또는 사용자가 특수한 컴퓨터 동작들(예: 게임, 웹 브라우징, 문서 편집, 미디어 재생)을 구현하기 위해 설치한다. 일부 구현예들에서, 제2 블루투스 스택(208B)을 통해 제1 전자 디바이스(202) 또는 임의의 다른 전자 디바이스로부터 선택적으로 발생하는 동작 데이터를 수신한 후, 제2 전자 디바이스(204)는 수신된 동작 데이터를 HAL(216) 상의 커널의 입력 이벤트 식별자(226)로 전달한다. 입력 이벤트 식별자(226)는 제2 블루투스 스택(208B)에 의해 수신된 데이터로부터 동작 데이터를 식별하고, 식별된 동작 데이터를 디바이스 펌웨어(218)의 입력 디스패처(228)에 제공한다. 입력 디스패처(228)는 동작 데이터를 제2 전자 디바이스(204)에 설치된 어시스턴트 애플리케이션(232)에 할당하여 동작 데이터에서 사용자 요청들을 인식하고 사용자 요청들에 응답하여 동작들을 개시한다.
일부 구현예들에서, 오디오 데이터(232)의 스트림은 제1 전자 디바이스(202)의 마이크로폰(206)에 의해 수집되고 커널/HAL(216)에 의해 제1 전자 디바이스(202)와 연관된 원격 제어 애플리케이션(236)으로 직접 디스패치된다. 원격 제어 애플리케이션(236)은 디바이스 펌웨어(218)의 오디오 관리자(234) 및 제2 전자 디바이스(204)에 설치된 어시스턴트 애플리케이션(232)과 협력(260)하여 오디오 데이터(230)의 스트림에서 사용자 요청들을 인식하고 이에 응답한다. 오디오 관리자(234)는 실시간 데이터 프로세싱 모드를 구현하고 데이터 패킷 레벨에서 오디오 데이터(230)를 프로세싱한다. 즉, 오디오 관리자(234)는 제1 전자 디바이스(202)로부터 수신된 오디오 데이터 패킷들의 복수의 정렬된 시퀀스들의 데이터 패킷들로부터 오디오 데이터 샘플들을 식별하고, 오류, 누락 및 비순차 데이터 패킷들을 보완하고, 수신된 오디오 데이터 샘플들을 다른 오디오 데이터 패킷들의 시퀀스로 조직화하고, 오디오 데이터 패킷들의 시퀀스를 후속 오디오 프로세싱 또는 전송을 위해 어시스턴트 애플리케이션(232)으로 전달(262)하도록 구성된다.
대안적으로, 일부 구현예들에서, 제2 전자 디바이스(204)는 배치 데이터 프로세싱 모드를 구현하고 제1 전자 디바이스(202)로부터 수신된 오디오 데이터(230)를 데이터 파일로 프로세싱하는 파일 기반 오디오 데이터 프로세싱 모듈(238)을 포함한다. 파일 기반 오디오 데이터 프로세싱 모듈(238)은 디바이스 펌웨어(218)(즉, 운영 시스템)에 통합되거나(238A) 애플리케이션 및 서비스 프로그램들(222) 중 사용자 애플리케이션으로 설치된다(238B). 원격 제어 애플리케이션(236)은 프로세싱 모듈(238)에 오디오 데이터(230)를 제공한다(270 또는 280). 프로세싱 모듈(238)은 제1 전자 디바이스(202)로부터 수신된 오디오 데이터 패킷들의 복수의 정렬된 시퀀스들의 데이터 패킷들로부터 오디오 데이터 샘플들을 식별하고, 데이터 파일의 데이터 패킷들을 캐싱하고, 그리고 후속 오디오 프로세싱 또는 전송을 위해 어시스턴트 애플리케이션(232)에 데이터 파일을 제공(272 또는 282)하도록 구성된다. 제2 전자 디바이스(204)는 데이터 파일을 저장하기 위한 오디오 데이터 버퍼(214)를 더 포함한다.
오디오 데이터 샘플들은 오디오 관리자(234)와 프로세싱 모듈(238)에 의해 각각 실시간 데이터 프로세싱 모드와 배치 데이터 프로세싱 모드로 교대로 프로세싱된다. 제2 전자 디바이스(204)는 제2 전자 디바이스(204)의 통신, 계산 및 저장 능력들이 오디오 데이터 샘플들의 실시간 전송을 지원할 수 있는지 여부에 따라 이들 두 오디오 데이터 프로세싱 모드 사이를 전환한다. 일부 구현예들에서, 이러한 결정 및 모드 전환은 오디오 데이터 패킷들의 정렬된 시퀀스가 오디오 관리자(234) 또는 프로세싱 모듈(238)에 의해 프로세싱되는 동안 동적으로 구현된다. 대안적으로, 이러한 결정 및 모드 전환은 2개의 별개의 녹음 세션들 사이, 즉 실시간 및 배치 데이터 프로세싱 모드 중 하나에 의해 각각 독립적으로 프로세싱되는 2개의 별개의 오디오 데이터 패킷들의 시퀀스들 사이에서 구현된다. 각각의 녹음 세션은 제1 전자 디바이스(202)에 대한 사용자 액션 또는 전자 디바이스(202)에 의해 수집된 오디오 데이터(230)로부터 검출된 보이스 활성화에 의해 선택적으로 활성화된다.
더 구체적으로, 오디오 데이터(230)의 스트림을 수신하면, 제2 전자 디바이스(204)는 오디오 데이터(230)를 모니터링하여 제2 전자 디바이스(204)의 통신, 계산 및 저장 능력들이 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 있는지 여부를 결정한다. 예를 들어, 제2 전자 디바이스(204)는 예를 들어 오디오 관리자(234)가 오디오 데이터(230)의 데이터 샘플들을 프로세싱하기 전 또는 후에, 오디오 데이터(230)의 데이터 샘플들의 데이터 샘플 레이턴시가 레이턴시 허용 오차를 초과하는지 여부를 실시간으로 결정한다. 다른 예에서, 제2 전자 디바이스(204)는 예를 들어 오디오 관리자(234)가 오디오 데이터(230)의 데이터 샘플들을 프로세싱하기 전 또는 후에, 오디오 데이터(230)의 데이터 샘플들 중 누락 오디오 데이터 샘플들의 레이트가 누락 레이트 허용 오차를 초과하는지 또는 오디오 데이터(230)의 데이터 샘플들 중 비순차 오디오 데이터 샘플들의 레이트가 비순차 레이트 허용 오차를 초과하는지 여부를 실시간으로 결정한다. 일부 구현예들에서, 제2 전자 디바이스(204)는 중앙 프로세싱 유닛(CPU) 사용률을 모니터링하고 CPU 사용률이 미리 결정된 사용률(예: 85%)을 초과하는 경우 실시간으로 오디오 데이터 샘플들의 프로세싱을 지원할 수 없다고 결정한다. 상기 결정 결과에 따라, 제2 전자 디바이스(204)는 오디오 관리자(234) 또는 파일 기반 오디오 데이터 프로세싱 모듈(238)을 선택하여 오디오 데이터(230)의 스트림을 각각 실시간으로 또는 일괄적으로 프로세싱한다.
일부 구현예들에서, 제2 전자 디바이스(204)는 오디오 관리자(234) 또는 프로세싱 모듈(238)의 출력을 로컬에서 프로세싱하여 사용자의 프라이버시를 보호할 목적으로 사용자 요청들을 인식하고, 선택적으로 제1 전자 디바이스(202)를 제어하기 위해 원격 제어 애플리케이션(236)에 프로세싱된 출력을 제공하도록 구성된다. 대안적으로, 일부 구현예들에서, 제2 전자 디바이스(204)는 오디오 관리자(234) 또는 프로세싱 모듈(238)의 출력을 원격 서버 시스템(106)으로 전송하기 전에 사전 프로세싱하여 사용자 요청을 인식하도록 구성된다. 대안적으로, 일부 구현예들에서, 제2 전자 디바이스(204)는 예를 들어 제2 전자 디바이스(204)가 저비용 디바이스가 되도록 의도될 때 제한된 스피치 인식 능력을 갖는다. 제2 전자 디바이스(204)는 오디오 관리자(234) 또는 프로세싱 모듈(238)의 전체 출력을 원격 서버 시스템(106)으로 전송하고 서버 시스템(106)에 의존하여 그로부터의 사용자 요청들을 인식하도록 구성된다.
도 3은 일부 구현예들에 따라 실시간 데이터 프로세싱 모드에서 배치 데이터 프로세싱 모드로 전환하는 예시적인 오디오 데이터 프로세싱 프로세스(300)를 도시하는 개략도이다. 오디오 신호(220)는 제1 전자 디바이스(202)의 마이크로폰(206)을 사용하여 캡처되고, 오디오 데이터 샘플들의 제1 시퀀스(302) 및 오디오 데이터 샘플들의 제1 시퀀스(302)에 후속하는 오디오 데이터 샘플들의 제2 시퀀스(304)를 획득하기 위해 오디오 샘플링 레이트로 샘플링된다. 오디오 데이터 샘플들의 제1 시퀀스(302)는 통신 채널(208)을 통해 제2 전자 디바이스(204)로 전송된다. 일부 구현예들에서, 제1 시퀀스(302) 및 제2 시퀀스(304)의 오디오 데이터 샘플들은 복수의 오디오 데이터 패킷들로 그룹화되고, 각 데이터 패킷에는 하나 이상의 연속적인 오디오 데이터 샘플들이 포함된다. 선택적으로, 오디오 데이터 샘플들의 제2 시퀀스(304)는 제1 시퀀스(302)에 바로 후속한다. 선택적으로, 오디오 데이터 샘플들의 제2 시퀀스(304)는 브레이크에 의해 제1 시퀀스(302)로부터 분리된다. 복수의 오디오 데이터 패킷들은 제2 전자 디바이스(204)로 스트리밍된다. 일부 상황에서, 하나 이상의 데이터 패킷들은 통신 채널(208)을 통해 전송되는 동안 제1 및 제2 시퀀스(302 및 304)로부터 재정렬되거나 드롭된다.
오디오 데이터 패킷들(308)은 오디오 데이터 샘플들의 제1 시퀀스(302)로부터 그룹화되고, 오디오 데이터 패킷들(308)의 오류, 누락 및 비순차 데이터 패킷들이 모두 발생하고 수정될 수 있는 실시간 프로세싱 모드에서 제2 전자 디바이스(204)에 의해 프로세싱된다. 즉, 하나 이상의 데이터 패킷들(308)이 제2 전자 디바이스(204)에 의해(구체적으로는, 오디오 관리자(234)에 의해) 드롭되거나 재정렬된다. 오디오 데이터 샘플들의 제1 시퀀스(302)를 프로세싱하는 동안 또는 그 후에, 제2 전자 디바이스(204)는 제2 전자 디바이스(204)의 통신, 계산 및 저장 능력들 중 적어도 하나가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 없다고 결정한다. 그러한 결정에 응답하여(시간 tF에서), 제2 전자 디바이스(204)는 실시간 데이터 프로세싱 모드를 중단하고 배치 데이터 프로세싱 모드를 개시하여 오디오 데이터 샘플들의 제2 시퀀스(304)를 프로세싱한다. 구체적으로, 제2 전자 디바이스(204)는 배치 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 제2 시퀀스(304)를 오디오 데이터 버퍼(214)에 캐싱하고, 오디오 데이터 샘플들의 제2 시퀀스(304)를 포함하는 데이터 파일(310)을 생성한다. 일부 구현예들에서, 제2 전자 디바이스(204)는 데이터 샘플 레이턴시, 누락 오디오 데이터 샘플들의 레이트, 비순차 오디오 데이터 샘플들의 레이트, 및 제2 전자 디바이스(204)와 연관된 CPU 사용률 중 적어도 하나에 기초하여 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원하는 대응 능력을 결정한다.
일부 구현예들에서, 제2 전자 디바이스(204)는 제2 전자 디바이스(204)의 통신, 계산 및 저장 능력들이 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 있다는 결정에 따라 오디오 데이터 샘플들의 제2 시퀀스(304)의 프로세싱을 중지한다. 대안적으로, 일부 구현예들에서, 제2 전자 디바이스(204)는 미리 정의된 수의 오디오 데이터 샘플들을 포함하도록 제2 시퀀스(304)를 제한하도록 구성된다. 제2 전자 디바이스(204)는 미리 정의된 수에 도달할 때 제1 데이터 파일(310)에 캐싱될 오디오 데이터 샘플들의 제2 시퀀스(304)를 프로세싱한다. 이어서, 제2 전자 디바이스(204)는 제2 데이터 파일(312)에서 오디오 데이터 샘플들의 제2 시퀀스(304)에 바로 후속하는 오디오 데이터 샘플들의 제3 시퀀스(306)를 조직화한다. 제2 데이터 파일(312)은 미리 정의된 수의 오디오 데이터 샘플들이 오디오 데이터 샘플들의 제3 시퀀스(306)에 포함되거나 제2 전자 디바이스(204)가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 있다고 결정될 때 전송된다.
어떤 상황에서는, 제2 전자 디바이스(204)가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 있다고 결정될 때, 데이터 파일(310 또는 312)에 포함된 현재 오디오 데이터 샘플들의 수가 미리 정의된 수에 도달하지 않는다. 그 결정에 따라, 데이터 파일(310 또는 312)은 현재 오디오 데이터 샘플들의 수와 함께 즉시 전송될 수 있다. 선택적으로, 데이터 파일(310 또는 312)은 전송되는 것이 중단되고, 현재 오디오 데이터 샘플들의 수는 제2 전자 디바이스(204)의 오디오 관리자(234)에 의한 실시간 오디오 데이터 프로세싱을 위한 데이터 패킷들로 재조직화된다.
일부 구현예들에서, 프로세싱된 오디오 데이터 샘플들의 제1 시퀀스(308) 및 오디오 데이터 샘플들의 제2 시퀀스를 포함하는 데이터 파일(310)은 서버 시스템(106)으로 전송된다(320). 프로세싱된 오디오 데이터 샘플들의 제1 시퀀스(302)는 실시간 데이터 프로세싱 모드에 대응하는 제1 데이터 전송 레이트를 갖고, 오디오 데이터 샘플들의 제2 시퀀스(304)는 배치 데이터 프로세싱 모드에 대응하는 제2 데이터 전송 레이트를 갖는다. 제2 데이터 전송 레이트는 제1 데이터 전송 레이트보다 더 크다. 일부 구현예들에서, 제1 데이터 전송 레이트는 오디오 신호(220)의 오디오 샘플링 레이트보다 더 느리고, 제2 데이터 전송 레이트는 오디오 샘플링 레이트보다 더 크다.
도 4는 일부 구현예들에 따라 배치 데이터 프로세싱 모드에서 실시간 데이터 프로세싱 모드로 전환하는 예시적인 오디오 데이터 프로세싱 프로세스(400)를 도시하는 개략도이다. 오디오 신호(220)는 제1 전자 디바이스(202)의 마이크로폰을 사용하여 캡처되고, 오디오 샘플링 레이트로 샘플링되어 오디오 데이터 샘플들의 제1 시퀀스(402) 및 오디오 데이터 샘플들의 제1 시퀀스(402)에 후속하는 오디오 데이터 샘플들의 제2 시퀀스(404)를 획득한다. 오디오 데이터 샘플들의 제1 시퀀스(402) 및 오디오 데이터 샘플들의 제2 시퀀스(404) 모두는 통신 채널(208)을 통해 제2 전자 디바이스(204)로 전송된다. 오디오 데이터 샘플들의 제1 시퀀스(302)는 배치 데이터 프로세싱 모드에 따라 제2 전자 디바이스(204)에 의해 프로세싱된다. 제1 시퀀스(402) 내 오디오 데이터 샘플들은 제1 전자 디바이스(202)의 오디오 데이터 버퍼(214)에 캐싱되고 데이터 파일(406)로 조직화된다.
오디오 데이터 샘플들의 제1 시퀀스(402)를 프로세싱하는 동안 또는 그 후에, 제2 전자 디바이스(204)는 제2 전자 디바이스(204)가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 있음을 검출하거나 결정한다. 선택적으로, 그러한 결정에 따라(제1 시간 tA에서), 제2 전자 디바이스(204)는 제1 시퀀스(402)의 오디오 데이터 샘플들의 수가 제2 시간 tB에서 미리 정의된 수에 도달할 때까지 더 많은 오디오 데이터 샘플들을 제1 시퀀스(402)에 계속 추가한다. 제2 전자 디바이스(204)는 실시간 데이터 프로세싱 모드에서, 오디오 데이터 샘플들의 제1 시퀀스(402)에 이어 수집된 오디오 데이터 샘플들의 제2 시퀀스(404)를 프로세싱하기 전에, 오디오 데이터 샘플들의 제1 시퀀스(402)를 데이터 파일(406)에 캐싱하는 것을 완료한다. 대안적으로, 일부 구현예들에서, 결정에 따라(시간 tC에서), 제2 전자 디바이스(204)는 제1 시퀀스(402)에 대한 오디오 데이터 샘플들의 수가 미리 정의된 수에 도달했는지 여부와 관계없이 오디오 데이터 샘플들을 제1 시퀀스(402)에 추가하는 것을 중지한다. 제2 전자 디바이스(204)는 시간 tC 에서 데이터 파일(406)을 준비하여, 배치 데이터 프로세싱 모드를 중단한다. 제2 전자 디바이스(204)는 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 제1 시퀀스(402)에 이어서 수집된 오디오 데이터 샘플들의 제2 시퀀스(404)를 즉시 전송하기 시작한다. 또한, 일부 구현예들(미도시)에서, 결정 시(예: 시간 tC에서), 제2 전자 디바이스(204)는 배치 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 제1 시퀀스(402)의 프로세싱을 중단하고 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 제1 시퀀스(402)를 데이터 패킷들(408)로 즉시 프로세싱하기 시작한다. 오디오 데이터 샘플들의 제1 시퀀스(402)가 전송된 후, 제2 전자 디바이스(204)는 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 제2 시퀀스(404)를 계속 프로세싱한다.
오디오 데이터 샘플들의 제1 시퀀스(302 및 402) 각각은 선택적으로 제2 전자 디바이스(204)로 전송되는 오디오 데이터(230)의 스트림을 시작하거나 오디오 데이터(230)의 스트림 중간에 있다. 마찬가지로, 오디오 데이터 샘플들의 제2 시퀀스(304 및 404) 및 오디오 데이터 샘플들의 제3 시퀀스(306) 각각은 선택적으로 제2 전자 디바이스(204)로 전송되는 오디오 데이터(230)의 스트림에서 마지막 시퀀스이거나 오디오 데이터(230)의 스트림의 중간에 있다. 일부 구현예들에서, 오디오 데이터 샘플들의 제1 시퀀스(302 또는 402)는 오디오 데이터 샘플들의 제2 시퀀스(304 또는 404)에 바로 선행하지 않는다는 점에 유의한다. 제1 및 제2 시퀀스들은 브레이크에 의해 분리된 두 개의 개별 녹음 세션 중에 캡처된다. 제2 전자 디바이스(204)는 2개의 녹음 세션을 분리하는 브레이크 동안 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 있는지 여부를 결정한다.
도 5는 일부 구현예들에 따라 사용자 액션 또는 보이스 입력에 의해 개시되는 예시적인 보이스 어시스턴트 프로세스(500)를 예시하는 개략도이다. 보이스 어시스턴트 프로세스(500)는 제1 전자 디바이스(202) 및 제2 전자 디바이스(204)에 의해 공동으로 구현된다. 일부 구현예들에서, 제1 전자 디바이스(202)는 물리적 어시스턴트 버튼(예: 도 6의 어시스턴트 버튼(606))을 포함하고, 사용자는 어시스턴트 버튼에 대한 사용자 액션을 통해 보이스 어시스턴트 기능들의 개시 또는 종료를 요청할 수 있다. 예를 들어, 사용자는 물리적 어시스턴트 버튼을 눌러 보이스 어시스턴트 프로세스(500)(녹음 세션이라고도 함)를 개시한다. 사용자가 어시스턴트 버튼을 누르고 있는 동안, 오디오 신호는 보이스 어시스턴트 프로세스(500)를 통해 오디오 데이터 샘플링, 전송 및 인식을 위해 제1 전자 디바이스(202)의 마이크로폰(206)에 의해 지속적으로 수집된다. 마이크로폰(206)은 사용자가 어시스턴트 버튼의 누름을 해제하여 대응하는 녹음 세션을 완료할 때까지 오디오 신호 수집을 중지하지 않는다.
일부 구현예들에서, 제1 사용자 행동의 검출에 응답하여, 제1 전자 디바이스(202)는 제2 전자 디바이스(204)의 원격 제어 애플리케이션(236) 및 어시스턴트 애플리케이션(232)에 어시스턴트 호출 요청(502)을 전송한다. 어시스턴트 호출 요청(502)에 대한 응답으로, 어시스턴트 애플리케이션(232)은 제1 전자 디바이스(202)가 제2 전자 디바이스(204)로 보이스 어시스턴트 프로세스(500)를 구현하도록 허용되었는지 확인하고, 어시스턴트 시작 명령(504)을 원격 제어 애플리케이션(236)에 전송한다. 어시스턴트 시작 명령(504)에 응답하여, 원격 제어 애플리케이션(236)은 마이크로폰 열기 명령(506)을 제1 전자 디바이스(202)에 전송한다. 제1 전자 디바이스(202)의 마이크로폰(206)이 켜진 후, 오디오 데이터 샘플들(230)이 수집되어 제2 전자 디바이스(204)로 전송된다. 제2 전자 디바이스(204)로 전송된 후, 오디오 데이터 샘플들(230)은 실시간 데이터 프로세싱 모드와 연관된 오디오 관리자(234) 또는 배치 데이터 프로세싱 모드와 연관된 파일 기반 오디오 데이터 프로세싱 모듈(238)에 의해 프로세싱된다(520 및 530). 일부 구현예들에서, 실시간 및 배치 데이터 프로세싱 모드는 예를 들어, 데이터 샘플 레이턴시, 누락 오디오 데이터 샘플들의 레이트, 비순차 오디오 데이터 샘플들의 레이트, 또는 제2 전자 디바이스(204)와 연관된 CPU 사용률에 기초하여 제2 전자 디바이스(204)에서 동적으로 번갈아 일어난다. 일부 구현예들에서, 실시간 및 배치 데이터 프로세싱 모드 중 하나만이 제1 사용자 액션의 검출에 응답하여 활성화된 각 녹음 섹션 동안 활성화된다.
일부 구현예들에서, 어시스턴트 애플리케이션(232)은 원격 제어 애플리케이션(236)에 녹음 시작 명령(508)을 전송하여, 원격 제어 애플리케이션(236)이 제1 전자 디바이스(202)에 의해 수집된 오디오 데이터를 캡처하도록 제1 전자 디바이스(202)를 제어할 수 있다. 녹음 시작 명령(508)은 어시스턴트 시작 명령(504)과 함께 선택적으로 발행되고 마이크로폰 열기 명령(506)을 트리거하도록 구성됩니다. 녹음 시작 명령(508)에 응답하여, 오디오 데이터 샘플들(230)은 제1 전자 디바이스(202)로부터 전송된 후 제2 전자 디바이스(204)에 의해 녹음된다. 대안적으로, 일부 구현예들에서, 녹음 시작 명령(508')은 오디오 데이터 샘플들(230)의 서브세트가 제2 전자 디바이스 (204)에 의해 수신된 후에 어시스턴트 애플리케이션에 의해 발행된다. 녹음 시작 명령(508')은 오디오 데이터 샘플들의 서브세트의 콘텐츠(예: 콘텐츠 내 사용자 요청)에 기초하여 발행될 수 있으며, 오디오 데이터 샘플들(230)의 서브세트는 제2 전자 디바이스(204)에 의해 녹음되지 않는다.
일부 구현예들에서, 어시스턴트 애플리케이션(232)은 오디오 관리자(234)와 원격 제어 애플리케이션(236) 둘 다에 녹음 중지 명령(510)을 전송하여, 원격 제어 애플리케이션(236)이 제1 전자 디바이스(202)를 제어하여 마이크로폰(206)을 끄도록 마이크로폰 닫기 명령(512)을 발행할 수 있다. 대안적으로, 일부 구현예들에서, 제1 전자 디바이스(202)의 사용자는 보이스 어시스턴트 프로세스(500)를 개시한 제1 사용자 액션을 종료하거나 보이스 어시스턴트 프로세스(500)를 종료하기 위한 제2 사용자 액션(예: 어시스턴트 버튼 해제)을 적용한다. 제2 사용자 액션에 대한 응답으로, 제1 전자 디바이스(202)의 마이크로폰(206)이 꺼지고, 어시스턴트 종료 요청(514)이 제2 전자 디바이스(204)의 원격 제어 애플리케이션(236) 및 어시스턴트 애플리케이션(232)으로 전송된다.
도 3 및 도 4를 참조하면, 제1 전자 디바이스(202)의 마이크로폰(206)이 켜지도록 설정되고 제1 사용자 누름에 대해 상이한 시간에 오디오 신호를 캡처하기 시작한다. 일부 구현예들에서, 제1 전자 디바이스(202)는 제1 시간(t1)에 오디오 신호의 녹음을 요청하는 제1 사용자 액션을 수신하고, 그의 마이크로폰(206)은 제2 전자 디바이스(204)로부터 마이크로폰 열기 명령(506)이 발행되는지 여부와 관계없이, 제2 시간(t2)에 제1 사용자 액션에 응답하여 즉시 오디오 신호를 캡처하기 위해 켜진다. 제2 시간(t2)은 제1 시간(t1)과 실질적으로 동시에 진행된다. 대안적으로, 일부 구현예들에서, 제1 전자 디바이스(202)는 제1 시간(t1')에서 오디오 신호의 녹음을 요청하는 제1 사용자 액션을 수신한다. 오디오 신호는 제1 시간(t1') 이전의 제2 시간(t2)에서 마이크로폰에 의해 캡처된다. 시간 t2와 t1' 사이의 지속 시간에 대응하는 오디오 데이터는 캐싱되지만 여전히 제1 사용자 액션에 응답하여 제2 전자 디바이스 (204)로 전송된다. 또한 일부 구현예들에서, 제1 전자 디바이스(202)는 제1 시간(t1")에서 오디오 신호의 녹음을 요청하는 제1 사용자 액션을 수신하고, 예를 들어, 미리 정의된 버퍼 시간(예: 5초)만큼 제1 시간(t1")에서 지연된, 제1 시간(t1")에 후속하는 제2 시간(t2)에서 오디오 신호 캡처를 시작한다.
일부 구현예들에서, 제1 전자 디바이스(202)는 제1 사용자 액션 시간(t1, t1' 또는 t1")을 수신하고 t2에서 캡처된 오디오 데이터를 제2 전자 디바이스(204)로 전송하는 사이의 기간 동안, 제2 전자 디바이스(204)로부터 마이크로폰 열기 명령(506)을 포함하는 오디오 데이터 요청을 수신하기 위해 대기한다. 제2 전자 디바이스(204)는 제1 사용자 액션에 응답하여 오디오 데이터 요청을 전송하기 위한 승인을 획득하고, 이 승인은 제2 전자 디바이스(204)의 어시스턴트 애플리케이션(232) 또는 원격 서버 시스템(106)에 의해 부여된다.
일부 상황들에서, 보이스 어시스턴트 프로세스(500)는 보이스 입력에 의해 개시된다. 제 1 전자 디바이스(202)의 마이크로폰(206)는 제 1 전자 디바이스(202)가 슬립 모드 및 활성 모드인지 여부에 관계없이 지속적으로 오디오 신호들을 수집하고 대응하는 오디오 데이터를 제 2 전자 디바이스(204)에 제공하도록 구성된다. 슬립 모드에서, 활성 모드가 활성화되기 위한 하나 이상의 미리 정의된 핫 워드들(예: "Hi Google")가 검출될 때까지, 오디오 데이터는 미디어 디바이스들 또는 사용자 애플리케이션들을 제어하는 데 사용되는 보이스 어시스턴트 기능들에 대한 사용자 요청들을 인식하도록 프로세싱되지 않는다. 제2 전자 디바이스(204)는 오디오 데이터에서 하나 이상의 미리 정의된 핫 워드들을 로컬로 검출하고 하나 이상의 미리 정의된 핫 워드들의 검출에 응답하여 보이스 어시스턴트 프로세스(500)를 개시하도록 구성된다.
도 5를 참조하면, 일부 구현예들에서, 어시스턴트 호출 요청(502)은 하나 이상의 미리 정의된 핫 워드들을 포함한다. 제2 전자 디바이스(204)는 제1 전자 디바이스(202)로부터 수신한 오디오 데이터에서 핫 워드들을 검출하면 어시스턴트 호출 요청(502)을 확인한다. 어시스턴트 호출 요청(502)에 대한 응답으로, 어시스턴트 애플리케이션(232)은 제1 전자 디바이스(202)가 제2 전자 디바이스(204)로 보이스 어시스턴트 프로세스(500)를 구현하도록 허용되었는지 확인하고, 어시스턴트 시작 명령(504)을 원격 제어 애플리케이션(236)에 전송한다. 제2 전자 디바이스(204)는 추가 사용자 요청들을 식별하기 위해 실시간 데이터 프로세싱 모드 또는 배치 데이터 프로세싱 모드에서 로컬로 오디오 데이터 샘플들(230)을 프로세싱하기 위해 활성 모드에서 동작하도록 제어된다. 또한, 일부 구현예들에서, 어시스턴트 애플리케이션(232)은 제1 전자 디바이스에 의해 제공되는 오디오 데이터(230)에서 녹음 중지를 위한 사용자 요청(예: 도 3 및 4의 "Google, stop recording")을 식별한다. 어시스턴트 애플리케이션(232)은 오디오 데이터 샘플들(230)에서 녹음 중지 명령(510)을 생성하고 명령(510)을 오디오 관리자(234) 및 원격 제어 애플리케이션(236)에 전송하여, 원격 제어 애플리케이션(236)이 마이크로폰을 끄도록 제1 전자 디바이스(202)를 제어하기 위한 마이크로폰 닫기 명령(512)을 발행할 수 있다. 이러 방법들로, 보이스 어시스턴트 프로세스(500)는 임의의 물리적 사용자 액션을 사용하지 않고 제1 전자 디바이스(202)에 의해 캡처된 오디오 데이터에 기초하여 시작되고 종료된다.
도 3을 참조하면, 일 예에서, 오디오 신호 캡처를 중지하라는 요청(314)이 오디오 신호(220)에서 인식되고, 제2 전자 디바이스(204)로부터 제1 전자 디바이스(202)로 전송된다. 요청(314)에 대한 응답으로, 제2 전자 디바이스(204)는 데이터 샘플들의 제2 시퀀스(304)를 포함하는 제1 데이터 파일(310)의 프로세싱을 완료하지만, 제2 시퀀스(304)에 바로 후속하는 데이터 샘플들의 제3 시퀀스(306)를 포함하는 제2 데이터 파일(312)의 전송을 중단한다. 대조적으로, 도 4를 참조하면, 또 다른 예에서, 요청(314)을 수신하면, 제2 전자 디바이스(204)는 오디오 데이터 샘플들의 제2 시퀀스(404)에서 요청(314)에 후속하는 후속 데이터 패킷들의 프로세싱을 중단한다.
도 6은 일부 구현예들에 따라 텔레비전 디바이스에 오디오 데이터를 전송하도록 구성된 예시적인 원격 제어 디바이스(104)를 도시한다. 원격 제어 디바이스(104)의 복수의 사용자 버튼들은 전원 버튼(602), 홈 버튼(604), 어시스턴트 버튼(606), 사이클 버튼(608)(재생/사이클 버튼이라고도 함), 이전 버튼(610), 다음 버튼(612), 미리보기/배경 버튼(614) 및 볼륨 조절 버튼(616)중 하나 이상을 포함한다. 전원 버튼(602)에 대한 사용자 작동은 사용자 작동 전에 미디어 디바이스가 꺼져 있으면 원격 제어 디바이스(104)에 결합된 미디어 디바이스의 전원을 켜고, 사용자 작동 전에 미디어 디바이스가 켜져 있으면 미디어 디바이스의 전원을 끈다. 홈 버튼(604)에 대한 사용자 작동은 원격 제어 디바이스(104)에 결합된 미디어 디바이스를 제어하여 홈 화면을 디스플레이한다. 예를 들어, 홈 화면에는 미리 결정된 인터넷 콘텐츠 채널에 의해 제공하는 특정 광고 클립 또는 무작위로 선택된 미디어 프로그램이 디스플레이된다. 일부 구현에들서, 전원 버튼(602) 또는 홈 버튼(604)은 특정 인터넷 콘텐츠 채널에 의해 제공되는 미디어 콘텐츠를 즉시 재생하도록 구성된 퀵 캐스트 버튼으로 기능한다.
어시스턴트 버튼(606)에 대한 사용자 액션은 미디어 환경(100)에서 오디오 신호들을 수집하기 위해 원격 제어 디바이스(104)에 통합된 마이크로폰(206)을 제어하고, 사용자 요청들은 미디어 환경(100)에 위치한 하나 이상의 미디어 재생 디바이스들(예: TV 디바이스(102))을 제어하기 위해 오디오 신호로부터 추출된다. 일부 구현예들에서, 원격 제어 디바이스(104)의 마이크로폰(206)은 어시스턴트 버튼(606)을 처음으로 짧게 누를 때 환경(100)으로부터 오디오 신호들의 수집을 개시하고, 오디오 신호들의 수집을 중지하기 위해 두 번째로 짧게 누르거나 사용자 요청이 적용된다. 대안적으로, 일부 구현예들에서, 원격 제어 디바이스(104)의 마이크로폰(206)은 어시스턴트 버튼(606)이 눌려질 때만 환경(100)으로부터 오디오 신호들을 수집하고, 어시스턴트 버튼(606)이 해제되면 오디오 신호들의 수집을 중지한다. 또한 일부 구현예들에서, 원격 제어 디바이스(104)의 마이크로폰(206)은 환경(100)으로부터 지속적으로 오디오 신호를 캡처하고, 오디오 신호들은 하나 이상의 미리 정의된 핫 워드들 및/또는 사용자 요청들이 포함된다. 사용자 요청들은 원격 제어 디바이스(104) 또는 원격 제어 디바이스(104)에 결합된 하나 이상의 미디어 디바이스들 또는 애플리케이션들을 제어하기 위해 사용될 수 있다.
이 애플리케이션에서, 오디오 데이터는 실시간 데이터 프로세싱 모드 및 배치 데이터 프로세싱 모드를 포함하는 두 가지 오디오 데이터 프로세싱 모드를 갖는 제2 전자 디바이스(204)(예: 네트워크 연결된 텔레비전 디바이스(102))에서 프로세싱된다. 제2 전자 디바이스(204)는 제2 전자 디바이스(204)의 통신, 캐싱 및 프로세싱 능력들이 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 있는지 여부를 결정한다. 제2 전자 디바이스(204)가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 있다는 결정에 따라, 제2 전자 디바이스(204)는 데이터 패킷 레벨에서 실시간 데이터 프로세싱 모드에 따라 후속 오디오 데이터 샘플들을 프로세싱한다. 제2 전자 디바이스(204)가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 없다는 결정에 따라, 제2 전자 디바이스(204)는 배치 데이터 프로세싱 모드에서 후속 오디오 데이터 샘플들을 제2 전자 디바이스(204)의 버퍼에 캐싱하고, 이러한 오디오 데이터 샘플들을 포함하는 데이터 파일을 생성한다. 일부 구현예들에서, 결정 및 모드 활성화는 두 녹음 세션들 사이의 브레이크 동안 구현된다. 대안적으로, 일부 구현예들에서, 결정 및 모드 전환은 동일한 녹음 세션 동안 동적으로 구현된다.
도 7은 일부 구현예들에 따라, 2개의 오디오 데이터 프로세싱 모드(실시간 데이터 프로세싱 모드에서 배치 데이터 프로세싱 모드로)에서 동적으로 오디오 데이터를 프로세싱하기 위한 방법(700)의 흐름도이다. 방법(700)은 제1 전자 디바이스(202) 및 제2 전자 디바이스(204)에서 수행되고, 비일시적 컴퓨터 판독가능 저장 매체에 저장되고 각각의 전자 디바이스의 하나 이상의 프로세서들에 의해 실행되는 명령어들에 의해 선택적으로 제어된다. 도 7에 도시된 각각의 동작들은 컴퓨터 메모리 또는 비일시적 컴퓨터 판독가능 저장 매체에 저장된 명령어들에 대응할 수 있다. 컴퓨터 판독가능 저장 매체는 자기 또는 광학 디스크 스토리지 디바이스, 플래시 메모리와 같은 솔리드 스테이트 스토리지 디바이스들, 또는 기타 비휘발성 메모리 디바이스 또는 디바이스들을 포함할 수 있다. 컴퓨터 판독가능 저장 매체에 저장된 명령어들은 소스 코드, 어셈블리 언어 코드, 객체 코드 또는 하나 이상의 프로세서들에 의해 해석되는 다른 명령어 형식 중 하나 이상을 포함할 수 있다. 방법(700)의 일부 동작들은 결합될 수 있고 및/또는 일부 동작들의 순서는 변경될 수 있다.
오디오 신호들은 제1 전자 디바이스(202)의 마이크로폰(206)을 사용하여 캡처된다(702). 제1 전자 디바이스(202)는 오디오 신호로부터 오디오 데이터 샘플들의 제1 시퀀스(302) 및 오디오 데이터 샘플들의 제1 시퀀스(302)에 후속하는 오디오 데이터 샘플들의 제2 시퀀스(304)를 획득하고(704), 실시간 데이터 프로세싱 모드에 따라 오디오 데이터 샘플들의 제1 시퀀스(302)를 통신 채널(208)을 통해 제2 전자 디바이스(204)로 전송한다. 제2 전자 디바이스(204)는 통신 채널(208)을 통해 제1 전자 디바이스(202)로부터 오디오 데이터 샘플들의 제1 시퀀스(302) 및 오디오 데이터 샘플들의 제2 시퀀스(304)를 수신한다(706). 오디오 데이터 샘플들의 제1 시퀀스(302) 도중 또는 이후에, 제2 전자 디바이스(204)는 제2 전자 디바이스(204)가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 없다고 결정한다(708). 제2 전자 디바이스(204)가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 없다는 결정에 따라, 제2 전자 디바이스(204)는 오디오 데이터 샘플들의 제2 시퀀스(304)를 제2 전자 디바이스의 버퍼에 캐싱(712)하고, 배치 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 제2 시퀀스(304)를 포함하는 데이터 파일(310)을 생성한다(714).
일부 구현예들에서, 제2 전자 디바이스(204)는 프로세싱된 오디오 데이터 샘플들의 제1 시퀀스 및 오디오 데이터 샘플들의 제2 시퀀스를 포함하는 데이터 파일을 서버 시스템(106)으로 전송한다(예를 들어, 도 5의 540). 오디오 데이터 샘플들의 제1 시퀀스(302)는 실시간 데이터 프로세싱 모드에 대응하는 제1 데이터 전송 레이트를 갖고, 오디오 데이터 샘플들의 제2 시퀀스(304)는 배치 데이터 프로세싱 모드에 대응하는 제2 데이터 전송 레이트를 갖는다. 제2 데이터 전송 레이트는 제1 데이터 전송 레이트보다 더 크다. 또한, 예를 들어, 제1 전자 디바이스(202)에 의해 캡처된 오디오 신호들은 오디오 샘플링 레이트로 샘플링되어 오디오 데이터 샘플들의 제1 및 제2 시퀀스들(302 및 304)을 획득한다. 제1 데이터 전송 레이트는 오디오 샘플링 레이트보다 더 느리고 제2 데이터 전송 레이트는 오디오 샘플링 레이트보다 더 크다.
일부 구현예들에서, 제1 시퀀스(302) 내 오디오 데이터 샘플들은 실시간 데이터 프로세싱 모드에서 복수의 오디오 데이터 패킷들로 그룹화된다. 각 오디오 데이터 패킷에는 일관된 데이터 형식에 따라 선택적으로 조직화되는 하나 이상의 연속적인 오디오 데이터 샘플들이 포함된다. 복수의 오디오 데이터 패킷들은 서버 시스템(106)으로 스트리밍된다.
일부 구현예들에서, 제2 전자 디바이스(204)는 제2 전자 디바이스(204)와 연관된 데이터 샘플 레이턴시, 누락 오디오 데이터 샘플들의 레이트, 및 비순차 오디오 데이터 샘플들의 레이트 중 적어도 하나에 기초하여, 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 전송을 지원하지 않는 것으로 결정된다. 구체적으로, 예를 들어, 프로세싱된 오디오 데이터 샘플들의 제1 시퀀스의 서브세트의 데이터 샘플 레이턴시가 레이턴시 허용 오차를 초과한다. 다른 예에서, 프로세싱된 오디오 데이터 샘플들의 제1 시퀀스(302)의 누락 오디오 데이터 샘플들의 레이트는 누락 레이트 허용 오차를 초과한다. 또 다른 예에서, 프로세싱된 오디오 데이터 샘플들의 제1 시퀀스(302)의 비순차적 오디오 데이터 샘플들의 레이트는 비순차 레이트 허용 오차를 초과한다.
일부 구현예들에서, 오디오 신호들의 녹음을 요청하는 제1 사용자 액션이 제1 전자 디바이스(202)에서 수신된다. 오디오 신호들은 제1 사용자 액션에 대한 응답으로 캡처된다. 예를 들어, 제1 사용자 액션은 제1 전자 디바이스(202)의 어시스턴트 버튼을 누르는 것이다. 누름은 제2 전자 디바이스(204) 또는 서버 시스템(106)의 어시스턴트 애플리케이션(232)에 의한 승인을 획득하기 위한 프로세스를 개시한다. 승인을 수신하면, 오디오 신호들이 캡처, 프로세싱 및 녹음된다. 구체적으로, 일 예에서, 제1 전자 디바이스(202)는 제1 시간(t1')에 오디오 신호들의 녹음을 요청하는 제1 사용자 액션을 수신하고, 여기서 오디오 신호들의 캡처는 제1 시간(t1')에 후속하는 제2 시간(t2)에서 개시된다. 제2 시간(t2)은 미리 정의된 버퍼 시간만큼 제1 시간보다 지연된다. 특히 어떤 상황에서는, 제1 사용자 액션에 응답하여, 제1 전자 디바이스(202)는 제2 전자 디바이스(204)로부터 오디오 데이터 요청을 수신한다. 제2 전자 디바이스(204)는 제1 사용자 액션에 응답하여 오디오 데이터 요청을 전송하기 위한 승인을 획득하도록 구성된다. 오디오 데이터 샘플들의 제1 시퀀스의 전송은 오디오 데이터 요청에 대한 응답으로 개시된다.
일부 구현예들에서, 데이터 파일(310)은 제1 데이터 파일(310)을 포함한다. 제1 데이터 파일(310)을 생성한 후, 제2 전자 디바이스(204)는 배치 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 제3 시퀀스(306)를 포함하는 제2 데이터 파일(312)을 계속해서 생성한다. 오디오 데이터 샘플들의 제3 시퀀스(306)는 오디오 신호들에서 오디오 데이터 샘플들의 제2 시퀀스(304)에 바로 후속하고, 오디오 데이터 샘플들의 제2 및 제3 시퀀스들(304 및 306) 각각은 미리 정의된 수의 데이터 샘플들을 갖는다.
일부 구현예들에서, 제2 전자 디바이스(204)는 오디오 프로세싱(예: 보이스 인식)을 위해 프로세싱된 오디오 샘플들의 제1 및 제2 시퀀스들(302 및 304)을 서버 시스템(106)으로 전송하도록 구성된다. 서버 시스템(106)은 사용자 계정을 포함하는 가상 사용자 도메인을 호스팅한다. 제1 및 제2 전자 디바이스들(202, 204)은 사용자 계정에 링크되어 있다.
대안적으로, 일부 구현예들에서, 오디오 신호들에는 하나 이상의 미리 정의된 핫 워드들 또는 사용자 요청이 포함된다. 제2 전자 디바이스(204)는 오디오 신호에서 하나 이상의 미리 정의된 핫 워드들 또는 사용자 요청을 식별하기 위해 오디오 데이터 샘플들의 제1 및 제2 시퀀스를 로컬에서 프로세싱하도록 구성된다. 또한, 일부 구현예들에서, 사용자 요청에는 오디오 신호 캡처를 중지하라는 요청이 포함된다. 오디오 신호 캡처를 중지하라는 요청은 제2 전자 디바이스(204)에 의해 인식되어 제1 전자 디바이스(202)에 제공된다. 상기 요청에 대한 응답으로, 제1 전자 디바이스(202)는 오디오 데이터 샘플들의 제2 시퀀스(304)에 후속하는 오디오 데이터 샘플들의 시퀀스 전송을 중단한다.
일부 구현예들에서, 데이터 샘플들의 제2 시퀀스(304)를 전송하는 동안, 제2 전자 디바이스(204)는 오디오 신호 캡처를 중단하기 위한 제2 사용자 액션을 수신한다. 제2 사용자 액션에 대한 응답으로, 제2 전자 디바이스(204)는 오디오 데이터 샘플들의 제2 시퀀스(304)에 바로 후속하는 오디오 데이터 샘플들의 시퀀스 수신을 중단한다.
도 8은 일부 구현예들에 따라, 2개의 오디오 데이터 프로세싱 모드(배치 데이터 프로세싱 모드에서 실시간 데이터 프로세싱 모드로)에서 동적으로 오디오 데이터를 프로세싱하기 위한 방법(800)의 흐름도이다. 방법(800)은 제1 전자 디바이스(202) 및 제2 전자 디바이스(204)에서 수행되고, 비일시적 컴퓨터 판독가능 저장 매체에 저장되고 각각의 전자 디바이스의 하나 이상의 프로세서들에 의해 실행되는 명령어들에 의해 선택적으로 제어된다. 도 8에 도시된 각각의 동작들은 컴퓨터 메모리 또는 비일시적 컴퓨터 판독가능 저장 매체에 저장된 명령어들에 대응할 수 있다. 컴퓨터 판독가능 저장 매체는 자기 또는 광학 디스크 스토리지 디바이스, 플래시 메모리와 같은 솔리드 스테이트 스토리지 디바이스들, 또는 기타 비휘발성 메모리 디바이스 또는 디바이스들을 포함할 수 있다. 컴퓨터 판독가능 저장 매체에 저장된 명령어들은 소스 코드, 어셈블리 언어 코드, 객체 코드 또는 하나 이상의 프로세서들에 의해 해석되는 다른 명령어 형식 중 하나 이상을 포함할 수 있다. 방법(800)의 일부 동작들은 결합될 수 있고 및/또는 일부 동작들의 순서는 변경될 수 있다.
오디오 신호들은 제1 전자 디바이스(202)의 마이크로폰을 사용하여 캡처된다(802). 제1 전자 디바이스(202)는 오디오 신호들에서 오디오 데이터 샘플들의 제1 시퀀스(402) 및 오디오 데이터 샘플들의 제1 시퀀스(402)에 후속하는 오디오 데이터 샘플들의 제2 시퀀스(404)를 획득한다(804). 제2 전자 디바이스(204)는 제1 전자 디바이스(202)로부터 오디오 데이터 샘플들의 제1 시퀀스(402) 및 오디오 데이터 샘플들의 제2 시퀀스(404)를 수신한다(806). 제2 전자 디바이스(204)는 오디오 데이터 샘플들의 제1 시퀀스(402)를 제2 전자 디바이스의 버퍼에 캐싱(810)하고, 오디오 데이터 샘플들의 제1 시퀀스(402)를 포함하는 데이터 파일을 생성(812)하는 단계를 포함하여, 배치 데이터 프로세싱 모드에 따라 오디오 데이터 샘플의 제1 시퀀스(402)를 프로세싱한다. 오디오 데이터 샘플들의 제1 시퀀스를 프로세싱하는 동안 또는 프로세싱 한 후, 제2 전자 디바이스(204)는 제2 전자 디바이스(204)가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 있다고 결정한다(814). 제2 전자 디바이스(204)가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 있다는 결정에 따라, 제2 전자 디바이스(204)는 실시간 데이터 프로세싱 모드에 따라 오디오 데이터 샘플들의 제2 시퀀스를 프로세싱한다(816).
일부 구현예들에서, 오디오 데이터 샘플들(402 및 404)은 서버 시스템(106)으로 전송된다. 오디오 데이터 샘플들의 제1 시퀀스(402)는 실시간 데이터 프로세싱 모드에 대응하는 제1 데이터 전송 레이트를 갖고, 오디오 데이터 샘플들의 제2 시퀀스(404)는 배치 데이터 프로세싱 모드에 대응하는 제2 데이터 전송 레이트를 갖는다. 제1 데이터 전송 레이트는 제2 데이터 전송 레이트보다 더 크다. 또한, 일 예에서, 제2 데이터 전송 레이이트는 오디오 샘플링 레이트보다 더 느리고, 제1 데이터 전송 레이트는 오디오 샘플링 레이트보다 더 크다. 일부 구현예들에서, 제2 시퀀스(404) 내 오디오 데이터 샘플들은 실시간 데이터 프로세싱 모드에서 복수의 오디오 데이터 패킷들로 그룹화되고, 복수의 오디오 데이터 패킷들은 선택적으로 실시간으로 서버 시스템(106)으로 스트리밍된다.
도 7 및 8을 참조하면, 일부 구현예들에서, 제1 전자 디바이스(202)는 원격 제어 디바이스(104)를 포함하고, 제2 전자 디바이스(204)는 원격 제어 디바이스(104)에 의해 제어되도록 구성된 네트워크 연결된 TV 디바이스(102)를 포함한다. 일부 구현예들에서, 제2 전자 디바이스(204)는 하나 이상의 프로세서들, 및 제2 전자 디바이스(204) 상에 안드로이드 운영 시스템 및 하나 이상의 사용자 애플리케이션을 구현하도록 구성된 하나 이상의 프로그램들을 저장하는 메모리를 포함한다. 일부 구현예들에서, 제1 전자 디바이스(202)는 배터리로 구동된다.
도 7 및 도 8 각각의 동작들이 설명된 특정 순서는 단지 예시일 뿐이며 설명된 순서가 동작들이 수행될 수 있는 유일한 순서임을 나타내려는 의도가 아님을 이해해야 한다. 당업자는 본 명세서에 기술된 바와 같이 통합된 사용자 인터페이스에서 정보 항목 및 포커스 콘텐츠를 디스플레이하는 다양한 방식을 인식할 것이다. 또한, 방법들(700, 750, 800 및 850) 중 하나에 대해 설명된 세부 사항들은 방법들(700, 750, 800 및 850) 중 임의의 다른 방법에도 유사한 방식으로 적용가능하다는 점에 유의해야 한다. 간결함을 위해 유사한 세부 사항들은 반복되지 않는다.
또한, 제1, 제2 등의 용어들이 몇몇 경우에 다양한 요소들을 설명하기 위해 본 명세서에서 사용되지만, 이러한 요소들은 이러한 용어들에 의해 제한되지 않아야 한다는 것이 이해될 것이다. 이 용어들은 한 요소를 다른 요소와 구별하는 데에만 사용된다. 예를 들어, 제1 전자 디바이스는 제2 전자 디바이스로 명명될 수 있고, 유사하게 제2 전자 디바이스는 제1 전자 디바이스로 명명될 수 있다. 제1 전자 디바이스와 제2 전자 디바이스는 모두 전자 디바이스이지만 동일한 전자 디바이스는 아니다.
본 명세서에서 설명된 다양한 구현예들의 설명에 사용된 용어는 특정 구현을 설명하기 위한 것이며 제한하려는 의도가 아니다. 다양한 설명된 구현예들 및 첨부된 청구범위의 설명에 사용된 바와 같이, 단수형 "a", "an" 및 "the"는 문맥상 명백하게 다르게 나타내지 않는 한 복수형도 포함하는 것으로 의도된다. 또한, 본 명세서에서 사용되는 "및/또는"이라는 용어는 연관된 나열된 항목들 중 하나 이상의 임의의 및 모든 가능한 조합들을 지칭하고 포함하는 것으로 이해될 것이다. "포함하다", "포함하는", "구성하다" 및/또는 "구성하는"이라는 용어들은 본 명세서에서 사용될 때 명시된 피처, 정수, 단계, 동작, 요소 및/또는 구성요소의 존재를 지정하지만, 하나 이상의 다른 피처, 정수, 단계, 동작, 요소, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는다는 것이 추가로 이해될 것이다.
여기서 사용되는 바와 같이, "만약"이라는 용어는, 선택적으로, 문맥에 따라 "때" 또는 "시" 또는 "결정에 대한 응답으로" 또는 "검출에 대한 응답으로" 또는 "그 결정에 따른"을 의미하는 것으로 해석된다. 유사하게, "결정된 경우" 또는 "[명시된 조건이나 이벤트]가 검출된 경우"라는 문구는, 선택적으로, 문맥에 따라 "결정 시" 또는 "결정에 대한 응답으로" 또는 "[명시된 조건이나 이벤트] 검출 시" 또는 "[명시된 조건이나 이벤트] 검출에 대한 응답으로" 또는 "[명시된 조건이나 이벤트]가 검출되었다는 결정에 따라"를 의미한다.
다양한 도면들이 특정 순서로 여러 논리적 단계들을 도시하지만, 순서에 의존하지 않는 단계들은 재정렬될 수 있으며 다른 단계들은 결합되거나 분리될 수 있다. 일부 재정렬 또는 기타 그룹화들이 구체적으로 언급되지만, 다른 것들은 당업자에게 명백할 것이므로, 여기에 제시된 순서 및 그룹화들은 전체적인 대안 목록이 아니다. 또한, 단계는 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있음을 인식해야 한다.
전술한 설명은 설명을 목적으로 특정 구현예들을 참조하여 설명되었다. 그러나, 상기 예시적인 논의들은 포괄적이거나 청구범위를 개시된 정확한 형태로 제한하기 위한 것이 아니다. 상기 교시의 관점에서 많은 수정 및 변형이 가능하다. 구현예들은 청구범위의 기본 원리 및 그 실제 적용을 가장 잘 설명하기 위해 선택되었으며, 그에 따라 당업자가 고려되는 특정 용도에 적합한 다양한 수정으로 구현예들을 가장 잘 사용할 수 있게 한다.
Claims (23)
- 오디오 데이터 프로세싱 방법에 있어서,
제2 전자 디바이스에 의해, 제1 전자 디바이스로부터, 오디오 데이터 샘플들의 제1 시퀀스 및 오디오 데이터 샘플들의 제2 시퀀스를 수신하는 단계, 상기 오디오 데이터 샘플들의 제2 시퀀스는 상기 제1 전자 디바이스의 마이크로폰에 의해 캡처된 오디오 신호들에서 상기 오디오 데이터 샘플들의 제1 시퀀스에 후속하며;
상기 제2 전자 디바이스에 의해, 실시간 데이터 프로세싱 모드에 따라 상기 오디오 데이터 샘플들의 제1 시퀀스를 프로세싱하는 단계;
상기 제2 전자 디바이스가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 없다고 결정하는 단계; 및
상기 제2 전자 디바이스가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 없다는 결정에 따라, 배치(batch) 데이터 프로세싱 모드에서 상기 오디오 데이터 샘플들의 제2 시퀀스를 상기 제2 전자 디바이스의 버퍼에 캐싱하고, 상기 오디오 데이터 샘플들의 제2 시퀀스를 포함하는 데이터 파일을 생성하는 단계를 포함하는, 방법. - 제1항에 있어서,
상기 프로세싱된 오디오 데이터 샘플들의 제1 시퀀스 및 상기 오디오 데이터 샘플들의 제2 시퀀스를 포함하는 데이터 파일을 서버 시스템으로 전송하는 단계를 더 포함하고,
상기 오디오 데이터 샘플들의 제1 시퀀스는 실시간 데이터 프로세싱 모드에 대응하는 제1 데이터 전송 레이트를 갖고, 상기 오디오 데이터 샘플들의 제2 시퀀스는 배치 데이터 프로세싱 모드에 대응하는 제2 데이터 전송 레이트를 갖고; 그리고
상기 제2 데이터 전송 레이트는 상기 제1 데이터 전송 레이트보다 더 큰, 방법. - 제2항에 있어서,
상기 오디오 신호들은 상기 오디오 데이터 샘플들의 제1 및 제2 시퀀스를 획득하기 위해 오디오 샘플링 레이트로 샘플링되고; 그리고
상기 제1 데이터 전송 레이트는 상기 오디오 샘플링 레이트보다 더 느리고, 상기 제2 데이터 전송 레이트는 상기 오디오 샘플링 레이트보다 더 큰, 방법. - 선행하는 어느 한 항에 있어서,
상기 제1 시퀀스의 오디오 데이터 샘플들을 복수의 오디오 데이터 패킷들로 그룹화하는 단계,
각 오디오 데이터 패킷은 하나 이상의 연속적인 오디오 데이터 샘플들을 포함하고; 및
상기 복수의 오디오 데이터 패킷들을 서버 시스템으로 스트리밍하는 단계를 더 포함하는, 방법. - 선행하는 어느 한 항에 있어서,
상기 제2 전자 디바이스가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 없다고 결정하는 단계는:
상기 프로세싱된 오디오 데이터 샘플들의 제1 시퀀스의 서브세트의 데이터 샘플 레이턴시가 레이턴시 허용 오차를 초과하는지 결정하는 단계;
상기 프로세싱된 오디오 데이터 샘플들의 제1 시퀀스의 누락 오디오 데이터 샘플들의 레이트가 누락 레이트 허용 오차를 초과하는지 결정하는 단계; 및
상기 프로세싱된 오디오 데이터 샘플들의 제1 시퀀스의 비순차 오디오 데이터 샘플들의 레이트가 비순차 레이트 허용 오차를 초과하는지 결정하는 단계 중 적어도 하나를 더 포함하는, 방법. - 선행하는 어느 한 항에 있어서,
상기 제2 전자 디바이스는 상기 제2 전자 디바이스와 연관된 데이터 샘플 레이턴시, 누락 오디오 데이터 샘플들의 레이트, 및 비순차 오디오 데이터 샘플들의 레이트 중 적어도 하나에 기초하여, 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 전송을 지원하지 않는다고 결정하는, 방법. - 선행하는 어느 한 항에 있어서,
상기 제1 전자 디바이스에 의해 상기 오디오 신호들의 녹음을 요청하는 제1 사용자 액션을 수신하는 단계를 더 포함하고, 상기 오디오 신호들은 상기 제1 사용자 액션에 응답하여 캡처되는, 방법. - 제1항 내지 제4항 중 어느 한 항에 있어서,
상기 제1 전자 디바이스에 의해 제1 시간에 상기 오디오 신호들의 녹음을 요청하는 제1 사용자 액션을 수신하는 단계를 더 포함하고, 상기 오디오 신호들을 캡처하는 것은 상기 제1 시간에 후속하는 제2 시간에 개시되는, 방법. - 제6항에 있어서,
상기 제1 사용자 액션에 응답하여, 상기 제2 전자 디바이스에 의해 오디오 데이터 요청을 전송하기 위한 승인을 획득하고 오디오 데이터 요청을 생성하는 단계를 더 포함하고, 그리고
상기 오디오 데이터 샘플들의 제1 시퀀스를 수신하는 것은 상기 오디오 데이터 요청에 응답하는 것인, 방법. - 선행하는 어느 한 항에 있어서,
상기 데이터 파일은 제1 데이터 파일을 포함하고,
상기 데이터 파일을 생성한 후, 상기 제2 전자 디바이스에 의해, 배치 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 제3 시퀀스를 포함하는 제2 데이터 파일을 계속 생성하는 단계를 더 포함하고, 상기 오디오 데이터 샘플들의 제3 시퀀스는 상기 오디오 신호들에서 상기 오디오 데이터 샘플들의 제2 시퀀스에 후속하며, 그리고 상기 오디오 데이터 샘플들의 제2 및 제3 시퀀스들 각각은 미리 정의된 수의 데이터 샘플들을 갖는, 방법. - 선행하는 어느 한 항에 있어서,
상기 제2 전자 디바이스는 오디오 프로세싱을 위해 상기 프로세싱된 오디오 데이터 샘플들의 제1 및 제2 시퀀스를 서버 시스템으로 전송하도록 구성되고;
상기 서버 시스템은 사용자 계정을 포함하는 가상 사용자 도메인을 호스팅하고; 그리고
상기 제1 및 제2 전자 디바이스는 상기 사용자 계정에 링크되는, 방법. - 선행하는 어느 한 항에 있어서,
상기 오디오 신호들은 미리 정의된 하나 이상의 핫 워드들 또는 사용자 요청을 포함하고, 그리고 상기 제2 전자 디바이스는 상기 오디오 신호들에서 상기 하나 이상의 미리 정의된 핫 워드들 또는 사용자 요청을 식별하기 위해 상기 오디오 데이터 샘플들의 제1 및 제2 시퀀스를 로컬에서 프로세싱하도록 구성되는, 방법. - 제10항에 있어서,
상기 사용자 요청은 상기 오디오 신호들의 캡처를 중지하라는 요청을 포함하고,
상기 제2 전자 디바이스에 의해 상기 오디오 신호들의 캡처를 중지하라는 요청을 생성하는 단계를 더 포함하고, 상기 제1 전자 디바이스는 상기 요청에 응답하여, 상기 오디오 데이터 샘플들의 제2 시퀀스에 후속하는 오디오 데이터 샘플들의 시퀀스 전송을 중단하도록 구성되는, 방법. - 선행하는 어느 한 항에 있어서,
상기 데이터 샘플들의 제2 시퀀스를 전송하는 동안, 상기 오디오 신호들의 캡처를 중단하기 위한 제2 사용자 액션을 수신하는 단계; 및
상기 제2 사용자 액션에 응답하여, 상기 오디오 데이터 샘플들의 제2 시퀀스에 바로 후속하는 오디오 데이터 샘플들의 시퀀스의 수신을 중단하는 단계를 더 포함하는, 방법. - 선행하는 어느 한 항에 있어서,
상기 제1 전자 디바이스는 원격 제어 디바이스를 포함하고, 그리고 상기 제2 전자 디바이스는 상기 원격 제어 디바이스에 의해 제어되도록 구성된 네트워크 연결된 텔레비전 디바이스를 포함하는, 방법. - 선행하는 어느 한 항에 있어서,
상기 제2 전자 디바이스는 하나 이상의 프로세서들 및 상기 제2 전자 디바이스 상에 안드로이드 운영 시스템 및 하나 이상의 사용자 애플리케이션들을 구현하도록 구성된 하나 이상의 프로그램들을 저장하는 메모리를 포함하는, 방법. - 제14항에 있어서,
상기 안드로이드 운영 시스템은 실시간 데이터 프로세싱 모드에 따라 상기 오디오 데이터 샘플들의 제1 시퀀스를 프로세싱하기 위한 명령어들을 갖는 오디오 관리자 모듈을 포함하는, 방법. - 제14항에 있어서,
상기 제2 전자 디바이스의 하나 이상의 사용자 애플리케이션들은 배치 데이터 프로세싱 모드에서 상기 오디오 데이터 샘플들의 제2 시퀀스를 버퍼에 캐싱하고 상기 오디오 데이터 샘플들의 제2 시퀀스를 포함하는 데이터 파일을 생성하기 위한 파일 기반 오디오 데이터 프로세싱 모듈을 포함하는, 방법. - 선행하는 어느 한 항에 있어서,
상기 제2 전자 디바이스는 사용자 액션에 의해 활성화된 녹음 세션 동안 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원하지 않는 것으로 결정되고, 그리고 상기 데이터 샘플들의 제1 및 제2 시퀀스들은 모두 녹음 세션 중에 프로세싱되는, 방법. - 제1항 내지 제16항 중 어느 한 항에 있어서,
상기 제2 전자 디바이스는 2개의 별개의 사용자 액션들에 의해 활성화되는 2개의 별개의 녹음 세션들을 분리하는 브레이크에서 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원하지 않는 것으로 결정되고, 그리고 상기 데이터 샘플들의 제1 및 제2 시퀀스들은 상기 2개의 별개의 녹음 세션들 중에 캡처되는, 방법. - 오디오 데이터 프로세싱 방법에 있어서,
제1 전자 디바이스로부터 제2 전자 디바이스에 의해, 오디오 데이터 샘플들의 제1 시퀀스 및 오디오 데이터 샘플들의 제2 시퀀스를 수신하는 단계, 상기 오디오 데이터 샘플들의 제2 시퀀스는 제1 전자 디바이스의 마이크로폰에 의해 캡처된 오디오 신호들에서 상기 오디오 데이터 샘플들의 제1 시퀀스에 후속하고;
상기 제2 전자 디바이스에 의해, 배치 데이터 프로세싱 모드에 따라 상기 제2 전자 디바이스의 버퍼에 상기 오디오 데이터 샘플들의 제1 시퀀스를 캐싱하는 단계, 및 상기 오디오 데이터 샘플들의 제1 시퀀스를 포함하는 데이터 파일을 생성하는 단계를 포함하여, 상기 오디오 데이터 샘플들의 제1 시퀀스를 프로세싱하는 단계,
상기 제2 전자 디바이스가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 있다고 결정하는 단계; 및
상기 제2 전자 디바이스가 실시간 데이터 프로세싱 모드에서 오디오 데이터 샘플들의 프로세싱을 지원할 수 있다는 결정에 따라, 상기 제2 전자 디바이스에 의해 실시간 데이터 프로세싱 모드에 따라 상기 오디오 데이터 샘플들의 제2 시퀀스를 프로세싱하는, 방법. - 전자 디바이스에 있어서,
하나 이상의 프로세서들; 및
상기 하나 이상의 프로세서들에 의해 실행될 때 상기 프로세서들로 하여금 제1항 내지 제21항 중 어느 한 항의 방법을 수행하게 하는 명령어들이 저장된 메모리를 포함하는, 전자 디바이스. - 비일시적 컴퓨터 판독가능 매체에 있어서,
하나 이상의 프로세서들에 의해 실행될 때 상기 프로세서들로 하여금 제1항 내지 제21항 중 어느 한 항의 방법을 수행하게 하는 명령어들이 저장된, 비일시적 컴퓨터 판독가능 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063086953P | 2020-10-02 | 2020-10-02 | |
US63/086,953 | 2020-10-02 | ||
PCT/US2021/053105 WO2022072786A1 (en) | 2020-10-02 | 2021-10-01 | Real-time and file-based audio data processing |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230074544A true KR20230074544A (ko) | 2023-05-30 |
Family
ID=78617479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237013865A KR20230074544A (ko) | 2020-10-02 | 2021-10-01 | 실시간 및 파일 기반 오디오 데이터 프로세싱 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20230370506A1 (ko) |
EP (1) | EP4201045B1 (ko) |
JP (1) | JP2023544043A (ko) |
KR (1) | KR20230074544A (ko) |
CN (1) | CN116325696A (ko) |
WO (1) | WO2022072786A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240021205A1 (en) * | 2022-07-15 | 2024-01-18 | Rovi Guides, Inc. | Systems and methods for managing multiple voice assistant services based on voice input |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9437188B1 (en) * | 2014-03-28 | 2016-09-06 | Knowles Electronics, Llc | Buffered reprocessing for multi-microphone automatic speech recognition assist |
US20190034542A1 (en) * | 2017-07-26 | 2019-01-31 | Scripps Networks Interactive, Inc. | Intelligent agent system and method of accessing and delivering digital files |
-
2021
- 2021-10-01 WO PCT/US2021/053105 patent/WO2022072786A1/en active Application Filing
- 2021-10-01 JP JP2023520198A patent/JP2023544043A/ja active Pending
- 2021-10-01 KR KR1020237013865A patent/KR20230074544A/ko not_active Application Discontinuation
- 2021-10-01 EP EP21806859.1A patent/EP4201045B1/en active Active
- 2021-10-01 CN CN202180067092.3A patent/CN116325696A/zh active Pending
- 2021-10-21 US US18/029,957 patent/US20230370506A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2023544043A (ja) | 2023-10-19 |
WO2022072786A1 (en) | 2022-04-07 |
EP4201045B1 (en) | 2024-05-15 |
CN116325696A (zh) | 2023-06-23 |
US20230370506A1 (en) | 2023-11-16 |
EP4201045A1 (en) | 2023-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10678393B2 (en) | Capturing multimedia data based on user action | |
US9979690B2 (en) | Method and apparatus for social network communication over a media network | |
JP5011917B2 (ja) | コンテンツ送信装置、再生装置およびコンテンツ再生方法 | |
US10051115B2 (en) | Call initiation by voice command | |
TW200820777A (en) | System and method of audio/video streaming | |
WO2007113580A1 (en) | Intelligent media content playing device with user attention detection, corresponding method and carrier medium | |
KR101475991B1 (ko) | 모바일 디바이스상에서 비디오를 플레이하기 위한 방법 및 시스템 | |
WO2011103838A2 (zh) | 视频切换播放方法、装置和系统 | |
CN101656869A (zh) | 频道切换方法、装置及系统 | |
CN102474517A (zh) | 转换移动装置媒体内容的方法 | |
CN109547812A (zh) | 一种直播方法、装置、移动终端与存储介质 | |
CN101272383B (zh) | 一种实时音频数据传输方法 | |
KR20230074544A (ko) | 실시간 및 파일 기반 오디오 데이터 프로세싱 | |
WO2010057391A1 (zh) | 一种流媒体播放控制方法、设备及系统 | |
CN101184208B (zh) | 一种背景音乐播放方法 | |
CN112532719B (zh) | 信息流的推送方法、装置、设备及计算机可读存储介质 | |
KR100652679B1 (ko) | 이동 통신 단말기의 비디오 채널 전환 방법 | |
WO2009059499A1 (fr) | Procede et systeme de traitement de decalage temporel de television sur ip | |
CN115914178B (zh) | 一种voip实时音视频通话方法、系统及装置 | |
JP6034113B2 (ja) | 映像コンテンツ配信装置 | |
WO2011041982A1 (zh) | 控制移动流媒体节目播放的方法及装置 | |
CN103004230A (zh) | 针对信息记录会话的控制能力 | |
CN117615169A (zh) | 一种音频媒体分发方法、装置、系统及电子设备 | |
CN114650438A (zh) | 视频播放数据的处理方法、装置及电子设备 | |
EP3526945A1 (fr) | Système de communication à récepteur de contenu propre à gérer un appel pendant une diffusion, et procédé de gestion associé |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal |