KR102389776B1 - 요청시 오디오 레코딩으로의 보충적 오디오 콘텐츠의 동적 삽입 - Google Patents

요청시 오디오 레코딩으로의 보충적 오디오 콘텐츠의 동적 삽입 Download PDF

Info

Publication number
KR102389776B1
KR102389776B1 KR1020207009966A KR20207009966A KR102389776B1 KR 102389776 B1 KR102389776 B1 KR 102389776B1 KR 1020207009966 A KR1020207009966 A KR 1020207009966A KR 20207009966 A KR20207009966 A KR 20207009966A KR 102389776 B1 KR102389776 B1 KR 102389776B1
Authority
KR
South Korea
Prior art keywords
content
audio
spot
audio recording
processing system
Prior art date
Application number
KR1020207009966A
Other languages
English (en)
Other versions
KR20210068316A (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 KR20210068316A publication Critical patent/KR20210068316A/ko
Application granted granted Critical
Publication of KR102389776B1 publication Critical patent/KR102389776B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/439Processing of audio elementary streams
    • H04N21/4394Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/61Indexing; Data structures therefor; Storage structures
    • 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/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/51Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
    • G10L25/54Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination for retrieval
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/022Electronic editing of analogue information signals, e.g. audio or video signals
    • G11B27/029Insert-editing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/10Multimedia information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/233Processing of audio elementary streams
    • H04N21/2335Processing of audio elementary streams involving reformatting operations of audio signals, e.g. by converting from one coding standard to another
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/439Processing of audio elementary streams
    • H04N21/4398Processing of audio elementary streams involving reformatting operations of audio signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8106Monomedia components thereof involving special audio data, e.g. different tracks for different languages
    • 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)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Artificial Intelligence (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 개시는 일반적으로 보충적 오디오 콘텐츠를 디지털 어시스턴트 애플리케이션을 통해 주된 오디오 콘텐츠에 삽입하는 것에 관한 것이다. 데이터 프로세싱 시스템은 콘텐츠 퍼블리셔의 오디오 레코딩 및 보충적 오디오 콘텐츠를 삽입할 시간을 정의하는 콘텐츠 스팟을 특정하기 위한 콘텐츠 스팟 마커를 유지할 수 있다. 데이터 프로세싱 시스템은 클라이언트 디바이스로부터 입력 오디오 신호를 수신할 수 있다. 데이터 프로세싱 시스템은 입력 오디오 신호를 파싱하여, 입력 오디오 신호가 요청에 대응한다고 결정하고, 콘텐츠 퍼블리셔의 오디오 레코딩을 식별할 수 있다. 데이터 프로세싱 시스템은 상기 결정에 응답하여 콘텐츠 선택 파라미터를 식별할 수 있다. 데이터 프로세싱 시스템은 콘텐츠 선택 파라미터를 사용하여 오디오 콘텐츠 아이템을 선택할 수 있다. 데이터 프로세싱 시스템은 오디오 콘텐츠 아이템이 삽입된 오디오 레코딩을 포함하는 액션 데이터 구조를 생성 및 전송할 수 있다.

Description

요청시 오디오 레코딩으로의 보충적 오디오 콘텐츠의 동적 삽입
사람은 본 명세서에서 "자동화된 어시스턴트"("챗봇", "인터랙티브 퍼스널 어시스턴트", "지능형 퍼스널 어시스턴트", "개인 음성 어시스턴트", "대화형 에이전트들"로도 지칭됨)로 지칭되는 인터렉티브 소프트웨어 어플리케이션과의 사람-컴퓨터 간 대화에 참여할 수 있다. 예를 들어, 사용자는 텍스트로 변환되고 프로세싱되는 음성 발언일 수 있는 자유 형식 자연어 입력을 사용하는 및/또는 타이핑된 자유 형식 자연어 입력에 의해 명령, 쿼리 및/또는 요청(집합적으로 "쿼리"로 지칭됨)을 제공할 수 있다.
본 개시의 일 양태에 따르면, 디지털 어시스턴트 애플리케이션을 통해 보충적 오디오 콘텐츠를 주된 오디오 콘텐츠에 삽입하는 시스템은 하나 이상의 프로세서들을 갖는 데이터 프로세싱 시스템에서 실행되는 레코드 인덱서 컴포넌트를 포함할 수 있다. 레코드 인덱서는 콘텐츠 퍼블리셔의 오디오 레코딩 및 상기 오디오 레코딩의 제시 중에 보충적 오디오 콘텐츠를 삽입할 시간을 정의하는 콘텐츠 스팟을 특정하기 위한 상기 콘텐츠 퍼블리셔에 의해 설정된 콘텐츠 스팟 마커를 데이터베이스에 유지할 수 있다. 시스템은 상기 데이터 프로세싱 시스템에서 실행되는 자연어 프로세서 컴포넌트를 포함할 수 있다. 자연어 프로세서 컴포넌트는 클라이언트 디바이스의 센서에 의해 검출된 입력 오디오 신호를 포함하는 오디오 데이터 패킷을 수신할 수 있다. 자연어 프로세서 컴포넌트는 상기 입력 오디오 신호가 상기 콘텐츠 퍼블리셔로부터의 상기 오디오 레코딩에 대한 요청에 대응한다고 결정하기 위해 상기 오디오 데이터 패킷으로부터 상기 입력 오디오 신호를 파싱할 수 있다. 자연어 프로세서 컴포넌트는 상기 입력 오디오 신호로부터 결정된 상기 요청에 기초하여, 상기 데이터베이스로부터 상기 콘텐츠 퍼블리셔의 오디오 레코딩을 식별할 수 있다. 시스템은 상기 데이터 프로세싱 시스템에서 실행되는 콘텐츠 배치 컴포넌트를 포함할 수 있다. 콘텐츠 배치 컴포넌트는 상기 입력 오디오 신호가 상기 오디오 레코딩에 대한 요청에 대응한다는 결정에 응답하여, 상기 클라이언트 디바이스와 연관된 식별자를 콘텐츠 선택 파라미터로서 식별할 수 있다. 콘텐츠 배치 컴포넌트는 상기 오디오 레코딩의 상기 콘텐츠 스팟에 대해, 상기 콘텐츠 선택 파라미터를 사용하여 복수의 오디오 콘텐츠 아이템들로부터 콘텐츠 제공자의 오디오 콘텐츠 아이템을 선택할 수 있다. 시스템은 데이터 프로세싱 시스템에서 실행되는 액션 핸들러 컴포넌트를 포함할 수 있다. 액션 핸들러 컴포넌트는 상기 오디오 콘텐츠 아이템을 상기 콘텐츠 스팟 마커에 의해 특정된 상기 오디오 레코딩의 콘텐츠 스팟에 삽입할 수 있다. 액션 핸들러 컴포넌트는 상기 콘텐츠 스팟 마커에 의해 정의된 시간에 오디오 콘텐츠 아이템이 삽입된 상기 오디오 레코딩을 포함하는 액션 데이터 구조를 생성할 수 있다. 액션 핸들러 컴포넌트는 상기 콘텐츠 스팟에 상기 오디오 콘텐츠 아이템이 삽입된 상기 오디오 레코딩을 제시하기 위해 상기 액션 데이터 구조를 상기 클라이언트 디바이스에 전송할 수 있다.
본 개시의 일 양태에 따르면, 디지털 어시스턴트 애플리케이션을 통해 보충적 오디오 콘텐츠를 주된 오디오 콘텐츠에 삽입하는 방법은 하나 이상의 프로세서들을 갖는 데이터 프로세싱 시스템에 의해, 콘텐츠 퍼블리셔의 오디오 레코딩 및 상기 오디오 레코딩의 제시 중에 보충적 오디오 콘텐츠를 삽입할 시간을 정의하는 콘텐츠 스팟을 특정하기 위한 상기 콘텐츠 퍼블리셔에 의해 설정된 콘텐츠 스팟 마커를 데이터베이스에 유지할 수 있다. 상기 방법은 상기 데이터 프로세싱 시스템에 의해, 클라이언트 디바이스의 센서에 의해 검출된 입력 오디오 신호를 포함하는 오디오 데이터 패킷을 수신하는 단계를 포함할 수 있다. 상기 방법은 상기 데이터 프로세싱 시스템에 의해, 상기 입력 오디오 신호가 상기 콘텐츠 퍼블리셔로부터의 상기 오디오 레코딩에 대한 요청에 대응한다고 결정하기 위해 상기 오디오 데이터 패킷으로부터 상기 입력 오디오 신호를 파싱하는 단계를 포함할 수 있다. 상기 방법은 상기 데이터 프로세싱 시스템에 의해, 상기 입력 오디오 신호로부터 결정된 상기 요청에 기초하여, 상기 데이터베이스로부터 상기 콘텐츠 퍼블리셔의 오디오 레코딩을 식별하는 단계를 포함할 수 있다. 상기 방법은 상기 데이터 프로세싱 시스템에 의해, 상기 입력 오디오 신호가 상기 오디오 레코딩에 대한 요청에 대응한다는 결정에 응답하여, 상기 클라이언트 디바이스와 연관된 식별자를 콘텐츠 선택 파라미터로서 식별하는 단계를 포함할 수 있다. 상기 방법은 상기 데이터 프로세싱 시스템에 의해, 상기 오디오 레코딩의 상기 콘텐츠 스팟에 대해, 상기 콘텐츠 선택 파라미터를 사용하여 복수의 오디오 콘텐츠 아이템들로부터 콘텐츠 제공자의 오디오 콘텐츠 아이템을 선택하는 단계를 포함할 수 있다. 상기 방법은 상기 데이터 프로세싱 시스템에 의해, 상기 오디오 콘텐츠 아이템을 상기 콘텐츠 스팟 마커에 의해 특정된 시간을 정의하는 상기 오디오 레코딩의 콘텐츠 스팟에 삽입하는 단계를 포함할 수 있다. 상기 방법은 상기 데이터 프로세싱 시스템에 의해, 상기 콘텐츠 스팟 마커에 의해 정의된 시간에 오디오 콘텐츠 아이템이 삽입된 상기 오디오 레코딩을 포함하는 액션 데이터 구조를 생성하는 단계를 포함할 수 있다. 상기 방법은 상기 데이터 프로세싱 시스템에 의해, 상기 콘텐츠 스팟에 상기 오디오 콘텐츠 아이템이 삽입된 상기 오디오 레코딩을 제시하기 위해 상기 액션 데이터 구조를 상기 클라이언트 디바이스에 전송하는 단계를 포함할 수 있다.
이들 및 다른 양태들 및 구현예들은 아래에서 상세히 논의된다. 전술한 정보 및 다음의 상세한 설명은 다양한 양태들 및 구현예들의 예시적 실시예를 포함하고, 청구된 양태들 및 구현예들의 본질 및 특성을 이해하기 위한 개요 또는 프레임워크를 제공한다. 도면은 다양한 양태들 및 구현예들의 예시 및 추가 이해를 제공하며, 본 명세서에 통합되어 본 명세서의 일부를 구성한다.
첨부된 도면은 일정한 비율로 도시된 것이 아니다. 다양한 도면들에서 동일한 참조 번호 및 기호는 동일한 구성요소를 표시한다. 명확성을 위해 모든 도면에서 모든 컴포넌트가 라벨링된 것은 아니다. 도면에서:
도 1은 본 개시의 예에 따라, 디지털 어시스턴트 애플리케이션을 통해 보충적 오디오 콘텐츠를 주된 오디오 콘텐츠에 삽입하기 위한 예시적 시스템의 블록도를 도시한다.
도 2는 본 개시의 예에 따라, 도 1에 도시된 시스템에서 디지털 어시스턴트 애플리케이션을 통해 보충적 오디오 콘텐츠를 주된 오디오 콘텐츠에 삽입하기 위한 예시적 데이터 흐름의 시퀀스 다이어그램을 도시한다.
도 3은 본 개시의 예에 따라, 보충적 오디오 콘텐츠가 삽입된 주된 오디오 콘텐츠를 제시하는 예시적 클라이언트 컴퓨팅 디바이스를 도시한다.
도 4는 본 개시의 예에 따라, 도 1에 도시된 예시적인 시스템을 사용하여 디지털 어시스턴트 애플리케이션을 통해 보충적 오디오 콘텐츠를 주된 오디오 콘텐츠에 삽입하는 방법의 흐름도를 도시한다.
도 5는 예시적 컴퓨터 시스템의 블록도이다.
아래에 설명되는 것은 디지털 어시스턴트 애플리케이션을 통해 보충적 오디오 콘텐츠를 주된 오디오 콘텐츠에 삽입하기 위한 방법, 장치 및 시스템과 관련된 다양한 개념 및 구현예들에 대한 보다 상세한 설명이다. 위에서 소개되고 아래에서 더 상세하게 논의되는 다양한 개념은 수 많은 방식으로 구현될 수 있다.
오디오 파일에는 클라이언트 디바이스의 스피커를 통해 제공되는 오디오 콘텐츠가 포함될 수 있다. 오디오 파일에 대한 오디오 콘텐츠를 생성하기 위해, 콘텐츠 퍼블리셔는 하나 이상의 마이크로폰을 사용하여 자연(예: 사람의 음성, 동물 또는 날씨) 또는 인공(예: 악기, 신디사이저 또는 다른 기계) 소스의 다양한 소스를 녹음할 수 있다. 예를 들어, 팟캐스트 녹음을 생성하기 위해, 계속해서 대본을 읽는 사람 아나운서의 음성이 마이크로폰을 통해 녹음될 수 있다. 녹음하는 동안, 마이크로폰을 통해 획득된 사운드는 오디오 파일의 오디오 콘텐츠에 대한 사운드의 디지털 표현(예를 들어, 이진 코드)을 형성하기 위해 샘플링, 양자화 및 인코딩될 수 있다. 정보 리소스(예를 들어, 웹 페이지)에서 사용 가능하게 되면, 클라이언트 디바이스는 정보 리소스로부터 오디오 파일을 다운로드할 수 있고, 나중에 미디어 플레이어를 사용하여 오디오 파일을 재생할 수 있다.
그러나 오디오 파일이 생성된 후, 파일에 이미 포함된 오디오 콘텐츠를 방해하거나 분할하지 않고 콘텐츠 제공자와 같은 다른 엔터티에 의해 제공되는 보충적 오디오 콘텐츠를 추가하는 것은 어려울 수 있다. 이는 그러한 콘텐츠의 삽입을 위해 쉽게 중단될 수 있는 거의 실시간으로 제공되는 스트리밍 콘텐츠와 달리, 다운로드 후 언젠가 오디오 파일이 오프라인으로 재생될 수 있다는 점에서 특히 문제가 있다. 보충적 오디오 콘텐츠를 삽입하는 하나의 접근법은 콘텐츠 퍼블리셔의 주된 오디오 콘텐츠와 함께 보충적 오디오 콘텐츠를 수동으로 레코딩하는 것을 포함할 수 있다. 이전의 팟캐스트 예를 계속해서, 녹음될 사람 아나운서에 의해 큰 소리로 읽힌 대본 자체는 주된 오디오 콘텐츠를 위한 부분들 사이에 보충적 오디오 콘텐츠를 위한 부분을 포함할 수 있다. 그러나 이러한 접근법은 종종 오디오 파일의 청취자가 그와 관련없는 동일한 보충적 오디오 콘텐츠를 빈번하게 들어야 되게 한다. 또한, 이러한 유형의 접근법은 특히, 콘텐츠를 재생하는데 사용되는 오디오 장비의 충실도, 청취자의 현재 오디오 환경 및 일반적인 네트워크 조건과 같이 동적으로 변화하거나 상황에 따라 구동되는 기술적 상황에 맞게 콘텐츠를 조정하지 못할 수 있다.
보충적 오디오 콘텐츠를 일반적 환경에 적응시키지 못하는 것은 삽입할 보충적 오디오 콘텐츠를 식별함에 있어서, 요청하는 클라이언트 디바이스 또는 주된 오디오 콘텐츠를 고려하기 위한 콘텐츠 선택 프로세스의 부재로부터 발생할 수 있다. 그러한 프로세스 없이 콘텐츠 제공자의 관점에서, 콘텐츠 제공자가 보충적 오디오 콘텐츠를 제공할 오디오 파일 또는 콘텐츠 퍼블리셔를 평가하거나 식별하는 것은 어려울 수 있다. 결과적으로, 관련된 보충적 오디오 콘텐츠가 없으면, 클라이언트 디바이스는 잠재적으로 관련 콘텐츠에 대한 추가 요청의 생성 및 전송뿐만 아니라 초기에 기술적으로 최적이 아닌 출력을 제공함으로써 더 많은 컴퓨팅 리소스 및 네트워크 대역폭을 소비할 수 있다. 이것은 또한 사용자와 오디오 파일을 재생하는 클라이언트 디바이스 사이의 인간-컴퓨터 인터렉션(HCI)을 저하시킬 수 있다.
이러한 기술적 과제는 디지털 어시스턴트 애플리케이션의 컨텍스트에서 악화될 수 있다. 디지털 어시스턴트 애플리케이션은 클라이언트 디바이스의 마이크로폰을 통해 획득된 입력 음성 명령을 파싱하여, 특정한 콘텐츠 제공자로부터의 오디오 콘텐츠에 대한 요청을 식별할 수 있다. 예를 들어, 디지털 어시스턴트 애플리케이션에 의해 파싱된 입력 음성 명령은 "'뉴스 소스 A에서 팟캐스트를 다운로드해"일 수 있다. 디지털 어시스턴트 애플리케이션에 제공되는 콘텐츠 제공자의 오디오 파일은 오디오 파일에 삽입되고 임의의 콘텐츠 선택 프로세스 없이 선택된 보충적 오디오 콘텐츠를 포함할 수 있다. 디지털 어시스턴트 애플리케이션을 사용하면, 콘텐츠에 대한 추가 요청 생성에 계산적으로 복잡한 자연어 프로세싱 알고리즘을 사용하는 것으로 인한 상당히 많은 양의 컴퓨팅 리소스와 네트워크 대역폭이 소비될 수 있다.
오디오 파일에서 보충적 오디오 콘텐츠를 주된 오디오 콘텐츠에 삽입할 때의 이러한 문제점 및 다른 과제를 해결하기 위해, 본 시스템 및 방법은 요청시에 보충적 오디오 콘텐츠를 동적으로 선택하여 삽입할 수 있다. 오디오 파일은 콘텐츠 제공자에 의해 특정된 콘텐츠 스팟을 가질 수 있으며, 이 콘텐츠 스팟은 주된 오디오 콘텐츠 내에 보충적 오디오 콘텐츠를 삽입하고 재생하는 기간영역을 정의할 수 있다. 음성 명령이 특정한 콘텐츠 제공자로부터의 오디오 파일에 대한 요청임을 식별하면, 디지털 어시스턴트 애플리케이션은 콘텐츠 선택 서비스를 호출할 수 있다. 콘텐츠 배치 서비스는 콘텐츠 스팟에 삽입하기 위해 보충적 오디오 콘텐츠로부터 선택하기 위해 사용될 콘텐츠 선택 파라미터를 식별할 수 있다. 콘텐츠 선택 파라미터들은 다른 것들 중에서도 특히 디바이스 식별자, 쿠키 식별자, 계정 식별자 또는 계정 프로필과 같은 식별자를 포함할 수 있다. 콘텐츠 배치 서비스는 파라미터를 사용하여 파일 내의 오디오 콘텐츠의 콘텐츠 스팟에 대해 다양한 콘텐츠 제공자로부터의 콘텐츠 세트로부터 보충적 오디오 콘텐츠를 식별할 수 있다. 일단 식별되면, 디지털 어시스턴트 애플리케이션은 보충적 오디오 콘텐츠를 오디오 콘텐츠 내의 콘텐츠 스팟에 삽입할 수 있다. 디지털 어시스턴트 애플리케이션은 제시하기 위해 보충적 오디오 콘텐츠를 갖는 오디오 파일을 클라이언트 디바이스에 제공하고 반환할 수 있다.
콘텐츠 선택 파라미터의 통합으로, 추가적 파라미터가 오디오 파일에서 오디오 콘텐츠의 콘텐츠 스팟에 삽입하기 위해 보충적 오디오 콘텐츠의 선택 및 식별을 증강하는데 사용될 수 있다. 예를 들어, 식별자를 사용하여, 디지털 어시스턴트 애플리케이션은 오디오 파일의 제공 후에 미리 정의된 인터렉션들 중 하나(예를 들어, 콘텐츠 제공자에 대한 음성 명령 쿼리)가 클라이언트 디바이스에서 발생하는지 여부를 모니터링할 수 있다. 미리 정의된 인터렉션들이 검출되는 클라이언트 디바이스들의 수에 기초하여, 콘텐츠 선택 서비스는 오디오 파일의 오디오 콘텐츠 내의 콘텐츠 스팟에 대한 콘텐츠 스팟 파라미터를 결정할 수 있다. 콘텐츠 스팟 파라미터에 대한 값은 보충적 오디오 콘텐츠를 가진 오디오 파일을 제시한 후에 미리 정의된 인터렉션들 중 하나의 발생 가능성에 비례할 수 있다. 콘텐츠 선택 파라미터에 더하여, 콘텐츠 선택 서비스는 콘텐츠 스팟 파라미터를 사용하여 파일의 오디오 콘텐츠에 삽입할 보충적 오디오 콘텐츠를 식별할 수 있다.
요청을 식별함에 따라 콘텐츠를 선택하기 위해 다양한 파라미터가 사용되기 때문에, 콘텐츠 스팟에 삽입된 보충적 오디오 콘텐츠는 일반적인 조건에 보다 기술적으로 적합할 수 있거나 클라이언트 디바이스를 통해 오디오 콘텐츠를 듣는 사용자와 더 관련될 수 있다. 적합성 및/또는 관련성의 증가로 인해, 클라이언트 디바이스를 통한 후속 관련 인터렉션의 가능성이 증가하여, 사용자와 클라이언트 디바이스 사이의 인간-컴퓨터 인터렉션(HCI)이 개선될 수 있다. 또한, 콘텐츠에 대한 추가 요청에 대해 디지털 어시스턴트 애플리케이션에 의해 후속 음성 명령이 수신될 가능성이 감소되어 컴퓨팅 리소스 및 네트워크 대역폭의 소비가 감소될 수 있다.
도 1은 특히 디지털 어시스턴트 애플리케이션을 통해 보충적 오디오 콘텐츠를 주된 오디오 콘텐츠에 삽입하기 위한 예시적 시스템(100)의 블록도를 도시한다. 시스템(100)은 적어도 하나의 데이터 프로세싱 시스템(102)을 포함할 수 있다. 보다 상세하게는, 데이터 프로세싱 시스템(102)은 적어도 하나의 프로세서 및 메모리, 즉 프로세싱 회로를 포함할 수 있다. 메모리는 프로세서에 의해 실행될 때 프로세서로 하여금 본 명세서에 기술된 하나 이상의 동작들을 수행하게 하는 프로세서 실행가능 명령어들을 저장한다. 프로세서는 마이크로 프로세서, 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA) 등, 또는 이들의 조합을 포함할 수 있다. 메모리는 전자, 광학, 자기 또는 프로세서에 프로그램 명령어들을 제공할 수 있는 임의의 다른 저장 또는 전송 디바이스를 포함할 수 있지만, 이에 한정되지 않는다. 메모리는 플로피 디스크, CD-ROM, DVD, 자기 디스크, 메모리 칩, ASIC, FPGA, ROM, RAM, EEPROM(electrically-erasable programmable ROM), EPROM(erasable-programmable ROM), 플래시 메모리, 광학 매체, 또는 프로세서가 명령어들을 판독할 수 있는 임의의 기타 적절한 메모리를 포함할 수 있다. 명령어들은 임의의 적절한 컴퓨터 프로그래밍 언어의 코드가 포함될 수 있다. 데이터 프로세싱 시스템(102)은 다양한 기능들을 수행할 수 있는 하나 이상의 컴퓨팅 디바이스들 또는 서버들을 포함할 수 있다.
데이터 프로세싱 시스템(102)은 다수의 논리적으로 그룹화된 서버를 포함할 수 있고, 분산 컴퓨팅 기법을 지원한다. 논리적 서버들의 그룹은 데이터 센터, 서버 팜 또는 머신 팜으로 지칭될 수 있다. 서버는 지리적으로 분산될 수 있다. 데이터 센터 또는 머신 팜은 단일 엔터티로 관리되거나, 머신 팜은 복수의 머신 팜을 포함할 수 있다. 각 머신 팜 내의 서버는 다른 기종일 수 있다 - 하나 이상의 서버 또는 머신이 하나 이상의 운영 체제 플랫폼 유형에 따라 동작할 수 있다. 데이터 프로세싱 시스템(102)은 각각 예를 들어 엔터프라이즈 데이터 센터에 위치한 연관 스토리지 시스템과 함께 하나 이상의 고밀도 랙 시스템에 저장된 데이터 센터의 서버를 포함할 수 있다. 이러한 방식으로 통합된 서버를 갖는 데이터 프로세싱 시스템(102)는 지역화된 고성능 네트워크에 서버 및 고성능 저장 시스템을 위치시킴으로써 시스템 관리성, 데이터 보안, 시스템의 물리적 보안 및 시스템 성능을 향상시킬 수 있다. 서버 및 저장 시스템을 포함하여 모든 또는 일부 데이터 프로세싱 시스템(102) 컴포넌트들을 중앙집중화하고 이를 고급 시스템 관리 툴과 결합하면 서버 리소스들을 보다 효율적으로 사용할 수 있게 하여, 전력 및 프로세싱 요구사항을 절약하고 대역폭 사용을 감소시킨다. 데이터 프로세싱 시스템(102)의 각각의 컴포넌트는 적어도 하나의 프로세싱 유닛, 서버, 가상 서버, 회로, 엔진, 에이전트, 기기, 또는 시스템(100)의 다른 컴퓨팅 디바이스와 통신하도록 구성된 프로그램 가능한 논리 어레이와 같은 다른 논리 디바이스를 포함할 수 있다.
시스템(100)은 적어도 하나의 클라이언트 디바이스(104)을 포함할 수 있다. 클라이언트 디바이스(104)는 시스템(100)의 다른 컴포넌트와 통신하기 위한 프로세서를 갖는 컴퓨팅 디바이스와 같은 적어도 하나의 논리 디바이스를 포함할 수 있다. 클라이언트 디바이스(104)는 데이터 프로세싱 시스템(102)과 관련하여 설명된 임의의 컴포넌트의 인스턴스를 포함할 수 있다. 클라이언트 디바이스(104)는 데스크탑 컴퓨터, 랩탑, 태블릿 컴퓨터, 개인용 디지털 어시스턴트, 스마트폰, 모바일 디바이스, 휴대용 컴퓨터, 씬 클라이언트 컴퓨터, 가상 서버, 스피커 기반 디지털 어시스턴트 또는 다른 컴퓨팅 디바이스를 포함할 수 있다.
시스템(100)은 적어도 하나의 콘텐츠 퍼블리셔(106)를 포함할 수 있다. 콘텐츠 퍼블리셔(106)는 주된 오디오 콘텐츠를 제공하기 위해 콘텐츠 퍼블리싱 엔터티에 의해 동작되는 서버들 또는 다른 컴퓨팅 디바이스들을 포함할 수 있다. 예를 들어, 콘텐츠 퍼블리셔(106)는 주된 오디오 콘텐츠를 레코딩하는 오디오 레코딩 엔터티와 연관될 수 있다. 주된 오디오 콘텐츠는 오디오 캐스트(때때로 팟캐스트 또는 오디오 팟캐스트로 지칭됨)의 레코딩일 수 있다. 주된 오디오 콘텐츠는 콘텐츠 퍼블리싱 엔터티 외에 다른 엔터티로부터 다른 오디오 콘텐츠를 삽입하기 위해 오디오 레코딩 엔터티에 의해 정의된 하나 이상의 브레이크를 포함할 수 있다. 브레이크는 다른 콘텐츠가 삽입될 수 있는 레코딩 내의 시기(예를 들어, 침묵 또는 다른 소리)에 대응할 수 있다. 일단 레코딩되면, 콘텐츠 퍼블리셔(106)는 하나 이상의 오디오 파일을 패키징 및 생성하고, 파일을 정보 리소스(예를 들어, 웹페이지), 웹 애플리케이션 또는 다른 프로그램을 통해 다운로드 가능하게 할 수 있다. 오디오 파일은 WAV, MPEG, MP3, RIFF, AAC, OGG 및 WMA와 같은 임의의 형식일 수 있다.
시스템(100)은 적어도 하나의 콘텐츠 제공자(108)를 포함할 수 있다. 콘텐츠 제공자(108)는 보충적 오디오 콘텐츠를 제공하기 위해 콘텐츠 제공자 엔터티에 의해 운영되는 서버 또는 다른 컴퓨팅 디바이스를 포함할 수 있다. 예를 들어, 콘텐츠 제공자(108)는 보충적 오디오 콘텐츠(본 명세서에서는 서드 파티 오디오 콘텐츠로도 지칭됨)를 레코딩하는 다른 오디오 레코딩 엔터티와 연관될 수 있다. 보충적 오디오 콘텐츠는 콘텐츠 퍼블리셔(106)에 의해 생성된 주된 오디오 콘텐츠에 포함되거나 삽입될 수 있다. 예를 들어, 브레이크에서 콘텐츠 제공자(108)에 의해 레코딩된 보충적 오디오 콘텐츠는 콘텐츠 제공자(106)와 연관된 오디오 레코딩 엔터티에 의해 정의된다. 일단 레코딩되면, 콘텐츠 제공자(108)는 하나 이상의 오디오 파일을 패키징 및 생성하고, 파일을 정보 리소스(예를 들어, 웹페이지), 웹 애플리케이션 또는 다른 프로그램을 통해 주된 오디오 콘텐츠와 함께 제시하기 위해 사용가능하게 할 수 있다. 오디오 파일은 WAV, MPEG, MP3, RIFF, AAC, OGG 및 WMA와 같은 임의의 형식일 수 있다.
시스템(100)은 적어도 하나의 네트워크(112)를 포함할 수 있다. 데이터 프로세싱 시스템(102), 클라이언트 디바이스(104), 콘텐츠 퍼블리셔(106) 및 콘텐츠 제공자(108)와 같은 시스템(100)의 컴포넌트는 네트워크(112)를 통해 통신할 수 있다. 네트워크(112)는 예를 들면, 포인트-투-포인트 네트워크, 브로드캐스트 네트워크, 광역 네트워크, 근거리 네트워크, 전화통신 네트워크, 데이터 통신 네트워크, 컴퓨터 네트워크, ATM(Asynchronous Transfer Mode) 네트워크, SONET(Synchronous Optical Network) 네트워크, SDH(Synchronous Digital Hierarchy) 네트워크, NFC(Near-Field Communication) 네트워크, LAN, 무선 네트워크 및 유선 네트워크를 포함할 수 있다. 네트워크(112)는 적외선 채널 또는 위성 대역과 같은 무선 링크를 포함할 수 있다. 네트워크(112)의 토폴로지는 버스, 스타 또는 링 네트워크 토폴로지를 포함할 수 있다. 네트워크는 어드밴스드 모바일폰 프로토콜("AMPS"), 시분할 다중 액세스("TDMA"), 코드 분할 다중 액세스("CDMA"), 글로벌 이동 통신 시스템("GSM"), 일반 패킷 무선 서비스("GPRS") 또는 범용 이동 통신 시스템("UMTS")을 포함하는 모바일 디바이스들 간에 통신하는데 사용되는 임의의 프로토콜 또는 프로토콜들을 사용하는 모바일 전화 네트워크들을 포함할 수 있다. 상이한 유형의 데이터는 상이한 프로토콜을 통해 전송될 수 있거나, 동일한 유형의 데이터가 상이한 프로토콜들을 통해 전송될 수 있다.
데이터 프로세싱 시스템(102)은 디지털 어시스턴트 애플리케이션(110)의 적어도 하나의 인스턴스를 포함할 수 있다. 디지털 어시스턴트 애플리케이션(110)은 오디오 기반 입력을 파싱하기 위한 적어도 하나의 NLP(natural language processor) 컴포넌트(116)를 포함할 수 있다. 디지털 어시스턴트 애플리케이션(110)은 오디오 기반 신호를 생성하기 위한 적어도 하나의 오디오 신호 생성 컴포넌트(118)를 포함할 수 있다. 디지털 어시스턴트 애플리케이션(110)은 액션 데이터 구조를 생성하기 위한 적어도 하나의 다이렉트 액션 핸들러 컴포넌트(120)를 포함할 수 있다. 디지털 어시스턴트 애플리케이션(110)은 오디오 기반 입력 신호에 대한 응답을 선택하기 위한 적어도 하나의 응답 선택 컴포넌트(122)를 포함할 수 있다. 디지털 어시스턴트 애플리케이션은 디지털 어시스턴트 애플리케이션(110)에 대한 데이터를 유지하기 위한 적어도 하나의 데이터 저장소(124)를 포함할 수 있다. NLP 컴포넌트(116), 오디오 신호 생성 컴포넌트(118), 다이렉트 액션 핸들러 컴포넌트(120), 응답 선택 컴포넌트(122) 및 데이터 저장소(124) 중 하나 이상은 데이터 프로세싱 시스템(102) 상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스 또는 서로로부터 분리될 수 있다.
데이터 저장소(124)는 하나 이상의 로컬 또는 분산 데이터베이스를 포함할 수 있고, 데이터베이스 관리 시스템을 포함할 수 있다. 데이터 저장소(124)는 컴퓨터 데이터 저장 또는 메모리를 포함할 수 있고, 다른 데이터 중에서도 특히, 하나 이상의 정규식(126), 하나 이상의 파라미터(128), 정책(130), 응답 데이터(132), 템플릿(124) 및 적어도 하나의 식별자(136)를 저장할 수 있다. 파라미터(128), 정책(130) 및 템플릿(134)은 클라이언트 디바이스(104)와 데이터 프로세싱 시스템(102) 사이의 음성 기반 세션에 관한 규칙과 같은 정보를 포함할 수 있다. 정규식(126)은 디지털 어시스턴트 애플리케이션(110)을 통해 클라이언트 디바이스(104)와 데이터 프로세싱 시스템(102) 사이에서 음성 기반 세션을 수행하는 것에 관한 규칙을 포함할 수 있다. 정규식(126), 파라미터(128), 정책(130) 및 템플릿(134)은 또한 다른 소스(예를 들어, 데이터 프로세싱 시스템(102) 및 클라이언트 디바이스(104))로부터 수신된 다른 디지털 어시스턴트 애플리케이션(110)에 대한 정보를 포함할 수 있다. 응답 데이터(132)는 오디오 출력 또는 연관 메타데이터에 대한 콘텐츠 아이템뿐만 아니라 클라이언트 디바이스(104)와의 하나 이상의 통신 세션의 일부일 수 있는 입력 오디오 메시지를 포함할 수 있다. 식별자(138)는 클라이언트 디바이스(104)에 관한 정보(예를 들어, 디지털 어시스턴트 애플리케이션(110)에 액세스하고 이를 실행하기 위한 인증 크리덴셜)를 포함할 수 있다.
데이터 프로세싱 시스템(102)은 콘텐츠 퍼블리셔(106) 및 콘텐츠 제공자(108)로부터 오디오 콘텐츠를 수신 및 유지하기 위한 적어도 하나의 레코드 인덱서 컴포넌트(138)를 포함할 수 있다. 데이터 프로세싱 시스템(102)은 콘텐츠 퍼블리셔(106)의 주된 오디오 콘텐츠에 삽입하기 위한 콘텐츠 제공자(108)로부터의 보충적 오디오 콘텐츠를 선택하기 위한 적어도 하나의 콘텐츠 배치 컴포넌트(140)를 포함할 수 있다. 데이터 프로세싱 시스템(102)은 오디오 콘텐츠의 제공과 관련하여 인터렉션을 모니터링하기 위한 적어도 하나의 컨버전 검출 컴포넌트(142)를 포함할 수 있다. 데이터 프로세싱 시스템(102)은 특히 레코드 인덱서 컴포넌트(138), 콘텐츠 배치 컴포넌트(140) 또는 컨버전 검출 컴포넌트(142)에 대한 데이터를 유지하기 위한 적어도 하나의 데이터 저장소(144)를 포함할 수 있다. 레코드 인덱서 컴포넌트(138), 콘텐츠 배치 컴포넌트(140), 컨버전 검출 컴포넌트(142) 및 데이터 저장소(144) 중 하나 이상은 (예를 들어, 도시된 바와 같이) 데이터 프로세싱 시스템(102) 상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스와 분리될 수 있다. 레코드 인덱서 컴포넌트(138), 콘텐츠 배치 컴포넌트(140), 컨버전 검출 컴포넌트(142) 및 데이터 저장소(144) 중 하나 이상은 데이터 프로세싱 시스템(102) 상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스의 일부일 수 있다.
데이터 프로세싱 시스템(102)은 적어도 하나의 인터페이스(114)를 포함할 수 있다. 인터페이스(114)는 예를 들어 데이터 패킷을 사용하여 정보를 수신 및 전송하도록 설계, 구성, 또는 동작될 수 있다. 인터페이스(114)는 네트워크 프로토콜과 같은 하나 이상의 프로토콜을 사용하여 정보를 수신 및 전송할 수 있다. 인터페이스(114)는 하드웨어 인터페이스, 소프트웨어 인터페이스, 유선 인터페이스 또는 무선 인터페이스를 포함할 수 있다. 인터페이스(114)는 시스템(100)의 컴포넌트들이 서로 통신할 수 있게 하는 데이터 인터페이스 또는 네트워크 인터페이스일 수 있다. 데이터 프로세싱 시스템(102)의 인터페이스(114)는 네트워크(112)를 통해 액션 데이터 구조, 오디오 신호 또는 다른 데이터를 포함하는 하나 이상의 데이터 패킷을 제공하거나 전송할 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 출력 신호를 데이터 저장소(124) 또는 오디오 신호 생성 컴포넌트(118)로부터 클라이언트 디바이스(104)에 제공할 수 있다.
데이터 프로세싱 시스템(102)은 또한 데이터 패킷 전송을 통해 클라이언트 디바이스(104)로 하여금 액션 데이터 구조에 표시된 기능을 수행하게 할 수 있다. 출력 신호는 데이터 프로세싱 시스템(102)(또는 다른 컴퓨팅 디바이스)으로부터 클라이언트 디바이스(104)에게로 하나 이상의 데이터 패킷(또는 다른 통신 프로토콜)로서 획득, 생성, 변환 또는 전송될 수 있다. 인터페이스(114)는 한 포맷에서 다른 포맷으로 데이터를 변환하거나 포맷하는 것을 용이하게 할 수 있다. 예를 들어, 인터페이스(114)는 소프트웨어 컴포넌트와 같은 다양한 컴포넌트들 사이에서 통신하기 위한 정의를 포함하는 어플리케이션 프로그래밍 인터페이스(API)를 포함할 수 있다. 데이터 프로세싱 시스템(102)과 연관된 애플리케이션, 스크립트, 프로그램 또는 다른 컴포넌트가 클라이언트 디바이스(104)에 설치될 수 있다. 애플리케이션은 클라이언트 디바이스(104)로 하여금 입력 오디오 신호(및 다른 데이터)를 데이터 프로세싱 시스템(102)의 인터페이스(114)와 통신하게 할 수 있다.
데이터 프로세싱 시스템(102)은 입력 오디오 신호를 데이터 프로세싱 시스템(102)의 인터페이스(114)에 통신하고 클라이언트 컴퓨팅 디바이스의 컴포넌트를 출력 오디오 신호 또는 시각적 출력을 렌더링하기 위해 구동하기 위한 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스와 같은 클라이언트 디바이스(104)에 설치된 어플리케이션, 스크립트 또는 프로그램을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 데이터 패킷, 디지털 파일, 또는 입력 오디오 신호(또는 입력 오디오 신호들)를 포함하거나 식별하는 다른 신호를 수신할 수 있다. 클라이언트 디바이스(104)는 스피커(152)를 통해 오디오 신호를 검출하고, 아날로그-디지털 변환기를 통해 아날로그 오디오 신호를 디지털 파일로 변환할 수 있다. 예를 들어, 오디오 드라이버는 아날로그-디지털 변환기 컴포넌트를 포함할 수 있다. 프리-프로세서 컴포넌트는 오디오 신호를 네트워크(112)를 통해 데이터 패킷들을 통해 전송될 수 있는 디지털 파일로 변환할 수 있다.
클라이언트 디바이스(104)는 컴포넌트들(202110) 전부 또는 일부를 포함할 수 있다. 디지털 어시스턴트 애플리케이션(110)과 같은 데이터 프로세싱 시스템(102)의 기능들은 클라이언트 디바이스(104)에(예를 들어, 인터페이스(114)를 통해) 포함되거나 클라이언트 디바이스(104)로부터 액세스 가능할 수 있다. 데이터 프로세싱 시스템(102)의 기능은 클라이언트 디바이스(104)에서 실행되는 디지털 어시스턴트 애플리케이션(110)과의 기능 또는 인터페이스에 대응할 수 있다. 클라이언트 디바이스(104)는 각각 디지털 어시스턴트 애플리케이션(110)의 하나 이상의 컴포넌트의 개별 인스턴스를 포함하고 실행할 수 있다. 이와 달리, 클라이언트 디바이스(104)는 네트워크(112)를 통해 데이터 프로세싱 시스템(102)상의 디지털 어시스턴트 애플리케이션(110)의 컴포넌트의 기능에 액세스할 수 있다. 예를 들어, 클라이언트 디바이스(104)는 NLP 컴포넌트(116)의 기능을 포함하고 데이터 프로세싱 시스템(102)에 대한 네트워크(112)를 통해 디지털 어시스턴트 애플리케이션(110)의 나머지 컴포넌트에 액세스할 수 있다.
클라이언트 디바이스(104)는 (마이크로폼(154) 또는 스피커(152)를 통해) 클라이언트 디바이스(104)에 오디오 입력으로서 음성 쿼리를 입력하고, 클라이언트 디바이스(104)의 최종 사용자에게 제시, 디스플레이 또는 렌더링하기 위해 데이터 프로세싱 시스템(102)으로부터 출력된 오디오(또는 다른)를 수신하는 최종 사용자와 연관될 수 있다. 디지털 컴포넌트는 데이터 프로세싱 시스템(102)으로부터 클라이언트 디바이스(104)에 제공될 수 있는 컴퓨터 생성 음성을 포함할 수 있다. 클라이언트 디바이스(104)는 컴퓨터 생성 음성을 스피커(152)를 통해 최종 사용자에게 렌더링할 수 있다. 컴퓨터 생성 음성은 실제 사람 또는 컴퓨터 생성 언어의 녹음을 포함할 수 있다. 클라이언트 디바이스(104)는 클라이언트 디바이스(104)에 통신 가능하게 연결된 디스플레이 디바이스를 통해 시각적 출력을 제공할 수 있다.
클라이언트 디바이스(104)는 적어도 하나의 스피커(152) 및 적어도 하나의 마이크로폰(154)을 포함하거나 이와 인터페이스 또는 통신할 수 있다. 클라이언트 디바이스(104)는 스피커(152) 및 마이크로폰(154)과 소프트웨어 인터페이스를 제공하기 위한 오디오 드라이버를 포함할 수 있다. 오디오 드라이버는 데이터 프로세싱 시스템(102)에 의해 제공된 명령어들을 실행하여 스피커(152)를 제어하여 대응하는 음향 파장 또는 음파를 생성할 수 있다. 오디오 드라이버는 오디오 파일 또는 다른 명령어들을 실행하여 마이크로폰(154)으로부터 획득된 음향 파장 또는 음파를 변환하여 오디오 데이터를 생성할 수 있다. 예를 들어, 오디오 드라이버는 음향 파장 또는 음파를 오디오 데이터로 변환하기 위해 아날로그-드라이버 변환기(ADC)를 실행할 수 있다.
디지털 어시스턴트 애플리케이션(110)의 기능들은 데이터 프로세싱 시스템(102) 및 클라이언트 디바이스(104) 상에서 인스턴스에 의해 할당되거나 수행될 수 있다. 예를 들어, 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스는 키워드를 검출하고 키워드에 기초하여 액션을 수행할 수 있다. 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)은 데이터 프로세싱 시스템(102)에서 실행되는 디지털 어시스턴트 애플리케이션(110)의 인스턴스일 수 있거나 디지털 어시스턴트 애플리케이션(110)의 기능 중 임의의 기능을 수행할 수 있다. 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스는 추가 프로세싱을 위해 용어들을 데이터로서 데이터 프로세싱 시스템(102)(데이터 프로세싱 시스템(102) 상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스)에 전송하기 전에, 하나 이상의 용어들을 필터링하거나 용어를 수정할 수 있다. 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스는 스피커(142)에 의해 검출된 아날로그 오디오 신호를 디지털 오디오 신호로 변환하고, 디지털 오디오 신호를 운반하는 하나 이상의 데이터 패킷을 네트워크(112)를 통해 데이터 프로세싱 시스템(102)에 전송할 수 있다. 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스는 그러한 전송을 수행하기 위한 명령어를 검출함에 응답하여, 일부 또는 전체 입력 오디오 신호를 운반하는 데이터 패킷을 전송할 수 있다. 명령어는 예를 들어, 입력 오디오 신호를 포함하는 데이터 패킷을 데이터 프로세싱 시스템(102)에 전송하기 위한 트리거 키워드 또는 다른 키워드 또는 승인을 포함할 수 있다.
클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스는 입력 오디오 신호에 대한 사전 필터링 또는 사전 프로세싱을 수행하여 특정 주파수의 오디오를 제거할 수 있다. 사전-필터링은 저역 통과 필터, 고역 통과 필터 또는 대역 통과 필터와 같은 필터들을 포함할 수 있다. 주파수 영역에서 필터들이 적용될 수 있다. 필터들은 디지털 신호 프로세싱 기법을 사용하여 적용될 수 있다. 필터들은 사람의 음성 또는 사람의 말에 대응하는 주파수를 유지하면서 일반적인 사람의 말의 주파수를 벗어나는 주파수를 제거하도록 구성될 수 있다. 예를 들어, 대역 통과 필터는 제1 임계치(예를 들어, 70Hz, 75Hz, 80Hz, 85Hz, 90Hz, 95Hz, 100Hz 또는 105Hz) 미만 및 제2 임계치(예를 들어, 200Hz, 205Hz, 210Hz, 225Hz, 235Hz, 245Hz 또는 3 kHz) 초과의 주파수들을 제거하도록 구성될 수 있다. 대역 통과 필터를 적용하면 다운 스트림 프로세싱에서 컴퓨팅 리소스 사용을 줄일 수 있다. 컴퓨팅 디바이스(104)상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스는 입력 오디오 신호를 데이터 프로세싱 시스템(102)으로 전송하기 전에 대역 통과 필터를 적용하여, 네트워크 대역폭 이용을 감소시킬 수 있다. 일부 경우에, 클라이언트 디바이스(104)에 이용 가능한 컴퓨팅 리소스 및 이용가능한 네트워크 대역폭에 기초하여, 데이터 프로세싱 시스템(102)이 필터링을 수행할 수 있도록 입력 오디오 신호를 데이터 프로세싱 시스템(102)에 제공하는 것이 더 효율적일 수 있다. 컴퓨팅 디바이스(104)상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스는 자연어 프로세서를 방해할 수 있는 주변 소음 레벨을 감소시키기 위해 노이즈 감소 기법과 같은 추가 프리-프로세싱 또는 사전-필터링 기법을 적용할 수 있다. 노이즈 감소 기법은 자연어 프로세서의 정확성 및 속도를 향상시켜, 데이터 프로세싱 시스템(102)의 성능을 향상시키고 디스플레이를 통해 제공되는 그래픽 사용자 인터페이스의 렌더링을 관리한다.
데이터 프로세싱 시스템(102)에서 실행되는 디지털 어시스턴트 애플리케이션(110)의 인스턴스의 NLP 컴포넌트(116)는 클라이언트 디바이스(104)의 마이크로폰(154)에 의해 검출된 입력 오디오 신호를 포함하는 오디오 데이터 패킷을 수신할 수 있다. 데이터 패킷들은 디지털 파일을 제공할 수 있다. NLP 컴포넌트(116)는 오디오 신호를 포함하는 디지털 파일 또는 데이터 패킷들을 수신 또는 획득하고 오디오 신호를 파싱할 수 있다. 입력 오디오 신호를 데이터 프로세싱 시스템(102)에 제공함에 있어서, 클라이언트 디바이스(104) 상의 NLP 컴포넌트(116)는 적어도 하나의 오디오 데이터 패킷(때로는 일반적으로 데이터 패킷으로 지칭됨)을 생성할 수 있다. 오디오 데이터 패킷은 클라이언트 디바이스(104)의 마이크로폰(154)에 의해 획득된 입력 오디오 신호를 포함할 수 있다. 오디오 데이터 패킷은 클라이언트 디바이스(104), 클라이언트 디바이스에서 실행되는 디지털 어시스턴트 애플리케이션(110) 또는 하나 이상의 식별자(136)와 같은 입력 오디오 신호의 전송과 관련된 데이터를 포함할 수 있다. 식별자(136)는 예를 들어, 여러 것들 중에서도 특히, 클라이언트 디바이스(104)를 참조하는 디바이스 식별자, (예를 들어, 인증 크리덴셜의 일부로서) 디지털 어시스턴트 애플리케이션(110)의 사용자와 연관된 계정 식별자 또는 디지털 어시스턴트 애플리케이션(110)의 현재 사용에 할당된 세션 또는 쿠키 식별자를 포함할 수 있다. 오디오 데이터 패킷 내의 데이터는 특히, 클라이언트 디바이스(104)와 연관된 디바이스 속성, 디지털 어시스턴트 애플리케이션(110)과 연관된 애플리케이션 속성, 및 디지털 어시스턴트 애플리케이션(110)에 로그인하는데 사용된 계정과 연관된 특성 특징과 같은 메타 데이터를 포함할 수 있다. 생성시, 클라이언트 디바이스(104)상의 NLP 컴포넌트(116)는 오디오 데이터 패킷을 데이터 프로세싱 시스템(102)에 전송할 수 있다. 후속적으로, 데이터 프로세싱 시스템(102)에서 실행되는 디지털 어시스턴트 애플리케이션(110)의 인스턴스는 오디오 데이터 패킷을 수신할 수 있고, 입력 오디오 신호 및 임의의 추가 데이터를 포함하는 오디오 데이터 패킷을 프로세싱할 수 있다.
입력 오디오 신호를 파싱하기 위해, NLP 컴포넌트(116)는 자연어를 이해하고 데이터 프로세싱 시스템(102)이 인간 또는 자연어 입력으로부터 의미를 도출하도록 하는 기법으로 구성될 수 있다. 다양한 자연어 처리 기법을 사용하여, NLP 컴포넌트(116)는 인간(예를 들어, 클라이언트 디바이스(104)의 사용자)과 컴퓨터(예를 들어, 디지털 어시스턴트 애플리케이션(110)에서 실행되는 클라이언트 디바이스(104)) 사이의 인터렉션을 제공할 수 있다. NLP 컴포넌트(116)는 통계적 기계 학습과 같은 기계 학습에 기초한 기법을 포함하거나 그러한 기법으로 구성될 수 있다. NLP 컴포넌트(116)는 입력 오디오 신호를 파싱하기 위해 디시전 트리, 통계 모델 또는 확률 모델을 이용할 수 있다. NLP 컴포넌트(116)는 기능들을 포함할 수 있고, 상기 기능들은 명명된 엔터티 인식(예: 주어진 텍스트의 스트림, 사람들 또는 장소들과 같은 이름에 대한 텍스트 맵의 아이템 결정, 상기 각 이름이 어떤 유형인지 예를 들어, 사람, 위치(예: "집") 또는 조직), 자연어 생성(예: 컴퓨터 데이터베이스로부터의 정보 또는 의미론적 의도를 이해가능한 인간 언어로 변환), 자연어 이해(예: 컴퓨터 모듈이 조작할 수 있는 텍스트를 제1 순서 로직 구조와 같은 더 형식적인 표현으로 변환), 기계 번역(예: 텍스트를 하나의 인간 언어로부터 다른 언어로 자동적으로 번역), 형태학적 세그먼트화(예: 단어를 개별 형태소로 분리하고 형태소의 클래스를 식별, 이는 고려되고 있는 언어의 단어의 형태론 또는 구조의 복잡도에 따라 어려울 수 있음), 질문에 답변(예: 특정적이거나 개방적일 수 있는 인간-언어 질문에 대한 답을 결정) 또는 의미론 프로세싱(예: 식별된 단어를 유사한 의미의 다른 단어와 관련시키기 위해 단어를 식별하고 그것의 의미를 인코딩한 후에 발생할 수 있는 프로세싱)을 포함한다.
NLP 컴포넌트(116)는 입력 신호를(예를 들어, 데이터 저장소(124)에) 저장된 대표적인 오디오 파형 세트와 비교하고 가장 근접한 매칭을 선택함으로써, 입력 오디오 신호를 인식된 문자열로 변환할 수 있다. 오디오 파형 세트는 데이터 저장소(124) 또는 데이터 프로세싱 시스템(102)이 액세스 가능한 다른 데이터베이스에 저장될 수 있다. 대표적인 파형은 다수의 사용자 세트에 걸쳐 생성된 후, 사용자로부터의 음성 샘플로 보강될 수 있다. 오디오 신호가 인식된 텍스트로 변환된 후, NLP 컴포넌트(116)는 예를 들어, 데이터 프로세싱 시스템(102)이 제공할 수 있는 동작과 함께, 예를 들어 사용자를 통한 트레이닝 또는 수동 스펙을 통해 연관된 단어에 텍스트를 매칭한다. NLP 컴포넌트(116)는 마이크로폰(154)으로부터 획득된 입력 오디오 신호가 인식 가능한 문자열을 포함하지 않는다고 결정할 수 있다. NLP 컴포넌트(116)는 입력 오디오 신호가 인식 가능한 문자열을 포함하지 않는다고 결정함에 있어서, 입력 오디오 신호가 침묵(예를 들어, 최대 진폭 0 dB 미만)을 포함한다고 결정할 수 있다. 또한, NLP 컴포넌트(116)는 입력 오디오 신호의 신호 대 잡음(SNR)을 결정할 수 있다. NLP 컴포넌트(116)는 입력 오디오 신호의 SNR을 임계 SNR(예를 들어, -20dB)과 비교할 수 있다. 입력 오디오 신호의 SNR이 임계 SNR보다 크다는 결정에 응답하여, NLP 컴포넌트(116)는 입력 오디오 신호가 인식 가능한 문자열을 포함하지 않는다고 결정할 수 있다.
NLP 컴포넌트(116)는 입력 오디오 신호에 부가하여 또는 대신에 오디오 또는 비디오 입력 신호를 수신 및 프로세싱할 수 있다. NLP 컴포넌트(116)는 이미지 또는 비디오 입력을 텍스트 또는 디지털 파일로 변환할 수 있다. NLP 컴포넌트(116)는 이미지 또는 비디오 입력을 프로세싱, 분석 또는 해석하여 액션을 수행하거나, 요청을 생성하거나, 데이터 구조를 선택 또는 식별할 수 있다. 데이터 프로세싱 시스템(102)은 예를 들어 이미지 해석 기법, 컴퓨터 비전, 기계 학습 엔진 또는 이미지 또는 비디오를 인식하여 상기 이미지 또는 비디오를 디지털 파일로 변환하기 위한 다른 기법을 사용하여, 이미지 또는 비디오 입력 신호를 프로세싱할 수 있다. 하나 이상의 이미지 해석 기법, 컴퓨터 비전 기법 또는 기계 학습 기법은 총괄적으로 이미징 기법으로 지칭될 수 있다. 데이터 프로세싱 시스템(102)(예를 들어, NLP 컴포넌트(116))은 오디오 프로세싱 기법에 더하여 또는 그 대신에 이미징 기법으로 구성될 수 있다.
입력 오디오 패킷으로부터, NLP 컴포넌트(116)는 클라이언트 디바이스(104)의 마이크로폰(154)에 의해 획득된 입력 오디오 신호를 획득하거나 식별할 수 있다. 획득시, NLP 컴포넌트(116)는 입력 오디오 신호를 시간의 세그먼트(예를 들어, 15초 내지 2분)의 하나 이상의 오디오 세그먼트로 파티셔닝 또는 분할하여 각 세그먼트를 프로세싱 또는 파싱한다. 파싱함으로써, NLP 컴포넌트(116)는 입력 오디오 신호로부터 하나 이상의 단어를 식별할 수 있다. 식별된 단어에 기초하여, NLP 컴포넌트(116)는 입력 오디오 신호가 특정한 콘텐츠 퍼블리셔(106)로부터의 오디오 콘텐츠에 대한 요청에 대응하는지 여부를 결정할 수 있다. 결정은 식별된 오디오 콘텐츠에 대한 요청에 대한 포맷팅과 매칭되는지 여부에 기초할 수 있다. 포맷팅은 데이터 저장소(124)에 유지된 정규식(126), 파라미터(128), 정책(130) 및 템플릿(134)에 의해 표시되거나 특정될 수 있다. 오디오 콘텐츠에 대한 요청의 포맷팅은 검색 의도, 검색될 오디오 콘텐츠의 유형 및 오디오 콘텐츠가 검색될 엔터티를 나타내는 트리거 단어로 구성될 수 있다. 예를 들어, 입력 오디오 신호로부터 NLP 컴포넌트(116)에 의해 인식되는 단어는 "뉴스 채널 XYZ로부터 팟캐스트를 다운로드해"를 포함할 수 있다. 이 예에서, 트리거 키워드는 "다운로드", 객체는 "팟캐스트" 및 발신 엔터티는 "뉴스 채널 XYZ"일 수 있다.
입력 오디오 신호로부터 단어를 식별함으로써, NLP 컴포넌트(116)는 단어가 오디오 콘텐츠에 대한 요청에 대한 포맷팅에 대응하는지 또는 매칭되는지를 결정할 수 있다. 결정은 하나 이상의 자연어 프로세싱 기법을 사용하여 수행될 수 있다. 예를 들어, 질문-응답은 트리거 키워드를 결정하기 위해 사용될 수 있고, 엔터티 인식은 오디오 콘텐츠의 유형 및 발신 엔터티를 식별하기 위해 사용될 수 있다. 입력 오디오 요청으로부터의 단어가 포맷팅과 매칭되지 않는다는 결정에 응답하여, NLP 컴포넌트(116)는 입력 오디오 신호가 오디오 콘텐츠에 대한 요청에 대응하지 않는 것으로 결정할 수 있다. 또한, NLP 컴포넌트(116)는 입력 오디오 신호의 단어에 표시된 다른 유형의 요청을 수행하기 위해 추가적인 액션을 수행할 수 있다. 반대로, 단어가 포맷팅과 매칭된다고 결정함에 응답하여, NLP 컴포넌트(116)는 입력 오디오가 오디오 콘텐츠에 대한 요청에 대응한다고 결정할 수 있다. 또한, 디지털 어시스턴트 애플리케이션(110) 및 데이터 프로세싱 시스템(102)은 콘텐츠 퍼블리셔(106)로부터 오디오 콘텐츠를 검색할 때 요청을 수행하기 위한 추가 액션을 수행할 수 있다.
데이터 프로세싱 시스템(102)에서 실행되는 레코드 인덱서 컴포넌트(138)는 데이터 저장소(144) 상의 오디오 레코딩(146)의 세트를 유지할 수 있다. 데이터 저장소(144)를 유지함에 있어서, 레코드 인덱서 컴포넌트(138)는 콘텐츠 퍼블리셔들(106) 중 하나로부터 오디오 레코딩(146)을 수신할 수 있다. 수신되면, 레코드 인덱서 컴포넌트(138)는 오디오 레코딩(146)을 데이터 저장소(144)에 저장할 수 있다. 레코드 인덱서 컴포넌트(138)는 또한 오디오 레코딩(146)이 수신되는 콘텐츠 퍼블리셔(106)를 식별하고, 오디오 레코딩(146)을 콘텐츠 퍼블리셔(106)와 연관시키고, 오디오 레코딩(146)과 콘텐츠 퍼블리셔(106) 사이의 연관을 저장할 수 있다. 각 오디오 레코딩(146)은 콘텐츠 퍼블리셔(106) 중 하나로부터 제공되거나 수신될 수 있고, 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)으로의 다운로드를 통해 제공될 수 있다. 오디오 레코딩(146)은 WAV, MPEG, MP3, RIFF, AAC, OGG 및 WMA와 같은 임의의 유형의 포맷 중 하나 이상의 오디오 파일을 포함할 수 있다. 오디오 레코딩(146)은 연관된 콘텐츠 퍼블리셔(106)에 의해 생성된 주된 오디오 콘텐츠를 포함할 수 있다. 주된 오디오 콘텐츠에 더하여, 오디오 레코딩(146)은 적어도 하나의 콘텐츠 스팟(148)을 포함할 수 있다. 콘텐츠 스팟(148)은 보충적 오디오 콘텐츠가 제시될 주된 오디오 콘텐츠의 부분을 정의할 수 있다. 콘텐츠 스팟(148)은 대응하는 콘텐츠 스팟 마커를 사용하여 콘텐츠 퍼블리셔(106)에 의해 특정되거나 제공될 수 있다. 콘텐츠 스팟 마커는 오디오 레코딩(146)에서 주된 오디오 콘텐츠를 제시하는 동안 보충적 콘텐츠가 재생될 시간 또는 시간 윈도우를 정의할 수 있다.
또한, 레코드 인덱서 컴포넌트(138)는 보충적 오디오 콘텐츠 아이템(150)(이하 일반적으로 오디오 콘텐츠 아이템(150)으로 지칭됨)을 데이터 저장소(144) 상에 유지한다. 데이터 저장소(144)를 유지함에 있어서, 레코드 인덱서 컴포넌트(138)는 콘텐츠 제공자(108)로부터 오디오 콘텐츠 아이템(150)을 수신할 수 있다. 수신되면, 레코드 인덱서 컴포넌트(138)는 오디오 레코딩(146)을 데이터 저장소(144)에 저장할 수 있다. 레코드 인덱서 컴포넌트(138)는 또한 오디오 콘텐츠 아이템(150)이 수신되는 콘텐츠 제공자(108)를 식별하고, 오디오 콘텐츠 아이템(150)을 콘텐츠 제공자(108)와 연관시키고, 오디오 콘텐츠 아이템(150)과 콘텐츠 제공자(108) 사이의 연관을 저장할 수 있다. 각 오디오 콘텐츠 아이템(150)은 콘텐츠 제공자(108) 중 하나로부터 제공되거나 수신될 수 있고, 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)으로의 다운로드를 통해 오디오 레코딩(146)의 일부로서 제공될 수 있다. 각 오디오 콘텐츠 아이템(150)은 특히 WAV, MPEG, MP3, RIFF, AAC, OGG 및 WMA와 같은 임의의 유형의 포맷 중 하나 이상의 오디오 파일을 포함할 수 있다. 오디오 콘텐츠 아이템(150)은 연관된 콘텐츠 제공자(108)에 의해 생성된 보충적 오디오 콘텐츠를 포함할 수 있다. 오디오 콘텐츠 아이템(150)의 보충적 오디오 콘텐츠는 오디오 레코딩(146) 중 하나의 콘텐츠 스팟(148)에 삽입될 수 있다. 일단 삽입되면, 오디오 콘텐츠 아이템(150)의 보충적 오디오 콘텐츠는 콘텐츠 스팟(148)에 대한 콘텐츠 스팟 마커에 의해 특정된 대로, 주된 오디오 콘텐츠 이전, 도중 또는 이후에 제시된다.
입력 오디오 신호가 오디오 콘텐츠에 대한 요청에 대응한다는 결정에 응답하여, NLP 컴포넌트(116)는 데이터 저장소(144)로부터 오디오 레코딩(146)을 식별하여 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)에 제공할 수 있다. 입력 오디오 신호로부터 파싱된 단어에 기초하여, NLP 컴포넌트(116)는 오디오 콘텐츠가 요청과 연관된 콘텐츠 퍼블리셔(106)를 식별할 수 있다. 예를 들어, NLP 컴포넌트(116)는 엔터티 인식을 사용하여 콘텐츠 퍼블리셔(106)와 연관된 콘텐츠 퍼블리셔 엔터티를 식별할 수 있다. 요청과 연관된 콘텐츠 퍼블리셔(106)의 식별로, NLP 컴포넌트(116)는 콘텐츠 저장소(144)에 액세스하여 콘텐츠 퍼블리셔(106)에 속하는 오디오 레코딩(146)의 서브셋을 식별할 수 있다. NLP 컴포넌트(116)는 식별된 콘텐츠 퍼블리셔(106)를 사용하여 데이터 저장소(144)로부터 적어도 하나의 오디오 레코딩(146)을 검색하기 위해 레코드 인덱서 컴포넌트(138)를 호출할 수 있다. 예를 들어, 레코드 인덱서 컴포넌트(138)는 데이터 저장소(144) 상에 저장되고 유지되는 콘텐츠 퍼블리셔(106)로부터 가장 최근의 오디오 레코딩(146)을 검색할 수 있다. 서브셋으로부터, NLP 컴포넌트(116)는 입력 오디오 신호로부터 파싱된 단어에 기초하여 제공하기 위해 하나의 오디오 레코딩(146)을 식별할 수 있다.
데이터 프로세싱 시스템(102)에서 실행되는 콘텐츠 배치 컴포넌트(140)는 요청과 연관된 오디오 레코딩(146)의 각 콘텐츠 스팟(148)에 삽입할 오디오 콘텐츠 아이템(150) 중 적어도 하나를 선택하거나 식별할 수 있다. 입력 오디오 신호가 콘텐츠 요청에 대응한다는 결정으로, 콘텐츠 배치 컴포넌트(140)는 적어도 하나의 콘텐츠 선택 파라미터를 식별할 수 있다. 콘텐츠 선택 파라미터는 오디오 레코딩(146)의 콘텐츠 스팟(148)에 포함할 오디오 콘텐츠 아이템(150) 중 하나를 선택하는데 사용될 수 있다. 콘텐츠 선택 파라미터는 특히, 예를 들어: 식별자(136)(예: 디바이스 식별자, 계정 식별자 또는 세션 또는 쿠키 식별자); 클라이언트 디바이스(104)와 연관된 적어도 하나의 디바이스(예: 디바이스 유형, 디바이스 능력, 네트워크 주소 및 지리적 위치); 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)과 연관된 적어도 하나의 애플리케이션 속성(예: 애플리케이션 이름, 버전 또는 제시 능력); 및 디지털 어시스턴트 애플리케이션(110)에 로그인하는데 사용되는 계정 식별자와 연관된 적어도 하나의 특성 특징(예: 계정 프로필), 관심 식별자 또는 사용자 세그먼트)를 포함할 수 있다.
콘텐츠 선택 파라미터를 식별하기 위해, 콘텐츠 배치 컴포넌트(140)는 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)에 의해 제공된 오디오 데이터 패킷을 파싱하여 그에 포함된 데이터를 식별할 수 있다. 파싱함으로써, 콘텐츠 배치 컴포넌트(140)는 오디오 데이터 패킷에 포함된 식별자(136)를 추출하거나 식별할 수 있다. 일단 식별되면, 콘텐츠 배치 컴포넌트(140)는 오디오 데이터 패킷으로부터의 식별자(136)를 콘텐츠 선택 파라미터 중 하나로 사용할 수 있다. 파싱 대신에 또는 파싱에 더하여, 콘텐츠 배치 컴포넌트(140)는 API(application programming interface)를 통해 클라이언트 디바이스(104)상의 디지털 어시스턴트 애플리케이션(110)으로부터 식별자(136)를 검색할 수 있다. 예를 들어; 오디오 데이터 패킷은 식별자(136)가 없을 수 있고, 디지털 어시스턴트 애플리케이션(110)은 식별자(136)를 사용하는 동작에 대해 인증되었을 수 있다. 이 예에서, 콘텐츠 배치 컴포넌트(140)는 식별자(136)를 페치하기 위해 디지털 어시스턴트 애플리케이션(110)에 의해 사용된 API의 사양에 따라 함수 호출을 호출할 수 있다. 또한, 콘텐츠 배치 컴포넌트(140)는 오디오 데이터 패킷을 파싱하여 그에 포함된 메타 데이터, 예컨대 디바이스 속성, 애플리케이션 속성 및 특성 특징을 식별할 수 있다. 식별에 의해, 콘텐츠 배치 컴포넌트(140)는 오디오 데이터 패킷으로부터 식별된 디바이스 속성, 애플리케이션 속성 또는 특성 특징을 콘텐츠 선택 파라미터로서 사용할 수 있다.
또한, 콘텐츠 배치 컴포넌트(140)는 입력 오디오 신호의 요청과 연관된 오디오 레코딩(146)에 포함된 각 콘텐츠 스팟(148)에 대한 콘텐츠 스팟 파라미터를 결정할 수 있다. 콘텐츠 스팟 파라미터는 콘텐츠 스팟(148)을 평가하는데 사용될 수 있고, 오디오 레코딩(146) 또는 콘텐츠 스팟(148)에 삽입된 보충적 오디오 콘텐츠의 측정되거나 추정된 뷰의 수 또는 이들의 조합에 비례할 수 있다. 오디오 레코딩(146) 자체의 청취 횟수 및 오디오 레코딩(146)의 콘텐츠 스팟(148)에 삽입된 보충적 오디오 콘텐츠의 청취 횟수는 다수의 클라이언트 디바이스(104)에 걸쳐 오디오 레코딩(146)의 이전 제공으로부터 계측될 수 있다. 예를 들어, 오디오 레코딩(145)의 청취 횟수는 상이한 클라이언트 디바이스(104)에 걸쳐 디지털 어시스턴트 애플리케이션(110)의 다수의 인스턴스를 통해 오디오 레코딩(145)의 재생을 계측하는 것으로부터 측정될 수 있다. 오디오 레코딩(146)의 하나의 콘텐츠 스팟(148)에 삽입된 보충적 오디오 콘텐츠의 청취 횟수는 오디오 레코딩(146)이 제공되었던 다수의 클라이언트 디바이스(104)에 걸쳐 검출된 다수의 미리 정의된 인터렉션 이벤트를 검출함으로써 측정될 수 있다. 미리 정의된 인터렉션 이벤트는 예를 들어, 보충적 오디오 콘텐츠와 관련된 단어를 포함하는 클라이언트 디바이스(104)의 마이크로폰(154)을 통해 검출된 후속 음성 쿼리 또는 보충적 오디오 콘텐츠와 연관된 콘텐츠 제공자(108)와 연관된 정보 리소스 상의 인터렉션들의 세트를 포함할 수 있다. 측정된 수로부터, 콘텐츠 스팟(148)에 삽입된 오디오 레코딩(146) 및 보충적 오디오 콘텐츠의 추정된 청취 횟수가 계산될 수 있다(예를 들어, 재구성, 트렌드 추정 또는 외삽 기술을 통해). 측정 횟수 및 추정 횟수는 데이터 프로세싱 시스템(102)의 카운터에 의해 결정되고 유지될 수 있다.
수를 결정함에 있어서, 콘텐츠 배치 컴포넌트(140)는 오디오 레코딩(146)의 청취 횟수 및 콘텐츠 스팟(148)에 삽입된 보충적 오디오 콘텐츠의 청취 횟수를 추정하기 위한 적어도 하나의 예측 모델을 설정할 수 있다. 예측 모델은 회귀 모델(예를 들어, 선형 또는 로지스틱), 지원 벡터 머신, 인공 신경망(ANN), 랜덤 포레스트 분류기, 베이지안 통계 모델 또는 k-최근접 알고리즘과 같은 임의의 수의 기계 학습 알고리즘 또는 모델에 따라 생성될 수 있다. 예측 모델은 데이터 저장소(124 또는 144)에서 유지되는 트레이닝 데이터 세트를 사용하여 설정될 수 있다. 트레이닝 데이터세트는 다른 오디오 레코딩(146)의 청취 횟수 및 다양한 콘텐츠 스팟(148)에서 오디오 레코딩(146)에 삽입된 보충적 오디오 콘텐츠의 청취 횟수에 대한 이전 또는 샘플 측정을 포함할 수 있다. 또한, 트레이닝 데이터세트는 오디오 레코딩(146) 및 콘텐츠 스팟(148) 자체의 하나 이상의 특징을 포함할 수 있으며, 예를 들어: 각 오디오 레코딩(146)의 길이, 오디오 레코딩(146)의 콘텐츠 스팟(148)의 길이, 콘텐츠 스팟(148)이 오디오 레코딩(148) 내에서 정의된 시간, 오디오 레코딩(146)의 주제 카테고리 및 콘텐츠 스팟(148)에 삽입된 보충적 오디오 콘텐츠의 주제 카테고리를 포함할 수 있다. 트레이닝 데이터세트는 오디오 레코딩(146)의 청취자에 관한 데이터, 예를 들어, 디바이스 속성, 애플리케이션 속성 또는 특성 특징 등을 포함할 수 있다. 트레이닝 데이터세트를 사용하여, 콘텐츠 배치 컴포넌트(140)는 기계 학습 알고리즘 또는 모델의 유형(예를 들어, 수렴까지)에 따라 예측 모델을 트레이닝할 수 있다. 트레이닝시, 예측 모델은 오디오 레코딩(146)의 예측된(또는 추정된) 청취 횟수 및 오디오 레코딩(146) 내의 임의의 콘텐츠 스팟(148)에 삽입될 보충적 오디오 콘텐츠의 청취 횟수를 결정하는데 사용될 수 있다.
콘텐츠 스팟(148)에 대한 콘텐츠 스팟 파라미터를 결정하기 위해, 콘텐츠 배치 컴포넌트(140)는 다수의 클라이언트 디바이스(104)에 걸친 오디오 레코딩(146)의 청취 횟수를 계산, 결정 또는 식별할 수 있다. 콘텐츠 배치 컴포넌트(140)는 카운터에 의해 유지되는 오디오 레코딩(146)의 측정된 청취 횟수를 식별할 수 있다. 콘텐츠 배치 컴포넌트(140)는 오디오 레코딩(146)의 추정된 청취 횟수(예를 들어, 외삽을 사용하여 계산)를 식별할 수 있다. 콘텐츠 배치 컴포넌트(140)는 또한 오디오 레코딩(146)의 예측된 청취 횟수를 결정하기 위해 오디오 레코딩(146)에 적용할 수 있다. 적용 시에, 콘텐츠 배치 컴포넌트(140)는 오디오 레코딩(146)의 다양한 특징(예를 들어, 길이 및 주제 카테고리)을 식별할 수 있다. 적용 시, 콘텐츠 배치 컴포넌트(140)는 예측 모델에 의해 출력된 예측된 청취 횟수를 결정하거나 식별할 수 있다.
또한, 오디오 레코딩(146)의 각 콘텐츠 스팟(148)에 대해, 콘텐츠 배치 컴포넌트(140)는 다수의 클라이언트 디바이스(104)에 걸쳐 콘텐츠 스팟(148)에 삽입된 보충적 오디오 콘텐츠의 청취 횟수를 계산, 결정 또는 식별할 수 있다. 보충적 오디오 콘텐츠는 데이터 저장소(144) 상에 유지되는 하나 이상의 오디오 콘텐츠 아이템(150)에 대응할 수 있다. 콘텐츠 배치 컴포넌트(140)는 카운터에 의해 유지되는 콘텐츠 스팟(148)에 삽입된 보충적 오디오 콘텐츠의 측정된 청취 횟수를 식별할 수 있다. 콘텐츠 배치 컴포넌트(140)는 콘텐츠 스팟(148)에 삽입된 보충적 오디오 콘텐츠의 추정된 청취 횟수(예를 들어, 외삽을 사용하여 계산)를 식별할 수 있다. 콘텐츠 배치 컴포넌트(140)는 또한 콘텐츠 스팟(148)에 삽입된 보충적 오디오 콘텐츠의 예상 청취 횟수를 결정하기 위해 오디오 레코딩(146)을 적용할 수 있다. 적용시에, 콘텐츠 배치 컴포넌트(140)는 오디오 레코딩(146)(예를 들어, 길이 및 주제 카테고리) 및 콘텐츠 스팟(148)(예를 들어, 오디오 레코딩(146) 내의 시간)의 다양한 특징을 식별할 수 있다. 적용시, 콘텐츠 배치 컴포넌트(140)는 예측 모델에 의해 출력된 예측된 청취 횟수를 식별할 수 있다.
측정, 추정 또는 예측된 청취 횟수에 기초하여, 콘텐츠 배치 컴포넌트(140)는 오디오 레코딩(146)에서 콘텐츠 스팟(148)에 대한 콘텐츠 스팟 파라미터를 계산하거나 결정할 수 있다. 콘텐츠 배치 컴포넌트(140)는 오디오 레코딩(146)에 대한 청취 횟수를 사용하여 하나의 콘텐츠 스팟 파라미터를 결정할 수 있다. 콘텐츠 배치 컴포넌트(140)는 또한 오디오 레코딩(146)의 콘텐츠 스팟(148)에서 보충적 오디오 콘텐츠에 대한 청취 횟수를 사용하여 다른 별개의 콘텐츠 스팟 파라미터를 결정할 수 있다. 콘텐츠 배치 컴포넌트(140)는 또한 오디오 레코딩(146)에 대한 청취 횟수와 오디오 레코딩(146)의 콘텐츠 스팟(148)에 대한 청취 횟수의 조합에 기초하여 단일 콘텐츠 스팟 파라미터를 결정할 수 있다. 조합은 예를 들어, 합산, 평균, 가중 평균 또는 함수, 또는 이들의 임의의 조합을 포함할 수 있다.
콘텐츠 스팟(148)에 삽입할 보충적 오디오 콘텐츠를 선택함에 있어서, 콘텐츠 배치 컴포넌트(140)는 후보 오디오 콘텐츠 아이템 세트(150)로부터 오디오 콘텐츠 아이템(150)을 선택하기 위해 콘텐츠 배치 프로세스를 실행하거나 수행할 수 있다. 프로세스를 실행함에 있어서, 콘텐츠 배치 컴포넌트(150)는 각 콘텐츠 제공자(108)로부터 콘텐츠 제출 파라미터를 요청, 검색 또는 식별할 수 있다. 콘텐츠 제출 파라미터는 대응하는 콘텐츠 제공자(108)에 의해 오디오 레코딩(146)에서 콘텐츠 스팟(148)의 평가를 표현하거나 표시할 수 있다. 콘텐츠 제출 파라미터는 대응하는 콘텐츠 제공자(108)에 의해 제공되는 오디오 콘텐츠 아이템(150)과 연관될 수 있다. 콘텐츠 제출 파라미터의 값이 높을 수록 콘텐츠 제공자(108)의 오디오 콘텐츠 아이템(150)이 선택될 가능성이 더 높다. 콘텐츠 제출 파라미터를 검색하기 위해, 콘텐츠 배치 컴포넌트(150)는 파라미터에 대한 요청을 각 콘텐츠 제공자(108)에 전송할 수 있다. 요청은 콘텐츠 선택 파라미터 및 콘텐츠 스팟 파라미터를 포함할 수 있다. 수신하면, 각 콘텐츠 제공자(108)는 콘텐츠 선택 파라미터 및 콘텐츠 스팟 파라미터에 기초하여 콘텐츠 제출 파라미터를 결정하거나 생성할 수 있다. 일단 생성되면, 콘텐츠 제공자(108)는 콘텐츠 제출 파라미터로 다시 응답하여 데이터 프로세싱 시스템(102)으로 송신할 수 있다.
하나 이상의 파라미터를 사용하여, 콘텐츠 배치 컴포넌트(140)는 식별된 오디오 레코딩(146)의 콘텐츠 스팟(148)에 삽입하기 위해 오디오 콘텐츠 아이템(150) 중 적어도 하나를 선택할 수 있다. 콘텐츠 배치 컴포넌트(140)는 콘텐츠 선택 파라미터에 기초하여 데이터 저장소(144) 상에 유지되는 후보 오디오 콘텐츠 아이템 세트(150)로부터 오디오 콘텐츠 아이템(150)을 선택할 수 있다. 예를 들어, 콘텐츠 배치 컴포넌트(140)는 콘텐츠 선택 파라미터와 매칭되는 사양(예를 들어, 디바이스 속성, 애플리케이션 속성 및 특성 속성)을 갖는 오디오 콘텐츠 아이템(150)을 찾을 수 있다. 콘텐츠 배치 컴포넌트(140)는 또한 콘텐츠 스팟 파라미터(콘텐츠 선택 파라미터와 조합하여)에 기초하여 오디오 콘텐츠 아이템(150)을 선택할 수 있다. 예를 들어, 콘텐츠 배치 컴포넌트(140)는 특성 속성에 의해 표시된 관심 사항과 매칭되는 카테고리 토픽 및 콘텐츠 스팟(148)과 동일한 길이를 갖는 오디오 콘텐츠 아이템(150)의 서브셋을 식별할 수 있다. 이 예에서, 서브셋으로부터, 콘텐츠 배치 컴포넌트(140)는 콘텐츠 스팟(148)에서 오디오 레코딩(146)에의 삽입을 위한 보충적 오디오 콘텐츠에 대한 예측된 청취 횟수가 가장 많은 하나의 오디오 콘텐츠 아이템(150)을 선택할 수 있다.
콘텐츠 아이템(150)을 선택할 때, 콘텐츠 배치 컴포넌트(140)는 또한 콘텐츠 제출 파라미터를 사용할 수 있고, 콘텐츠 제출 파라미터를 수신한 상태에서 콘텐츠 배치 프로세스를 계속할 수 있다. 콘텐츠 배치 컴포넌트(140)는 다양한 콘텐츠 제공자(108)로부터 수신된 콘텐츠 제출 파라미터에 순위를 매길 수 있다. 순위로부터, 콘텐츠 배치 컴포넌트(140)는 콘텐츠 제출 파라미터가 가장 높은 콘텐츠 제공자(108)를 식별할 수 있다. 식별에 의해, 콘텐츠 배치 컴포넌트(140)는 순위에서 가장 높은 콘텐츠 제출 파라미터를 갖는 콘텐츠 제공자(108)로부터 오디오 콘텐츠 아이템(150)을 식별하거나 선택할 수 있다. 콘텐츠 선택 파라미터, 콘텐츠 스팟 파라미터 또는 콘텐츠 제출 파라미터의 임의의 조합은 오디오 레코딩(146)의 콘텐츠 스팟(148)에 삽입할 오디오 콘텐츠 아이템(150)을 식별하거나 선택하는데 사용될 수 있다. 콘텐츠 배치 컴포넌트(140)는 오디오 레코딩(146)에 대해 정의된 콘텐츠 스팟(148) 각각에 대해 하나의 오디오 콘텐츠 아이템(150)을 선택하는 프로세스를 반복할 수 있다.
디지털 어시스턴트 애플리케이션(110)의 다이렉트 액션 핸들러 컴포넌트(120)는 콘텐츠 배치 컴포넌트(115)에 의해 선택된 오디오 콘텐츠 아이템(150)을 오디오 레코딩(146)의 콘텐츠 스팟(148)에 삽입할 수 있다. 데이터 저장소(144)로부터 오디오 콘텐츠 아이템(150)의 선택에 의해, 다이렉트 액션 핸들러 컴포넌트(120)는 NLP 컴포넌트(116)에 의해 식별된 오디오 레코딩(146)을 식별하기 위해 데이터 저장소(144)에 액세스할 수 있다. 예를 들어, 다이렉트 액션 핸들러 컴포넌트(120)는 콘텐츠 퍼블리셔(106)에 의해 생성되고 NLP 컴포넌트(116)에 의해 식별된 오디오 레코딩(146)에 대응하는 하나 이상의 오디오 파일을 검색할 수 있다. 식별되면, 다이렉트 액션 핸들러 컴포넌트(120)는 오디오 콘텐츠 아이템(150)이 선택된 오디오 레코딩(146)에서 콘텐츠 스팟(148)을 식별할 수 있다. 다이렉트 액션 핸들러 컴포넌트(120)는 대응하는 콘텐츠 스팟 마커에 의해 정의된 시간에 오디오 콘텐츠 아이템(150)을 콘텐츠 스팟(148)에 추가, 내장 또는 삽입할 수 있다. 예를 들어, 다이렉트 액션 핸들러 컴포넌트(120)는 콘텐츠 스팟(148)에 대한 콘텐츠 스팟 마커에 의해 정의된 시간 윈도우 동안 오디오 레코딩(146)으로부터 오디오 콘텐츠를 삭제하거나 널링(null)할 수 있다. 제거시, 다이렉트 액션 핸들러 컴포넌트(120)는 선택된 오디오 콘텐츠 아이템(150)을 오디오 레코딩(146) 내의 콘텐츠 스팟(148)의 시간 윈도우에 오버레이할 수 있다. 오디오 콘텐츠 아이템(150)을 삽입할 때, 다이렉트 액션 핸들러 컴포넌트(120)는 오디오 레코딩(146)의 나머지와의 호환성을 위해 보충적 오디오 콘텐츠를 변환하기 위해 하나 이상의 신호 프로세싱 알고리즘을 수행할 수 있다. 신호 프로세싱 알고리즘은 예를 들어, 등화, 압축 및 밸런싱과 같은 다양한 오디오 믹싱 기법을 포함할 수 있다. 다이렉트 액션 핸들러 컴포넌트(120)는 오디오 레코딩(146)의 콘텐츠 스팟(148)에 대해 선택된 모든 오디오 콘텐츠 아이템(150)을 삽입할 수 있다. 오디오 콘텐츠 아이템(150)의 삽입으로, 다이렉트 액션 핸들러 컴포넌트(120)는 클라이언트 디바이스(104)에 제공하기 위해 오디오 레코딩(146)을 (예를 들어, 하나 이상의 편집된 오디오 파일로서) 캐싱 또는 저장할 수 있다.
다이렉트 액션 핸들러 컴포넌트(120)는 클라이언트 디바이스(104) 상의 마이크로폰(154)에 의해 검출된 입력 오디오 신호에 표시된 요청을 수행하기 위해 적어도 하나의 액션 데이터 구조를 생성할 수 있다. 액션 데이터 구조는 특히, HTTP(HyperText Transfer Protocol)에 따라 생성될 수 있다. 예를 들어, 액션 데이터 구조는 입력 오디오 신호에서 특정된 요청을 완료하기 위해 다른 데이터와 함께 HTTP 응답의 본문(또는 페이로드)에 포함될 수 있다. 다이렉트 액션 핸들러 컴포넌트(120)는 정규식(126), 파라미터(128), 정책(130), 응답 데이터(132) 및 템플릿(134)와 같은 데이터 저장소(124)에 저장된 데이터에 따라 응답 선택 컴포넌트(122) 포맷을 호출하거나 다이렉트 액션 구조를 생성할 수 있다. 예를 들어, 응답 선택 컴포넌트(122)는 데이터 저장소(124)로부터 템플릿(134)을 검색하여 액션 데이터 구조에 포함시킬 필드를 결정할 수 있다. 응답 선택 컴포넌트(122)는 오디오 콘텐츠에 대한 요청에 대한 응답을 위한 데이터 구조의 필드들에 대한 정보를 획득하기 위해 데이터 저장소(124)로부터 콘텐츠를 검색할 수 있다. 응답 선택 컴포넌트(122)(또는 다이렉트 액션 핸들러 컴포넌트(120))는 오디오 콘텐츠에 대한 요청에 대한 응답으로서 액션 데이터 구조에 포함될 메시지에 하나 이상의 단어를 포함할 수 있다. 예를 들어, 응답 메시지는 "발견된 팟캐스트. 토크쇼 PQR로부터 다운로드 중"이라는 단어를 포함할 수 있다.
액션 데이터 구조를 생성할 때, 다이렉트 액션 핸들러 컴포넌트(120)는 오디오 레코딩(146)에 콘텐츠 스팟(148)에 삽입될 하나 이상의 오디오 콘텐츠 아이템(150)을 포함할 수 있다. 다이렉트 액션 핸들러 컴포넌트(120)는 삽입된 오디오 콘텐츠 아이템들(150)을 가진 오디오 레코딩(146)에 대응하는 하나 이상의 오디오 파일들을 액션 데이터 구조에 삽입할 수 있다. 다이렉트 액션 핸들러 컴포넌트(120)는 오디오 콘텐츠 아이템(150)을 가진 오디오 레코딩(146)을 참조하는 주소(예를 들어, URL 주소 또는 네트워크 주소)를 액션 데이터 구조에 포함할 수 있다. 주소는 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스에 의해 데이터 저장소(144)로부터 삽입된 오디오 콘텐츠 아이템(150)을 갖는 오디오 레코딩(146)을 검색하거나 다운로드하기 위해 사용될 수 있다. 다이렉트 액션 핸들러 컴포넌트(120)는 액션 데이터 구조를 포함하는 HTTP 응답의 본문의 일부로서 오디오 레코딩(146)을 포함할 수 있다. 삽입시, 다이렉트 액션 핸들러 컴포넌트(120)는 액션 데이터 구조를 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스에 제공, 송신 또는 전송할 수 있다. 액션 데이터 구조의 전송은 오디오 레코딩(146)을 클라이언트 디바이스(104)에 스트리밍하지 않고, 오디오 레코딩(146)을 클라이언트 디바이스(104)에 업로드하는 것을 포함하거나 이에 대응할 수 있다. 예를 들어, 다이렉트 액션 핸들러 컴포넌트(120)는 스트리밍을 통해 오디오 레코딩(146)의 청크를 제공하는 대신, 클라이언트 디바이스(104)로 다운로드하기 위해 오디오 레코딩(146)에 대응하는 파일을 전송할 수 있다.
전송에 의해, 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스는 삽입된 오디오 콘텐츠 아이템들(150)과 함께 오디오 레코딩(146)을 포함하는 액션 데이터 구조를 수신할 수 있다. 액션 데이터 구조의 수신은 오디오 레코딩(146)에 포함된 오디오 콘텐츠의 스트리밍이 아닌, 디지털 어시스턴트 애플리케이션(110)에 의해 오디오 레코딩(146) 자체의 검색 또는 다운로드를 수반하거나 이에 대응할 수 있다. 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)은 액션 데이터 구조를 파싱하여 오디오 레코딩(146)을 추출, 검색 또는 식별할 수 있다. 예를 들어, 오디오 파일이 포함되는 경우, 디지털 어시스턴트 애플리케이션(110)은 HTTP 응답의 본문으로부터 오디오 레코딩(146)에 대응하는 하나 이상의 오디오 파일을 풀링할 수 있다. 삽입된 오디오 콘텐츠 아이템들(150)을 갖는 오디오 레코딩(146)에 대한 주소가 포함되면, 디지털 어시스턴트 애플리케이션(110)은 주소를 사용하여 클라이언트 디바이스(104)(예를 들어, 하드 드라이브 또는 메모리)에 오디오 레코딩(146)을 검색하고 다운로드할 수 있다. 검색 후에, 디지털 어시스턴트 애플리케이션(110)은 클라이언트 디바이스(104)의 스피커(152)를 통해 콘텐츠 스팟(148)에 삽입된 오디오 콘텐츠 아이템(150)을 가진 오디오 레코딩(146)을 제시할 수 있다. 예를 들어, 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)은 스피커(152)를 통해 오디오 레코딩(146)의 다운로드된 오디오 콘텐츠의 재생을 처리하기 위한 미디어 플레이어 컴포넌트를 포함할 수 있다.
(데이터 프로세싱 시스템(102) 또는 클라이언트 디바이스(104) 상의) 디지털 어시스턴트 애플리케이션(110)의 오디오 신호 생성 컴포넌트(118)는 응답을 위한 단어를 식별하기 위해 액션 데이터 구조를 파싱할 수 있다. 오디오 신호 생성 컴포넌트(118)는 입력 오디오 신호에 표시된 요청에 대한 응답에서 응답 문구의 하나 이상의 단어에 기초하여 출력 오디오 파일을 생성할 수 있다. 오디오 신호 생성 컴포넌트(118)는 (예를 들어, 스피커(152)를 통해) 응답 문구의 하나 이상의 단어들의 출력 오디오 파일을 재생할 수 있다. 예를 들어, 오디오 신호 생성 컴포넌트(118)는 단어 "발견된 팟캐스트. 토크쇼 PQR로부터 다운로드 중"을 포함하는 출력 오디오 파일을 생성할 수 있다. 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)은 또한 응답 문구의 하나 이상의 단어를 디스플레이할 수 있다.
데이터 프로세싱 시스템(102) 상에서 실행되는 컨버전 검출 컴포넌트(142)는 삽입된 오디오 콘텐츠 아이템들(150)을 가진 오디오 레코딩(146)의 제공에 이어서 클라이언트 디바이스(104) 상에서 발생하는 하나 이상의 인터렉션 이벤트들을 모니터링할 수 있다. 인터렉션 이벤트는 다른 입력 오디오 신호, 클릭 이벤트, 스크린 터치 이벤트, 또는 재생 개시 이벤트, 재생 일시 정지 이벤트 또는 클라이언트 디바이스(104)를 통해 검출된 것들 중 다른 것을 포함할 수 있다. 컨버전 검출 컴포넌트(142)는 인터렉션 이벤트를 모니터링하기 위해 임의의 수의 기법을 사용할 수 있다. 예를 들어, 컨버전 검출 컴포넌트(142)는 웹 애플리케이션(예를 들어, 웹 브라우저)을 통해 수신된 인터렉션 이벤트에 액세스하기 위해 식별자(136)(예를 들어, 세션 식별자의 형태로)를 사용할 수 있다. 컨버전 검출 컴포넌트(142)는 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)에 대한 애플리케이션 프로그래밍 인터페이스(API)를 통해 검출된 인터렉션 이벤트에 액세스하기 위해 식별자(136)(예를 들어, 디바이스 식별자 또는 계정 식별자의 형태)를 사용할 수 있다. API는 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)에서 검출된 적어도 미리 정의된 인터렉션 이벤트를 검색하기 위한 함수 호출을 정의할 수 있다. 예를 들어, 디지털 어시스턴트 애플리케이션(110)은 재생 개시 및 후속 재생 완료 이벤트의 검출시에 API를 통해 표시를 컨버전 검출 컴포넌트(142)에 전송할 수 있다. 컨버전 검출 컴포넌트(142)는 API를 통해 디지털 어시스턴트 애플리케이션(110)에 의해 오디오 레코딩(146)의 재생 내의 위치에 액세스할 수 있다. 위치는 오디오 레코딩(146) 내의 클라이언트 디바이스(104)를 통해 재생되는 시점을 표시할 수 있다.
모니터링에 의해, 컨버전 검출 컴포넌트(142)는 다수의 클라이언트 디바이스(104)를 통한 오디오 레코딩(146)의 청취 횟수에 대한 카운터를 유지 및 업데이트할 수 있다. 카운터는 오디오 레코딩(146)에 대한 측정된 청취 횟수를 표시할 수 있고, 콘텐츠 스팟 파라미터를 결정하는데 콘텐츠 배치 컴포넌트(140)에 의해 사용될 수 있다. 카운터를 유지하기 위해, 컨버전 검출 컴포넌트(142)는 오디오 레코딩(146)의 재생 내의 위치를 (예를 들어, 디지털 어시스턴트 애플리케이션(110)을 위한 API를 통해) 모니터링할 수 있다. 컨버전 검출 컴포넌트(142)는 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)으로부터 재생 개시 이벤트를 검출하는 것에 응답하여 재생의 모니터링을 시작할 수 있다. 컨버전 검출 컴포넌트(142)는 위치가 미리 정의된 오디오 레코딩(146) 지속 시간과 일치하는지 여부를 결정할 수 있다. 미리 정의된 지속 시간은 오디오 레코딩(146)의 전체 시간 길이 또는 콘텐츠 퍼블리셔(106)에 의해 특정된 바와 같은 오디오 레코딩(146)의 전체 길이의 백분율(예를 들어, 75-95 %)에 대응할 수 있다.
컨버전 검출 컴포넌트(142)는 모니터링된 위치를 미리 정의된 지속 기간과 비교할 수 있다. 비교함으로써, 컨버전 검출 컴포넌트(142)는 오디오 레코딩(146)의 재생이 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)에서 완료되었는지 여부를 결정할 수 있다. 위치가 미리 정의된 지속 시간과 일치한다는 결정에 응답하여, 컨버전 검출 컴포넌트(142)는 오디오 레코딩(146)의 재생이 완료된 것으로 결정할 수 있다. 또한, 컨버전 검출 컴포넌트(142)는 오디오 레코딩(146)의 청취 횟수에 대한 카운터를 증가시킬 수 있다. 컨버전 검출 컴포넌트(142)는 또한 모니터링 위치와 무관하게 카운터를 증가시키기 위해 재생 완료 이벤트의 검출을 사용할 수 있다. 반대로, 위치가 미리 정의된 지속 시간과 일치하지 않는다는 결정에 응답하여, 컨버전 검출 컴포넌트(142)는 재생의 위치를 계속 모니터링할 수 있다.
또한, 컨버전 검출 컴포넌트(142)는 다수의 클라이언트 디바이스에 걸쳐 오디오 레코딩(146)의 콘텐츠 스팟(148)에 삽입된 보충적 오디오 콘텐츠의 청취 횟수에 대한 카운터를 유지할 수 있다. 카운터는 오디오 레코딩(146)의 콘텐츠 스팟(148)에 삽입된 보충적 오디오 콘텐츠(예를 들어, 선택된 오디오 콘텐츠 아이템(150) 또는 다른 오디오 콘텐츠 아이템(150))에 대한 측정된 청취 횟수를 나타낼 수 있다. 카운터는 콘텐츠 스팟 파라미터를 결정하는데 콘텐츠 배치 컴포넌트(140)에 의해 사용될 수 있다. 오디오 콘텐츠 아이템(150)의 청취 횟수에 대한 카운터를 유지하기 위해, 컨버전 검출 컴포넌트(142)는 하나 이상의 검출된 인터렉션 이벤트를 미리 정의된 인터렉션 이벤트 세트와 비교할 수 있다. 인터렉션 이벤트의 세트는 오디오 레코딩(148)의 콘텐츠 스팟(148)에 삽입된 오디오 콘텐츠 아이템(150)에 대해 미리 정의될 수 있다. 인터렉션 이벤트의 세트는 컨버전에 대응하는 것으로 오디오 콘텐츠 아이템(150)에 대해 콘텐츠 제공자(108)에 의해 특정될 수 있고, 컨버전에 예상되는 하나 이상의 이벤트를 포함할 수 있다. 예를 들어, 오디오 콘텐츠 아이템(150)에 대한 인터렉션 이벤트들의 세트는 콘텐츠 제공자(108)의 이름을 포함하는 클라이언트 디바이스(104)의 마이크로폰(154)을 통한 입력 오디오 신호의 획득을 포함할 수 있다.
비교로부터, 컨버전 검출 컴포넌트(142)는 검출된 인터렉션 이벤트가 오디오 콘텐츠 아이템(150)에 대한 미리 정의된 인터렉션 이벤트와 일치하는지 여부를 결정할 수 있다. 검출된 인터렉션 이벤트와 미리 정의된 인터렉션 이벤트 사이의 일치를 결정하는 것에 응답하여, 컨버전 검출 컴포넌트(142)는 오디오 레코딩(146)의 콘텐츠 스팟(148)에 삽입된 보충적 오디오 콘텐츠가 청취되는 것으로 결정할 수 있다. 또한, 컨버전 검출 컴포넌트(142)는 오디오 레코딩(146)의 콘텐츠 스팟(148)에 삽입된 보충적 오디오 콘텐츠의 청취 횟수에 대한 카운터를 증가시킬 수 있다. 컨버전 검출 컴포넌트(142)는 또한 오디오 콘텐츠 아이템(150) 자체의 청취 횟수에 대한 카운터를 유지 및 업데이트할 수 있다. 다른 한편으로, 검출된 인터렉션 이벤트와 미리 정의된 인터렉션 이벤트 사이의 일치가 없음을 결정함에 응답하여, 컨버전 검출 컴포넌트(142)는 콘텐츠 스팟(148)에 삽입된 보충적 오디오 콘텐츠가 컨버전을 초래하지 않았다고 결정할 수 있다. 또한, 컨버전 검출 컴포넌트(142)는 오디오 레코딩(146)의 콘텐츠 스팟(148)에 삽입된 보충적 오디오 콘텐츠의 청취 횟수에 대한 카운터의 값을 유지할 수 있다.
측정된 수에 기초하여, 컨버전 검출 컴포넌트(142)는 오디오 레코딩(146)의 예상 청취 횟수 및 오디오 레코딩(146)의 각 콘텐츠 스팟(148)에 삽입된 보충적 오디오 콘텐츠의 청취 횟수를 계산하거나 결정할 수 있다. 컨버전 검출 컴포넌트(142)는 오디오 레코딩(146)의 측정된 청취 횟수 및 오디오 레코딩(146)의 콘텐츠 스팟(148)에 삽입된 보충적 오디오 콘텐츠의 청취 횟수를 식별하기 위해 카운터에 액세스할 수 있다. 식별에 의해, 컨버전 검출 컴포넌트(142)는 회귀, 재구성, 경향 추정 또는 외삽과 같은 임의의 수의 기법을 적용하여 예상 청취 횟수를 결정할 수 있다. 예를 들어, 컨버전 검출 컴포넌트(142)는 시간에 따른 오디오 레코딩(146)(또는 콘텐츠 스팟(148) 중 하나에서의 보충적 오디오 콘텐츠)의 측정된 청취 횟수를 식별할 수 있다. 컨버전 검출 컴포넌트(142)는 측정된 청취 횟수를 특징화하기 위해 다항식 함수를 구성할 수 있다. 구성된 함수에 따라, 컨버전 검출 컴포넌트(142)는 미래 시점에서 오디오 레코딩(146)의 예상 청취 횟수를 결정할 수 있다.
이러한 방식으로, 오디오 레코딩(146)이 제시된 오디오 콘텐츠 아이템(150)은 초기 요청을 한 클라이언트 디바이스(104)의 디지털 어시스턴트 애플리케이션(110)의 사용자와 더 관련될 수 있다. 관련성이 증가함에 따라, 오디오 콘텐츠 아이템(150)과 관련하여 후속 인터렉션의 가능성이 증가될 수 있다. 또한, 디지털 어시스턴트 애플리케이션(110)에 대한 후속 음성 명령이 이전 음성 명령 또는 오디오 레코딩(146)과 일치하지 않을 가능성이 낮아질 수 있다. 이러한 오디오 콘텐츠 아이템들(150)을 오디오 레코딩(146)에 포함시키는 것은 사용자와 클라이언트 리소스(104) 상의 디지털 어시스턴트 애플리케이션(110) 사이의 사람-인터렉션 인터렉션을 개선하면서, 컴퓨팅 리소스를 보존하고 네트워크 대역폭을 절약할 수 있다.
도 2는 특히, 도 1에 도시된 시스템에서 보충적 오디오 콘텐츠를 주된 오디오 콘텐츠에 삽입하기 위한 예시적 데이터 흐름(200)의 시퀀스 다이어그램을 도시한다. 데이터 흐름(200)은 도 1과 관련하여 위에서 설명된 시스템(100) 또는 도 5와 관련하여 아래에 설명될 시스템(500)에 의해 구현되거나 수행될 수 있다. 데이터 흐름(200)은 데이터 프로세싱 시스템(102), 클라이언트 디바이스(104), 콘텐츠 퍼블리셔(106), 콘텐츠 제공자(108), 스피커(152) 및 마이크로폰(154) 사이에서 패킷(예를 들어, HTTP 메시지) 형태의 통신을 포함할 수 있다.
클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스는 마이크로폰(156)을 통해 오디오 신호(205)를 검출할 수 있다. 디지털 어시스턴트 애플리케이션(110)은 오디오 신호(205)에 대한 초기 프로세싱을 수행하여 데이터 패킷(210)(본 명세서에서 오디오 데이터 패킷으로 지칭됨)을 생성할 수 있다. 데이터 패킷(210)은 입력 오디오 신호(205) 자체 또는 자연어 프로세싱 기법을 사용하여 오디오 신호(205)로부터 식별된 하나 이상의 문자열을 포함할 수 있다. 클라이언트 디바이스(104)는 데이터 프로세싱 시스템(102) 상의 디지털 어시스턴트 애플리케이션(110)의 원격 인스턴스에 데이터 패킷(210)을 전송할 수 있다.
한편, 데이터 프로세싱 시스템(102)은 콘텐츠 퍼블리셔(106)로부터 오디오 파일(215)을 수신할 수 있다. 오디오 파일(215)은 오디오 레코딩(146)의 인스턴스일 수 있고, 콘텐츠 퍼블리셔(106)에 의해 생성된 주된 오디오 콘텐츠를 포함할 수 있다. 오디오 파일(215)은 보충적 오디오 콘텐츠를 삽입할 오디오 파일(215)의 주된 오디오 콘텐츠 내에 시간 윈도우를 정의하는 콘텐츠 스팟 마커와 함께 수신될 수 있다. 수신되면, 데이터 프로세싱 시스템(102)은 오디오 파일(215)을 데이터 저장소(144)에 저장 및 유지할 수 있다.
데이터 프로세싱 시스템(102) 상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스는 클라이언트 디바이스(104)로부터 데이터 패킷(210)을 수신할 수 있다. 수신되면, 디지털 어시스턴트 애플리케이션(110)은 데이터 패킷(210)에 포함된 입력 오디오 신호를 파싱하여 하나 이상의 단어를 식별할 수 있다. 식별을 통해, 디지털 어시스턴트 애플리케이션(110)은 단어가 콘텐츠 퍼블리셔(106) 중 하나로부터 오디오 콘텐츠에 대한 요청에 대응하는 것으로 결정할 수 있다. 결정에 응답하여, 디지털 어시스턴트 애플리케이션(110)은 특정된 콘텐츠 퍼블리셔(106)로부터 오디오 파일(210)을 식별할 수 있다. 또한, 디지털 어시스턴트 애플리케이션(110)은 (예를 들어, 콘텐츠 배치 컴포넌트(140)를 통해) 콘텐츠 배치 프로세스를 호출할 수 있다.
프로세싱을 수행함에 있어서, 데이터 프로세싱 시스템(102)은 요청을 하는 클라이언트 디바이스(104)에 대한 콘텐츠 선택 파라미터를 결정할 수 있고, 오디오 파일(215)의 콘텐츠 스팟에 대한 콘텐츠 스팟 파라미터를 결정할 수 있다. 데이터 프로세싱 시스템(102)은 또한 콘텐츠 배치 파라미터를 위해 페치 요청(220)을 콘텐츠 제공자(108)에 송신할 수 있다. 수신하면, 각 콘텐츠 제공자(108)는 값 파라미터(225)(때때로 콘텐츠 제출 파라미터로 지칭됨)를 생성할 수 있다. 값 파라미터(225)는 대응하는 콘텐츠 제공자(108)에 의해 오디오 파일(215) 내의 콘텐츠 스팟(148)의 평가를 나타낼 수 있다. 일단 생성되면, 각 콘텐츠 제공자(108)는 값 파라미터(225)를 데이터 프로세싱 시스템(102)에 전송할 수 있다. 다양한 파라미터를 사용하여, 데이터 프로세싱 시스템(102)은 콘텐츠 배치 프로세스에 따라 오디오 파일(215)의 콘텐츠 스팟(148)에 포함시킬 하나의 오디오 콘텐츠 아이템(150)을 선택할 수 있다.
오디오 콘텐츠 아이템(150)의 선택에 의해, 데이터 프로세싱 시스템(102) 상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스는 오디오 콘텐츠 아이템(150)을 오디오 파일(215)의 콘텐츠 스팟(148)에 삽입할 수 있다. 디지털 어시스턴트 애플리케이션(110)은 또한 콘텐츠 스팟(148)에 삽입된 오디오 콘텐츠 아이템(150)과 함께 오디오 파일(215)을 패키징하거나 포함하기 위한 액션 데이터 구조(230)를 생성할 수 있다. 생성시, 데이터 프로세싱 시스템(102) 상의 디지털 어시스턴트 애플리케이션(110)은 클라이언트 데이터(104) 상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스로 액션 데이터 구조(230)를 전송할 수 있다. 오디오 파일(215)의 전송은 스트림이 아닌 클라이언트 디바이스(104)로의 다운로드일 수 있다. 결과적으로, 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)은 액션 데이터 구조(230)를 수신 및 파싱하여 삽입된 오디오 콘텐츠 아이템(150)을 갖는 오디오 파일(215)을 식별할 수 있다. 식별에 의해, 디지털 어시스턴트 애플리케이션(110)은 삽입된 오디오 콘텐츠 아이템(250)을 갖는 오디오 파일(215)을 재생을 위해 오디오 신호(235)로 변환할 수 있다. 스피커(152)는 오디오 파일(215)에 포함된 주된 및 보충적 오디오 콘텐츠를 제시하고 재생하기 위해 오디오 신호(235)를 출력할 수 있다.
도 3은 특히 구성(300) 하에서 주된 및 보충적 오디오 콘텐츠를 제시함에 있어서 요청 및 응답 메시지를 갖는 예시적 클라이언트 디바이스(104)를 도시한다. 구성(300)에서, 클라이언트 디바이스(104)에서 실행되는 디지털 어시스턴트 애플리케이션(110)의 인스턴스는 마이크로폰(154)을 통해 입력 오디오 신호를 수신할 수 있다. NLP 컴포넌트(116)는 자연어 프로세싱 기법을 사용하여 입력 오디오 신호에서 하나 이상의 단어를 인식할 수 있다. 디지털 어시스턴트 애플리케이션(110)은 자연어 프로세싱 기법의 출력을 텍스트 콘텐츠 아이템(305)으로서 디스플레이할 수 있다. 텍스트 콘텐츠 아이템(305)은 마이크로폰(154)을 통해 획득된 입력 오디오 신호로부터 파싱된 단어 "토크쇼 A로부터 팟캐스트 다운로드"를 포함할 수 있다. NLP 컴포넌트(116)는 또한 자연어 프로세싱 기법을 사용하여 입력 오디오 신호로부터 파싱된 단어가 오디오 콘텐츠에 대한 요청에 대응한다는 것을 인식할 수 있다. NLP 컴포넌트(116)는 요청과 연관된 콘텐츠 퍼블리셔(106)(예를 들어, "토크쇼 A")를 식별할 수 있다. 디지털 어시스턴트 애플리케이션(110)은 요청의 수행 결과를 텍스트 콘텐츠 아이템(310)과 함께 디스플레이할 수 있다. 텍스트 콘텐츠 아이템(310)은 단어 "토크쇼 A로부터의 최신 팟캐스트"를 포함할 수 있고, 미디어 플레이어 인터페이스(315)를 포함할 수 있다. 미디어 플레이어 인터페이스(315)는 예를 들어, 도시된 바와 같이, 일시 정지 버튼, 재생 버튼 및 진행 바를 포함할 수 있다.
입력 오디오 신호에 표시된 바와 같이 요청을 이행함에 있어서, NLP 컴포넌트(116)는 데이터 저장소(144)로부터 콘텐츠 퍼블리셔(106)와 연관된 오디오 레코딩(146) 중 하나를 식별할 수 있다. 오디오 레코딩(146)은 주된 오디오 콘텐츠(320) 및 콘텐츠 스팟(148)을 정의하는 적어도 하나의 콘텐츠 스팟 마커를 포함할 수 있다. 콘텐츠 스팟(148)은 보충적 오디오 콘텐츠(325)를 삽입하기 위한 시간 윈도우를 정의할 수 있다. 보충적 오디오 콘텐츠(325)를 삽입하기 위해, 콘텐츠 배치 컴포넌트(140)는 클라이언트 디바이스(104)에 대한 콘텐츠 선택 파라미터 및 콘텐츠 스팟(148)에 대한 콘텐츠 스팟 파라미터를 결정할 수 있다. 또한, 콘텐츠 배치 컴포넌트(140)는 후보 오디오 콘텐츠 아이템(150)과 연관된 다양한 콘텐츠 제공자(108)로부터 콘텐츠 제출 파라미터를 수집할 수 있다. 콘텐츠 배치 컴포넌트(140)는 콘텐츠 스팟(148)에 삽입할 오디오 콘텐츠 아이템(150) 중 하나를 선택하기 위해 파라미터 세트를 사용하여 콘텐츠 배치 프로세스를 실행할 수 있다. 일단 삽입되면, 데이터 프로세싱 시스템(102)은 클라이언트 디바이스(104)로 다운로드하고 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)을 통해 재생하기 위한 오디오 콘텐츠 아이템(150)을 오디오 레코딩(146)에 제공할 수 있다. 미디어 플레이어 인터페이스(315) 상의 재생 버튼과의 인터렉션을 수신하면, 디지털 어시스턴트 애플리케이션(110)은 오디오 콘텐츠 아이템(150)을 가진 오디오 레코딩(146)을 재생할 수 있다.
도 4는 다른 것들 중에서, 보충적 오디오 콘텐츠를 디지털 어시스턴트 애플리케이션을 통해 주된 오디오 콘텐츠에 삽입하기 위한 예시적 방법(400)의 흐름도를 도시한다. 방법(500)은 도 1-3과 관련하여 위에서 설명된 시스템(100) 또는 도 5와 관련하여 아래에 설명될 시스템(500)에 의해 구현되거나 실행될 수 있다. 방법(400)은 입력 오디오 신호를 파싱하는 단계(405)를 포함할 수 있다. 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스는 마이크로폰(154)을 통해 획득된 입력 오디오 신호를 수신할 수 있다. 디지털 어시스턴트 애플리케이션(110)은 초기 프로세싱을 수행하고, 입력 오디오 신호를 오디오 데이터 패킷으로 패키징하여 데이터 프로세싱 시스템(102)에 송신할 수 있다. 데이터 프로세싱 시스템(102) 상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스는 클라이언트 디바이스(104)로부터 오디오 데이터 패킷을 수신할 수 있다. NLP 컴포넌트(116)는 오디오 데이터 패킷을 파싱하여 입력 오디오 신호를 식별할 수 있다. 프로세싱하기 위해, NLP 컴포넌트(116)는 자연어 프로세싱을 사용하여, 입력 오디오 신호에서 하나 이상의 단어를 식별하고, 입력 오디오 신호가 인식된 단어에 기초하여 오디오 콘텐츠에 대한 요청에 대응한다고 결정할 수 있다.
방법(400)은 오디오 레코딩(146)을 식별하는 단계를 포함할 수 있다(410). 입력 오디오 신호가 오디오 콘텐츠에 대한 요청에 대응한다는 결정에 응답하여, NLP 컴포넌트(116)는 요청과 연관된 콘텐츠 제공자(108)를 식별할 수 있다. 식별을 통해, NLP 컴포넌트(116)는 데이터 저장소(144)에 액세스하여 요청에 표시된 콘텐츠 퍼블리셔(106)에 속하는 오디오 레코딩(146)을 식별할 수 있다. 데이터 저장소는 레코드 인덱서 컴포넌트(138)에 의해 유지될 수 있고, 다양한 콘텐츠 퍼블리셔(106)로부터의 오디오 레코딩(146)을 포함할 수 있다. 오디오 레코딩(146)은 주된 오디오 콘텐츠 및 보충적 오디오 콘텐츠의 삽입을 위한 콘텐츠 스팟 마커에 의해 정의된 적어도 하나의 콘텐츠 스팟(148)을 포함할 수 있다.
방법(400)은 콘텐츠 선택 파라미터를 식별하는 단계(415)를 포함할 수 있다. 데이터 프로세싱 시스템(102) 상의 콘텐츠 배치 컴포넌트(140)는 입력 오디오 신호가 콘텐츠에 대한 요청에 대응한다는 결정에 응답하여, 클라이언트 디바이스(104)에 대한 콘텐츠 스팟 파라미터를 결정할 수 있다. 콘텐츠 배치 컴포넌트(140)는 요청을 한 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)과 연관된 식별자(136)(예를 들어, 디바이스 식별자, 계정 식별자 또는 세션 또는 쿠키 식별자)를 식별할 수 있다. 콘텐츠 배치 컴포넌트(140)는 특히 디바이스 속성, 애플리케이션 속성 또는 특성 특징과 같은 오디오 데이터 패킷과 연관된 데이터를 식별할 수 있다. 콘텐츠 배치 컴포넌트(140)는 식별자(136) 및 연관된 데이터를 콘텐츠 선택 파라미터로서 사용할 수 있다.
방법(400)은 콘텐츠 스팟 파라미터를 결정하는 단계(420)를 포함할 수 있다. 콘텐츠 스팟(148) 중 하나에 대한 콘텐츠 스팟 파라미터를 결정하기 위해, 콘텐츠 배치 컴포넌트(140)는 식별된 오디오 레코딩(146)의 청취 횟수를 식별할 수 있다. 콘텐츠 배치 컴포넌트(140)는 또한 오디오 레코딩(146)의 콘텐츠 스팟(148)에 삽입된 보충적 오디오 콘텐츠의 청취 횟수를 식별할 수 있다. 각 청취 횟수는 카운터를 사용하여 측정하거나 외삽법을 사용하여 추정하거나 기계 학습 모델을 사용하여 예측할 수 있다. 일단 식별되면, 콘텐츠 배치 컴포넌트(140)는 청취 횟수에 기초하여 콘텐츠 스팟 파라미터를 계산하거나 결정할 수 있다.
방법(400)은 오디오 콘텐츠 아이템(150)을 선택하는 단계를 포함할 수 있다(425). 콘텐츠 선택 파라미터 및 콘텐츠 스팟 파라미터를 사용하여, 콘텐츠 배치 컴포넌트(140)는 오디오 레코딩(146)의 콘텐츠 스팟(148)에 삽입할 오디오 콘텐츠 아이템(150) 중 하나를 선택할 수 있다. 콘텐츠 배치 컴포넌트(140)는 또한 콘텐츠 배치 프로세스를 수행하여 오디오 콘텐츠 아이템(150)을 선택할 수 있다. 프로세스를 실행할 때, 콘텐츠 배치 컴포넌트(140)는 후보 오디오 콘텐츠 아이템들(150) 중 하나와 연관된 각 콘텐츠 제공자(108)로부터 콘텐츠 제출 파라미터를 페치할 수 있다. 콘텐츠 선택 파라미터 및 콘텐츠 스팟 파라미터에 더하여, 콘텐츠 배치 컴포넌트(140)는 삽입을 위해 오디오 콘텐츠 아이템(150)을 선택할 때 콘텐츠 제출 파라미터를 사용할 수 있다.
방법(400)은 오디오 콘텐츠 아이템(150)을 오디오 레코딩(146)에 삽입하는 단계를 포함할 수 있다(430). 디지털 어시스턴트 애플리케이션(110)의 다이렉트 액션 핸들러 컴포넌트(120)는 선택된 오디오 콘텐츠 아이템(150)을 오디오 레코딩(146)의 콘텐츠 스팟(148)에 삽입할 수 있다. 삽입하기 위해, 다이렉트 액션 핸들러 컴포넌트(120)는 오디오 레코딩(146)에 대한 콘텐츠 스팟 마커에 의해 정의된 콘텐츠 스팟(148)을 식별할 수 있다. 식별되면, 다이렉트 액션 핸들러 컴포넌트(120)는 선택된 오디오 콘텐츠 아이템(150)을 오디오 레코딩(146)의 콘텐츠 스팟(148)에 오버레이하거나 삽입할 수 있다. 다이렉트 액션 핸들러 컴포넌트(120)는 또한 오디오 콘텐츠 아이템(150)을 오디오 레코딩(146)에 삽입하는 것을 용이하게 하기 위해 추가적 신호 프로세싱 기법을 수행할 수 있다.
방법(400)은 액션 데이터 구조를 전송하는 단계(435)를 포함할 수 있다. 다이렉트 액션 핸들러 컴포넌트(120)는 삽입된 오디오 콘텐츠 아이템(150)을 가진 오디오 레코딩(146)을 포함하도록 액션 데이터 구조를 생성할 수 있다. 액션 데이터 구조의 생성은 HTTP 응답 본문의 일부로 포함된 액션 데이터 구조를 가진 HTTP(HyperText Transfer Protocol)에 따를 수 있다. 일단 생성되면, 다이렉트 액션 핸들러 컴포넌트(120)는 액션 데이터 구조를 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스로 송신하거나 제공할 수 있다. 액션 데이터 구조를 제공함에 있어서, 다이렉트 액션 핸들러 컴포넌트(120)는 스트리밍이 아닌, 다운로드로서 오디오 레코딩(146)에 삽입된 오디오 콘텐츠 아이템(150)을 제공할 수 있다. 수신하면, 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(110)의 인스턴스는 삽입된 오디오 콘텐츠 아이템(150)을 가진 오디오 레코딩(146)의 재생을 시작할 수 있다.
방법(400)은 재생 및 인터렉션을 모니터링하는 단계를 포함할 수 있다(440). 데이터 프로세싱 시스템(102) 상의 컨버전 검출 컴포넌트(142)는 액션 데이터 구조의 전송에 이어 인터렉션 및 재생을 모니터링할 수 있다. 컨버전 검출 컴포넌트(142)는 세션 쿠키의 사용 또는 디지털 어시스턴트 애플리케이션(110)을 위한 애플리케이션 프로그래밍 인터페이스를 통해 클라이언트 디바이스(104)에 액세스하는 것과 같이, 모니터링하기 위해 임의의 수의 기법을 사용할 수 있다. 검출된 인터렉션 및 재생을 사용하여, 컨버전 검출 컴포넌트(142)는 오디오 레코딩(146)에 대한 청취 횟수에 대한 카운터를 유지 및 업데이트할 수 있다. 컨버전 검출 컴포넌트(142)는 오디오 레코딩(146)의 콘텐츠 스팟(148)에 삽입된 보충적 오디오 콘텐츠에 대한 청취 횟수에 대한 카운터를 유지 및 업데이트할 수 있다.
도 5은 예시적 컴퓨터 시스템(500)의 블록도이다. 컴퓨터 시스템 또는 컴퓨팅 디바이스(500)는 시스템(100) 또는 데이터 프로세싱 시스템(102)과 같은 그 컴포넌트들을 포함하거나 이들을 구현하는데 사용될 수 있다. 컴퓨팅 시스템(500)은 정보를 통신하기 위한 버스(505) 또는 다른 통신 컴포넌트 및 정보를 프로세싱하기 위해 버스(505)에 연결된 프로세서(510) 또는 프로세싱 회로를 포함한다. 컴퓨팅 시스템(500)은 또한 정보를 프로세싱하기 위해 버스에 연결된 하나 이상의 프로세서들(510) 또는 프로세싱 회로들을 포함할 수 있다. 컴퓨팅 시스템(500)은 또한 정보 및 프로세서(510)에 의해 실행될 명령어들을 저장하기 위해 버스(505)에 연결된 랜덤 액세스 메모리(RAM) 또는 다른 동적 저장 디바이스와 같은 메인 메모리(515)를 포함한다. 메인 메모리(515)는 데이터 저장소이거나 데이터 저장소(124 또는 144)를 포함할 수 있다. 메인 메모리(515)는 또한 프로세서(510)에 의한 명령어들의 실행 동안 위치 정보, 임시 변수 또는 다른 중간 정보를 저장하기 위해 사용될 수 있다. 컴퓨팅 시스템(500)은 프로세서(510)를 위한 정적 정보 및 명령어들을 저장하기 위해 버스(505)에 연결된 ROM(read-only memory)(520) 또는 다른 정적 저장 디바이스를 더 포함할 수 있다. 솔리드 스테이트 디바이스(SSD), 자기 디스크 또는 광 디스크와 같은 저장 디바이스(525)는 정보 및 명령어들을 영구적으로 저장하기 위해 버스(505)에 연결될 수 있다. 저장 디바이스(525)는 데이터 저장소를 포함하거나 데이터 저장소(124 또는 144)의 일부일 수 있다.
컴퓨팅 시스템(500)은 버스(505)를 통해, 사용자에게 정보를 디스플레이하기 위한 액정 디스플레이 또는 액티브 매트릭스 디스플레이와 같은 디스플레이(535)에 연결될 수 있다. 정보 및 명령 선택을 프로세서(510)와 통신하기 위해 영숫자 및 다른 키를 포함하는 키보드와 같은 입력 디바이스(530)가 버스(505)에 연결될 수 있다. 입력 디바이스(530)는 터치 스크린 디스플레이(535)를 포함할 수 있다. 입력 디바이스(530)는 또한 방향 정보 및 명령 선택을 프로세서(510)와 통신하고 디스플레이(535) 상의 커서 움직임을 제어하기 위한 마우스, 트랙볼 또는 커서 방향 키와 같은 커서 제어를 포함할 수 있다. 디스플레이(535)는 예를 들면, 데이터 프로세싱 시스템(102), 클라이언트 디바이스(104) 또는 도 1의 다른 컴포넌트의 일부일 수 있다.
본 명세서에 기술된 프로세스, 시스템 및 방법은 프로세서(510)가 메인 메모리(515)에 포함된 명령어들의 배열을 실행하는 것에 응답하여 컴퓨팅 시스템(500)에 의해 구현될 수 있다. 이러한 명령어들은 저장 디바이스(525)와 같은 다른 컴퓨터 판독 가능 매체로부터 메인 메모리(515)로 판독될 수 있다. 메인 메모리(515)에 포함된 명령어들의 배열의 실행은 컴퓨팅 시스템(500)으로 하여금 본 명세서에 기술된 예시적 프로세스들을 수행하게 한다. 멀티-프로세싱 배열에서 하나 이상의 프로세서들은 또한 메인 메모리(515)에 포함된 명령어들을 실행하기 위해 이용될 수 있다. 본 명세서에 기술된 시스템 및 방법과 함께 소프트웨어 명령어들 대신에 또는 소프트웨어 명령어들과 조합하여 유선 회로가 사용될 수 있다. 본 명세서에 기술된 시스템 및 방법은 하드웨어 회로 및 소프트웨어의 임의의 특정 조합으로 한정되지 않는다.
예시적 컴퓨팅 시스템이 도 5에 설명되었지만. 본 명세서에 기술된 동작들을 포함하는 본 발명은 본 명세서에 개시된 구조들 및 그들의 구조적 균등물들 또는 그들 중 하나 이상의 조합들을 포함하는 디지털 전자회로 또는 컴퓨터 소프트웨어 하드웨어에서 구현될 수 있다.
본 명세서에서 논의된 시스템들이 사용자들에 관한 개인 정보를 수집하거나 또는 개인 정보를 사용하는 경우들에 있어서, 사용자들에게 프로그램들 또는 구성들이 개인 정보 예를 들면, 사용자의 소셜 네트워크, 소셜 액션들 또는 활동들, 사용자의 선호들 또는 사용자의 위치에 관한 정보를 수집할 것인지 여부를 제어할, 사용자와 더 관련된 콘텐츠 서버 또는 기타 데이터 프로세싱 시스템으로부터의 콘텐츠를 수신할지 또는 어떻게 수신할지 제어할 기회가 제공될 수 있다. 추가로, 특정 데이터는 그것이 저장되거나 사용되기 전에 하나 이상의 다양한 방식들로 익명화되어, 파라미터들을 생성하는 경우 개인적으로 식별가능한 정보는 제거되도록 한다. 예를 들면, 사용자의 신원은 사용자에 관한 개인적으로 식별가능한 정보가 결정될 수 없도록 익명화되거나 또는 사용자의 지리적 위치는 위치 정보가 획득된 곳에서 일반화되어(시, 우편번호 또는 주 수준으로), 사용자의 특정한 위치가 결정될 수 없도록 한다. 따라서, 사용자는 그 또는 그녀에 관한 정보가 어떻게 수집되는지 그리고 콘텐츠 서버에 의해 사용되는지에 관한 제어를 가질 수 있다.
본 발명과 본 명세서에 기술된 동작들은 본 발명에 개시된 구조들 및 그들의 구조적 균등물들 또는 그들 중 하나 이상의 조합들을 포함하는 디지털 전자회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있다. 본 명세서에 기술된 본 발명은 하나 이상의 컴퓨터 프로그램들 예를 들어, 데이터 프로세싱 장치에 의해 실행 또는 데이터 프로세싱 장치의 동작을 제어하기 위한 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 회로들로서 구현될 수 있다. 대안적으로 또는 추가로, 프로그램 명령어들은 데이터 프로세싱 장치에 의해 실행하기 위한 적절한 수신기 장치에 전송하기 위한 정보를 인코딩하기 위해 생성된 인공적으로 생성된 전파된 신호 즉, 기계-생성 전기, 광학 또는 전자기적 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 저장 디바이스, 컴퓨터 판독가능 저장 기판, 랜덤 또는 직렬 엑세스 메모리 어레이 또는 디바이스 또는 그들 중 하나 이상의 조합이거나 그에 포함될 수 있다. 컴퓨터 저장 매체는 전파된 신호가 아니지만, 컴퓨터 저장 매체는 인공적으로 생성된 전파된 신호에 인코딩된 컴퓨터 프로그램 명령어들의 소스 또는 목적지일 수 있다. 또한, 컴퓨터 저장 매체는 하나 이상의 별개의 컴포넌트들 또는 매체(예를 들면, 다수의 CD들, 디스크들, 또는 다른 저장 디바이스들)이거나 또는 그에 포함될 수 있다. 본 명세서에 기술된 동작들은 하나 이상의 컴퓨터 판독가능 저장 디바이스들에 저장된 또는 다른 소스들로부터 수신된 데이터에서 데이터 프로세싱 장치에 의해 수행되는 동작들로서 구현될 수 있다.
용어 "데이터 프로세싱 시스템", "컴퓨팅 디바이스", "컴포넌트" 또는 "데이터 프로세싱 장치"는 예시로서 프로그래머블 프로세서, 컴퓨터, 시스템 온 칩 또는 앞서 언급된 것들 중 다수의 것들 또는 조합들을 포함하는 데이터를 프로세싱하기 위한 다양한 장치, 디바이스들 및 기계들을 포함한다. 상기 장치는 특수 목적 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)을 포함할 수 있다. 또한, 장치는 하드웨어 이외에 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임(cross-platform runtime) 실행 환경, 가상 머신 또는 그들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스들, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 컴퓨팅 모델 인프라를 실현할 수 있다. 시스템(100)의 컴포넌트들은 하나 이상의 데이터 프로세싱 장치, 시스템, 컴퓨팅 디바이스 또는 프로세서를 포함하거나 공유할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 앱, 스크립트 또는 코드로도 알려져 있음)은 컴파일된 또는 인터프리트된 언어들, 선언적 또는 절차적 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 객체로서 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하는 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 대응할 수 있다. 컴퓨터 프로그램은 다른 프로그램들이나 데이터, 예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트들을 가지는 파일의 부분에, 문제되는 프로그램 전용 단일의 파일에 또는 다수의 조정된 파일들, 예를 들어, 하나 이상의 모듈들, 서브프로그램 또는 코드의 일부를 저장하는 파일들에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 사이트에 위치되어 있거나 다수의 사이트들에 걸쳐서 분산되어 있고 통신 네트워크에 의해 상호연결된 다수의 컴퓨터들에서 실행되도록 배포될 수 있다.
본 명세서에 기술된 프로세스들 및 논리 흐름들은 입력 데이터를 동작하고 출력을 생성함으로써 액션들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들(예: 데이터 프로세싱 시스템(102)의 컴포넌트들)을 실행하는 하나 이상의 프로그래머블 프로세서들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 또한 FPGA 또는 ASIC와 같은 특수 목적 논리 회로에 의해 수행될 수 있고, 장치는 또한 특수 목적 논리 회로로서 구현될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 디바이스들은 예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스들과 같은 반도체 메모리 디바이스들; 예를 들어, 내부 하드 디스크들 또는 이동식 디스크들과 같은 자기 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 그 안에 통합될 수 있다.
본 명세서에서 기술된 발명은 예를 들어 데이터 서버와 같은 백엔드 컴포넌트, 어플리케이션 서버와 같은 미들웨어 컴포넌트 또는 그래픽 사용자 인터페이스를 가지는 사용자 컴퓨터 또는 사용자가 본 명세서에 기술된 본 발명의 구현예와 인터렉션할 수 있는 웹 브라우저와 같은 프론트엔드 컴포넌트 또는 하나 이상의 상기 백엔드, 미들웨어 또는 프론트엔드 컴포넌트들의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호연결될 수 있다. 통신 네트워크들의 예는 근거리 통신망("LAN") 및 광역 통신망("WAN"), 인터-네트워크(예를 들어, 인터넷) 및 피어투피어 네트워크(예를 들어, 애드혹 피어투피어 네트워크)를 포함한다.
시스템(100) 또는 시스템(500)과 같은 컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 사용자와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크(예: 네트워크(112)를 통해 인터렉션한다. 사용자와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 사용자-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다. 일부 구현예에서, 서버는(예를 들어, 사용자 디바이스와 인터렉션하는 사용자에게 데이터를 디스플레이하고 사용자 입력을 수신하기 위해) 사용자 디바이스에 데이터(예를 들어, 콘텐츠 아이템을 표현하는 데이터 패킷들)를 전송한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 인터렉션의 결과)는 서버에서, 클라이언트 디바이스로부터 수신될 수 있다(예를 들어, 클라이언트 디바이스(104)로부터 데이터 프로세싱 시스템(102)에 의해 수신).
동작들이 특정한 순서로 도면에 도시되었지만, 상기 동작들은 도시된 특정한 순서로 또는 시계열적 순서로 수행되어야 함을 요구하는 것이 아니며, 모든 도시된 동작들이 수행되어야만 하는 것은 아니다. 본 명세서에 기술된 액션들은 다른 순서로 수행될 수 있다.
다양한 시스템 컴포넌트들의 분리는 모든 구현예들에서의 분리를 필요로 하지 않으며, 기술된 프로그램 컴포넌트들은 단일 하드웨어 또는 소프트웨어 제품에 포함될 수 있다. 예를 들어, NLP 컴포넌트(116) 및 다이렉트 액션 핸들러 컴포넌트(120)는 단일 컴포넌트, 앱 또는 프로그램, 또는 하나 이상의 프로세싱 회로를 갖는 논리 디바이스이거나 또는 데이터 프로세싱 시스템(102)의 하나 이상의 서버의 일부일 수 있다.
일부 예시적 구현예들을 설명하였지만, 전술한 예는 예시적인 것이며 제한적인 것은 아니며 예시로서 제시되었다. 특히, 본 명세서에 제시된 많은 예들이 방법 동작들 또는 시스템 엘리먼트들의 특정 조합을 포함하지만, 그러한 동작들 및 엘리먼트들은 동일한 목적을 달성하기 위해 다른 방식으로 결합될 수 있다. 하나의 구현예와 관련하여 논의된 동작, 엘리먼트 및 구성들은 다른 구현예들에서 유사한 역할로부터 배제되지 않는다.
본 명세서에서 사용된 문구 및 용어는 설명의 목적을 위한 것이며 제한적인 것으로 간주되어서는 안된다. "포함(including)" "포함(comprising)" "포함(having)" "포함(containing)" "포함(involving)" "포함(characterized by)" "포함(characterized in that)" 및 본 명세서에서 이들의 변형들은 열거된 아이템들, 그 균등물 및 추가 아이템들뿐만 아니라 배타적으로 열거된 아이템들로 구성되는 대안적 구현예들을 포함하는 것을 의미한다. 일 구현예에서, 본 명세서에 기술된 시스템 및 방법은 설명된 엘리먼트들, 동작들 또는 컴포넌트들 중 하나, 하나 이상의 조합 또는 전부로 구성된다.
단수형으로 본 명세서에서 언급된 시스템 및 방법의 구현 또는 엘리먼트에 관한 참조는 이들 엘리먼트들 복수형을 포함하는 구현예들을 포함할 수 있고, 복수형으로 본 명세서에서 언급된 임의의 구현예 또는 엘리먼트에 대한 임의의 참조는 단수형 엘리먼트를 포함하는 구현예들을 포함할 수 있다. 단수 또는 복수 형태의 참조는 현재 개시된 시스템 또는 방법, 그들의 컴포넌트들, 동작 또는 엘리먼트를 단수 또는 복수 구성으로 제한하려는 것이 아니다. 임의의 정보, 동작 또는 엘리먼트에 기초한 임의의 동작 또는 엘리먼트에 대한 참조는 해당 동작 또는 엘리먼트가 적어도 부분적으로 임의의 정보, 동작 또는 엘리먼트에 기초하는 구현예를 포함할 수 있다.
본 명세서에 개시된 임의의 구현예는 임의의 다른 구현예 또는 실시예와 결합될 수 있으며, "구현예", "일부 구현예", "일 구현예" 등은 반드시 상호 배타적이지 않고, 구현예와 관련하여 기술된 특정한 구성, 구조 또는 특성이 적어도 하나의 구현예 또는 실시예에 포함될 수 있음을 나타낸다. 본 명세서에 사용된 용어들은 반드시 모두 동일한 구현예를 지칭하는 것은 아니다. 임의의 구현예는 본 명세서에 개시된 양태들 및 구현예들과 일관된 방식으로 임의의 다른 구현예와 포괄적으로 또는 배타적으로 결합될 수 있다.
"또는"에 대한 참조는 "또는"을 사용하여 기술된 임의의 용어가 기술된 용어들 중 하나, 하나 이상 및 전부를 나타낼 수 있도록 포괄적인 것으로 해석될 수 있다. 결합 용어들의 리스트 중 적어도 하나에 대한 참조는 하나의, 하나 이상의, 및 모든 설명된 용어들 중 어느 하나를 나타내는 포괄적인 또는으로 해석될 수 있다. 예를 들어, "A 및 B 중 적어도 하나"에 대한 참조는 A 및 B 뿐만 아니라 A와 B 둘 모두를 포함할 수 있다. "포함하는" 또는 다른 개방 용어와 함께 사용되는 이러한 참조는 추가적 아이템들을 포함할 수 있다.
도면, 상세한 설명 또는 청구범위의 기술적 구성에 참조 부호가 있는 경우, 상기 참조 부호는 도면, 상세한 설명 및 청구 범위의 명료성을 증가시키기 위해 포함되었다. 따라서, 참조 부호들 또는 그것들의 부재는 임의의 청구항 엘리먼트들의 범위에 대해 어떠한 제한 효과도 가지지 않는다.
본 명세서에 기술된 시스템 및 방법은 그 특성을 벗어나지 않고 다른 특정 형태로 구체화될 수 있다. 전술한 구현예들은 기술된 시스템 및 방법을 제한하는 것이라기 보다는 예시적인 것이다. 따라서, 본 명세서에 기술된 시스템 및 방법의 범위는 상술한 설명보다는 첨부된 청구범위에 의해 표시되며, 청구범위의 의미 및 범위 내에서의 변경들도 그 안에 포함된다.

Claims (20)

  1. 디지털 어시스턴트 애플리케이션을 통해 보충적 오디오 콘텐츠를 주된 오디오 콘텐츠에 삽입하는 시스템으로서,
    하나 이상의 프로세서들을 갖는 데이터 프로세싱 시스템에서 실행되는 레코드 인덱서 컴포넌트, 상기 레코드 인덱서 컴포넌트는 콘텐츠 퍼블리셔의 오디오 레코딩 및 상기 오디오 레코딩의 제시 중에 보충적 오디오 콘텐츠를 삽입할 시간을 정의하는 콘텐츠 스팟을 특정하기 위한 상기 콘텐츠 퍼블리셔에 의해 설정된 콘텐츠 스팟 마커를 데이터베이스에 유지하며;
    상기 데이터 프로세싱 시스템에서 실행되는 자연어 프로세서 컴포넌트, 상기 자연어 프로세서 컴포넌트는:
    클라이언트 디바이스의 센서에 의해 검출된 입력 오디오 신호를 포함하는 오디오 데이터 패킷을 수신하고;
    상기 입력 오디오 신호가 상기 콘텐츠 퍼블리셔로부터의 상기 오디오 레코딩에 대한 요청에 대응한다고 결정하기 위해 상기 오디오 데이터 패킷으로부터 상기 입력 오디오 신호를 파싱하고; 그리고
    상기 입력 오디오 신호로부터 결정된 상기 요청에 기초하여, 상기 데이터베이스로부터 상기 콘텐츠 퍼블리셔의 오디오 레코딩을 식별하며;
    상기 데이터 프로세싱 시스템에서 실행되는 콘텐츠 배치 컴포넌트, 상기 콘텐츠 배치 컴포넌트는:
    상기 입력 오디오 신호가 상기 오디오 레코딩에 대한 요청에 대응한다는 결정에 응답하여, 상기 클라이언트 디바이스와 연관된 식별자를 콘텐츠 선택 파라미터로서 식별하고;
    상기 요청과 연관된 상기 오디오 레코딩에 포함된 상기 콘텐츠 스팟에 대한 콘텐츠 스팟 파라미터를 결정하고, 상기 콘텐츠 스팟 파라미터는 상기 콘텐츠 스팟을 평가하는데 사용되며, 상기 오디오 레코딩 또는 상기 콘텐츠 스팟에 삽입된 보충적 오디오 콘텐츠의 측정되거나 추정된 뷰의 수에 비례하며; 그리고
    상기 오디오 레코딩의 상기 콘텐츠 스팟에 대해, 상기 콘텐츠 선택 파라미터, 상기 콘텐츠 스팟 파라미터 및 복수의 오디오 콘텐츠 아이템들 각각에 대한 콘텐츠 제출 파라미터에 기초하여 복수의 오디오 콘텐츠 아이템들로부터 콘텐츠 제공자의 오디오 콘텐츠 아이템을 선택하며, 상기 콘텐츠 제출 파라미터는 상기 콘텐츠 제공자에 의해 상기 오디오 레코딩의 상기 콘텐츠 스팟의 평가를 표시하며; 및
    상기 데이터 프로세싱 시스템에서 실행되는 액션 핸들러 컴포넌트를 포함하며, 상기 액션 핸들러 컴포넌트는:
    상기 오디오 콘텐츠 아이템을 상기 콘텐츠 스팟 마커에 의해 특정된 상기 오디오 레코딩의 콘텐츠 스팟에 삽입하고;
    상기 콘텐츠 스팟 마커에 의해 정의된 시간에 오디오 콘텐츠 아이템이 삽입된 상기 오디오 레코딩을 포함하는 액션 데이터 구조를 생성하고; 그리고
    상기 콘텐츠 스팟에 상기 오디오 콘텐츠 아이템이 삽입된 상기 오디오 레코딩을 제시하기 위해 상기 액션 데이터 구조를 상기 클라이언트 디바이스에 전송하는, 시스템.
  2. 청구항 1에 있어서, 상기 데이터 프로세싱 시스템에서 실행되는 컨버전 검출 컴포넌트를 포함하며, 상기 컨버전 검출 컴포넌트는:
    상기 액션 데이터 구조의 전송에 후속하여, 상기 오디오 레코딩에 삽입하기 위해 선택된 상기 오디오 콘텐츠 아이템에 대해 미리 정의된 인터렉션과 일치하는, 상기 클라이언트 디바이스를 통해 수행된 인터렉션 이벤트를 모니터링하고; 그리고
    상기 미리 정의된 인터렉션과 일치하는 상기 클라이언트 디바이스로부터의 인터렉션 이벤트의 검출에 응답하여, 상기 오디오 레코딩에 삽입된 상기 오디오 콘텐츠 아이템이 상기 클라이언트 디바이스를 통해 청취되는지를 결정하는, 시스템.
  3. 청구항 1에 있어서, 상기 데이터 프로세싱 시스템에서 실행되는 컨버전 검출 컴포넌트를 포함하며, 상기 컨버전 검출 컴포넌트는:
    상기 액션 데이터 구조의 전송에 후속하여, 상기 식별자, 상기 오디오 레코딩의 재생을 처리하기 위한 상기 애플리케이션을 사용하여 상기 클라이언트 디바이스에서 실행되는 애플리케이션에 대한 애플리케이션 프로그래밍 인터페이스(API)를 통해 상기 오디오 콘텐츠 아이템이 삽입된 상기 오디오 레코딩의 재생 내의 위치를 모니터링하고; 그리고
    상기 API를 통해 검출된 상기 오디오 레코딩의 지속 시간과 일치하는 위치에 응답하여, 상기 오디오 콘텐츠 아이템이 삽입된 상기 오디오 레코딩의 재생이 완료된 것으로 결정하는, 시스템.
  4. 청구항 1에 있어서, 상기 데이터 프로세싱 시스템에서 실행되는 컨버전 검출 컴포넌트를 포함하며, 상기 컨버전 검출 컴포넌트는:
    미리 정의된 인터렉션 이벤트들이 검출되는 클라이언트 디바이스들의 측정된 수에 기초하여, 상기 오디오 레코딩의 재생에 후속하여 복수의 오디오 콘텐츠 아이템 중 하나에 대한 미리 정의된 인터렉션 이벤트들이 검출될 클라이언트 디바이스의 예상 수를 결정하고; 그리고
    상기 오디오 레코딩의 재생의 완료가 검출되는 클라이언트 디바이스들의 측정된 수에 기초하여, 상기 복수의 오디오 콘텐츠 아이템들 중 하나가 삽입된 상기 오디오 레코딩의 재생이 완료될 클라이언트 디바이스의 예상 수를 결정하는, 시스템.
  5. 청구항 1에 있어서, 상기 콘텐츠 배치 컴포넌트는:
    트레이닝 데이터를 사용하여, 상기 복수의 콘텐츠 아이템들 중 하나에 미리 정의된 인터렉션 이벤트들이 상기 복수의 오디오 콘텐츠 아이템들 중 하나가 삽입된 오디오 레코딩의 재생에 후속하여 검출될 것으로 예상되는 클라이언트 디바이스들의 수를 추정하기 위한 예측 모델을 설정하고;
    상기 콘텐츠 스팟에서 상기 오디오 레코딩에 삽입된 상기 복수의 오디오 콘텐츠 아이템들 각각에 대한 미리 정의된 인터렉션과 일치하는 인터렉션 이벤트가 검출된 클라이언트 디바이스들의 예상 수에 대응하는 콘텐츠 스팟 파라미터를 결정하기 위해 상기 콘텐츠 스팟 마커에 의해 특정된 상기 콘텐츠 스팟을 가지는 상기 오디오 레코딩에 상기 예측 모델을 적용하는, 시스템.
  6. 청구항 1에 있어서, 상기 콘텐츠 배치 컴포넌트는:
    상기 콘텐츠 스팟에서 상기 오디오 레코딩에 삽입된 상기 복수의 오디오 콘텐츠 아이템들 각각에 대한 미리 정의된 인터렉션과 일치하는 인터렉션 이벤트가 검출된 클라이언트 디바이스들의 수를 식별하고;
    상기 인터렉션 이벤트가 미리 정의된 인터렉션과 일치하는 클라이언트 디바이스들의 수에 기초하여, 상기 오디오 레코딩에서 정의된 상기 콘텐츠 스팟에 대한 콘텐츠 스팟 파라미터를 결정하는, 시스템.
  7. 청구항 1에 있어서, 상기 콘텐츠 배치 컴포넌트는:
    상기 복수의 오디오 콘텐츠 아이템들 중 하나가 삽입된 오디오 레코딩의 재생이 완료된 클라이언트 디바이스들의 수를 식별하고;
    상기 재생이 완료된 클라이언트 디바이스들의 수에 기초하여, 상기 오디오 레코딩에서 정의된 상기 콘텐츠 스팟에 대한 콘텐츠 스팟 파라미터를 결정하는, 시스템.
  8. 청구항 1에 있어서, 상기 콘텐츠 배치 컴포넌트는:
    상기 입력 오디오 신호가 상기 요청에 대응한다는 결정에 응답하여, 디바이스 식별자, 상기 클라이언트 디바이스의 세션과 연관된 쿠키 식별자, 상기 오디오 레코딩을 재생하기 위해 상기 클라이언트 디바이스에서 실행되는 애플리케이션을 인증하는데 사용되는 계정 식별자 및 상기 계정 식별자와 연관된 특성 특징 중 적어도 하나를 포함하는 복수의 콘텐츠 선택 파라미터들을 식별하고; 그리고
    상기 복수의 콘텐츠 선택 파라미터들을 사용하여 상기 복수의 오디오 콘텐츠 아이템들로부터 오디오 콘텐츠 아이템을 선택하는, 시스템.
  9. 청구항 1에 있어서, 상기 콘텐츠 배치 컴포넌트는 상기 입력 오디오 신호가 상기 요청에 대응한다는 결정에 응답하여, 상기 클라이언트 디바이스에서 실행되는 애플리케이션으로 API(application programming interface)를 통해 상기 클라이언트 디바이스와 연관된 식별자를 식별하는, 시스템.
  10. 청구항 1에 있어서,
    상기 자연어 프로세서 컴포넌트는 상기 클라이언트 디바이스와 연관된 식별자를 포함하는 상기 오디오 데이터 패킷을 수신하며, 상기 식별자는 상기 오디오 레코딩을 검색하기 위해 클라이언트 디바이스를 인증하는데 사용되며; 그리고
    상기 콘텐츠 배치 컴포넌트는 상기 입력 오디오 신호가 요청에 대응한다는 결정에 응답하여, 상기 오디오 데이터 패킷을 파싱하여 상기 식별자를 상기 콘텐츠 선택 파라미터로서 식별하는, 시스템.
  11. 청구항 1에 있어서, 상기 레코드 인덱서 컴포넌트는 제시를 위해 상기 클라이언트 디바이스에 다운로드될 적어도 하나의 오디오 파일에 대응하는 상기 콘텐츠 퍼블리셔의 오디오 레코딩을 상기 데이터베이스에 유지하는, 시스템.
  12. 청구항 1에 있어서, 상기 액션 핸들러 컴포넌트는 상기 콘텐츠 스팟에서 상기 오디오 콘텐츠 아이템이 삽입된 상기 오디오 레코딩을 스트리밍하지 않고 상기 클라이언트 디바이스에 로딩하기 위해 상기 액션 데이터 구조를 전송하는, 시스템.
  13. 디지털 어시스턴트 애플리케이션을 통해 보충적 오디오 콘텐츠를 주된 오디오 콘텐츠에 삽입하는 방법으로서,
    하나 이상의 프로세서들을 갖는 데이터 프로세싱 시스템에 의해, 콘텐츠 퍼블리셔의 오디오 레코딩 및 상기 오디오 레코딩의 제시 중에 보충적 오디오 콘텐츠를 삽입할 시간을 정의하는 콘텐츠 스팟을 특정하기 위한 상기 콘텐츠 퍼블리셔에 의해 설정된 콘텐츠 스팟 마커를 데이터베이스에 유지하는 단계;
    상기 데이터 프로세싱 시스템에 의해, 클라이언트 디바이스의 센서에 의해 검출된 입력 오디오 신호를 포함하는 오디오 데이터 패킷을 수신하는 단계;
    상기 데이터 프로세싱 시스템에 의해, 상기 입력 오디오 신호가 상기 콘텐츠 퍼블리셔로부터의 상기 오디오 레코딩에 대한 요청에 대응한다고 결정하기 위해 상기 오디오 데이터 패킷으로부터 상기 입력 오디오 신호를 파싱하는 단계;
    상기 데이터 프로세싱 시스템에 의해, 상기 입력 오디오 신호로부터 결정된 상기 요청에 기초하여, 상기 데이터베이스로부터 상기 콘텐츠 퍼블리셔의 오디오 레코딩을 식별하는 단계;
    상기 데이터 프로세싱 시스템에 의해, 상기 입력 오디오 신호가 상기 오디오 레코딩에 대한 요청에 대응한다는 결정에 응답하여, 상기 클라이언트 디바이스와 연관된 식별자를 콘텐츠 선택 파라미터로서 식별하는 단계;
    상기 데이터 프로세싱 시스템에 의해, 상기 요청과 연관된 상기 오디오 레코딩에 포함된 상기 콘텐츠 스팟에 대한 콘텐츠 스팟 파라미터를 결정하는 단계, 상기 콘텐츠 스팟 파라미터는 상기 콘텐츠 스팟을 평가하는데 사용되며, 상기 오디오 레코딩 또는 상기 콘텐츠 스팟에 삽입된 보충적 오디오 콘텐츠의 측정되거나 추정된 뷰의 수에 비례하며;
    상기 데이터 프로세싱 시스템에 의해, 상기 오디오 레코딩의 상기 콘텐츠 스팟에 대해, 상기 콘텐츠 선택 파라미터, 상기 콘텐츠 스팟 파라미터 및 복수의 오디오 콘텐츠 아이템들 각각에 대한 콘텐츠 제출 파라미터에 기초하여 복수의 오디오 콘텐츠 아이템들로부터 콘텐츠 제공자의 오디오 콘텐츠 아이템을 선택하는 단계, 상기 콘텐츠 제출 파라미터는 상기 콘텐츠 제공자에 의해 상기 오디오 레코딩의 상기 콘텐츠 스팟의 평가를 표시하며;
    상기 데이터 프로세싱 시스템에 의해, 상기 오디오 콘텐츠 아이템을 상기 콘텐츠 스팟 마커에 의해 특정된 시간을 정의하는 상기 오디오 레코딩의 콘텐츠 스팟에 삽입하는 단계;
    상기 데이터 프로세싱 시스템에 의해, 상기 콘텐츠 스팟 마커에 의해 정의된 시간에 오디오 콘텐츠 아이템이 삽입된 상기 오디오 레코딩을 포함하는 액션 데이터 구조를 생성하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 콘텐츠 스팟에 상기 오디오 콘텐츠 아이템이 삽입된 상기 오디오 레코딩을 제시하기 위해 상기 액션 데이터 구조를 상기 클라이언트 디바이스에 전송하는 단계를 포함하는, 방법.
  14. 청구항 13에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 상기 액션 데이터 구조의 전송에 후속하여, 상기 오디오 레코딩에 삽입하기 위해 선택된 상기 오디오 콘텐츠 아이템에 대해 미리 정의된 인터렉션과 일치하는, 상기 클라이언트 디바이스를 통해 수행된 인터렉션 이벤트를 모니터링하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 미리 정의된 인터렉션과 일치하는 상기 클라이언트 디바이스로부터의 인터렉션 이벤트의 검출에 응답하여, 상기 오디오 레코딩에 삽입된 상기 오디오 콘텐츠 아이템이 상기 클라이언트 디바이스를 통해 청취되는지를 결정하는 단계를 더 포함하는, 방법.
  15. 청구항 13에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 상기 액션 데이터 구조의 전송에 후속하여, 상기 식별자, 상기 오디오 레코딩의 재생을 처리하기 위한 상기 애플리케이션을 사용하여 상기 클라이언트 디바이스에서 실행되는 애플리케이션에 대한 애플리케이션 프로그래밍 인터페이스(API)를 통해 상기 오디오 콘텐츠 아이템이 삽입된 상기 오디오 레코딩의 재생 내의 위치를 모니터링하는 단계; 그리고
    상기 데이터 프로세싱 시스템에 의해, 상기 API를 통해 검출된 상기 오디오 레코딩의 지속 시간과 일치하는 위치에 응답하여, 상기 오디오 콘텐츠 아이템이 삽입된 상기 오디오 레코딩의 재생이 완료된 것으로 결정하는 단계를 포함하는, 방법.
  16. 청구항 13에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 트레이닝 데이터를 사용하여, 상기 복수의 콘텐츠 아이템들 중 하나에 미리 정의된 인터렉션 이벤트들이 상기 복수의 오디오 콘텐츠 아이템들 중 하나가 삽입된 오디오 레코딩의 재생에 후속하여 검출될 것으로 예상되는 클라이언트 디바이스들의 수를 추정하기 위한 예측 모델을 설정하는 단계;
    상기 데이터 프로세싱 시스템에 의해, 상기 콘텐츠 스팟에서 상기 오디오 레코딩에 삽입된 상기 복수의 오디오 콘텐츠 아이템들 각각에 대한 미리 정의된 인터렉션과 일치하는 인터렉션 이벤트가 검출된 클라이언트 디바이스들의 예상 수에 대응하는 콘텐츠 스팟 파라미터를 결정하기 위해 상기 콘텐츠 스팟 마커에 의해 특정된 상기 콘텐츠 스팟을 가지는 상기 오디오 레코딩에 상기 예측 모델을 적용하는 단계를 포함하는, 방법.
  17. 청구항 13에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 상기 콘텐츠 스팟에서 상기 오디오 레코딩에 삽입된 상기 복수의 오디오 콘텐츠 아이템들 각각에 대한 미리 정의된 인터렉션과 일치하는 인터렉션 이벤트가 검출된 클라이언트 디바이스들의 수를 식별하는 단계;
    상기 데이터 프로세싱 시스템에 의해, 상기 인터렉션 이벤트가 미리 정의된 인터렉션과 일치하는 클라이언트 디바이스들의 수에 기초하여, 상기 오디오 레코딩에서 정의된 상기 콘텐츠 스팟에 대한 콘텐츠 스팟 파라미터를 결정하는 단계를 포함하는, 방법.
  18. 청구항 13에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 상기 복수의 오디오 콘텐츠 아이템들 중 하나가 삽입된 오디오 레코딩의 재생이 완료된 클라이언트 디바이스들의 수를 식별하는 단계;
    상기 데이터 프로세싱 시스템에 의해, 상기 재생이 완료된 클라이언트 디바이스들의 수에 기초하여, 상기 오디오 레코딩에서 정의된 상기 콘텐츠 스팟에 대한 콘텐츠 스팟 파라미터를 결정하는 단계를 포함하는, 방법.
  19. 청구항 13에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 상기 입력 오디오 신호가 상기 요청에 대응한다는 결정에 응답하여, 디바이스 식별자, 상기 클라이언트 디바이스의 세션과 연관된 쿠키 식별자, 상기 오디오 레코딩을 재생하기 위해 상기 클라이언트 디바이스에서 실행되는 애플리케이션을 인증하는데 사용되는 계정 식별자 및 상기 계정 식별자와 연관된 특성 특징 중 적어도 하나를 포함하는 복수의 콘텐츠 선택 파라미터들을 식별하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 복수의 콘텐츠 선택 파라미터들을 사용하여 상기 복수의 오디오 콘텐츠 아이템들로부터 오디오 콘텐츠 아이템을 선택하는 단계를 포함하는, 방법.
  20. 청구항 13에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 상기 콘텐츠 스팟에서 상기 오디오 콘텐츠 아이템이 삽입된 상기 오디오 레코딩을 스트리밍하지 않고 상기 클라이언트 디바이스에 로딩하기 위해 상기 액션 데이터 구조를 전송하는 단계를 포함하는, 방법.
KR1020207009966A 2019-11-26 2019-11-26 요청시 오디오 레코딩으로의 보충적 오디오 콘텐츠의 동적 삽입 KR102389776B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2019/063317 WO2021107932A1 (en) 2019-11-26 2019-11-26 Dynamic insertion of supplemental audio content into audio recordings at request time

Publications (2)

Publication Number Publication Date
KR20210068316A KR20210068316A (ko) 2021-06-09
KR102389776B1 true KR102389776B1 (ko) 2022-04-22

Family

ID=69061445

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207009966A KR102389776B1 (ko) 2019-11-26 2019-11-26 요청시 오디오 레코딩으로의 보충적 오디오 콘텐츠의 동적 삽입

Country Status (6)

Country Link
US (1) US11949946B2 (ko)
EP (1) EP3854037B1 (ko)
JP (1) JP7174755B2 (ko)
KR (1) KR102389776B1 (ko)
CN (1) CN113196384A (ko)
WO (1) WO2021107932A1 (ko)

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5625570A (en) * 1994-06-07 1997-04-29 Technicolor Videocassette, Inc. Method and system for inserting individualized audio segments into prerecorded video media
US6223210B1 (en) * 1998-10-14 2001-04-24 Radio Computing Services, Inc. System and method for an automated broadcast system
US6684249B1 (en) * 2000-05-26 2004-01-27 Sonicbox, Inc. Method and system for adding advertisements over streaming audio based upon a user profile over a world wide area network of computers
JP2003244677A (ja) 2002-02-13 2003-08-29 Red Rice Medium Inc 動画配信・再生制御システム及び動画配信・再生制御用コンピュータプログラム
CA2860960C (en) 2005-01-12 2022-04-12 Invidi Technologies Corporation Targeted impression model for broadcast network asset delivery
US8626588B2 (en) * 2005-09-30 2014-01-07 Google Inc. Advertising with audio content
US8676900B2 (en) 2005-10-25 2014-03-18 Sony Computer Entertainment America Llc Asynchronous advertising placement based on metadata
JP2007201742A (ja) * 2006-01-25 2007-08-09 Ntt Software Corp コンテンツ配信システム
US20150154632A1 (en) 2007-04-30 2015-06-04 Deepak Jindal Determining a number of view-through conversions for an online advertising campaign
WO2011049235A1 (ja) 2009-10-23 2011-04-28 シャープ株式会社 コンテンツ配信システム、コンテンツ配信装置、コンテンツ視聴装置、コンテンツ配信方法およびコンテンツ視聴方法
CN102945074B (zh) 2011-10-12 2016-04-27 微软技术许可有限责任公司 根据所捕捉的语音和音频内容来填充列表和任务
US9348554B2 (en) 2011-12-20 2016-05-24 Audible, Inc. Managing playback of supplemental information
US11218434B2 (en) 2013-06-12 2022-01-04 Google Llc Audio data packet status determination
US10504135B2 (en) * 2014-01-23 2019-12-10 Apple Inc. Technologies for inserting dynamic content into podcast episodes
CN106688251B (zh) * 2014-07-31 2019-10-01 杜比实验室特许公司 音频处理系统和方法
US10387488B2 (en) * 2016-12-07 2019-08-20 At7T Intellectual Property I, L.P. User configurable radio
WO2018226247A1 (en) 2017-06-09 2018-12-13 Google Llc Modification of audio-based computer program output
WO2019173577A1 (en) 2018-03-08 2019-09-12 Bose Corporation Audio content engine for audio augmented reality
WO2019173573A1 (en) * 2018-03-08 2019-09-12 Bose Corporation User-interfaces for audio-augmented-reality

Also Published As

Publication number Publication date
JP2022515686A (ja) 2022-02-22
US11949946B2 (en) 2024-04-02
US20220286732A1 (en) 2022-09-08
CN113196384A (zh) 2021-07-30
WO2021107932A1 (en) 2021-06-03
EP3854037A1 (en) 2021-07-28
EP3854037B1 (en) 2024-04-17
KR20210068316A (ko) 2021-06-09
JP7174755B2 (ja) 2022-11-17

Similar Documents

Publication Publication Date Title
US11392970B2 (en) Administering a digital survey over voice-capable devices
US11810557B2 (en) Dynamic and/or context-specific hot words to invoke automated assistant
JP7044916B2 (ja) データ送信のためのフィードバックコントローラ
US11908459B2 (en) Detection of potential exfiltration of audio data from digital assistant applications
US20220027124A1 (en) Verifying operational statuses of agents interfacing with digital assistant applications
US20240004608A1 (en) Automatic adjustment of muted response setting
US11817106B2 (en) Selectively storing, with multiple user accounts and/or to a shared assistant device: speech recognition biasing, NLU biasing, and/or other data
US20200257853A1 (en) Verifying operational statuses of agents interfacing with digital assistant applications
US11567980B2 (en) Determining responsive content for a compound query based on a set of generated sub-queries
KR20200130400A (ko) 네트워크에서 디지컬 컨텐츠에 대한 음성 기반 검색
US8892445B2 (en) Quality of user generated audio content in voice applications
WO2020052135A1 (zh) 音乐推荐的方法、装置、计算装置和存储介质
CN112262371A (zh) 使用地址模板经由数字助理应用调用代理的功能
KR102389776B1 (ko) 요청시 오디오 레코딩으로의 보충적 오디오 콘텐츠의 동적 삽입
KR102471071B1 (ko) 오디오 기반 컴퓨터 프로그램 출력의 수정
US20230169272A1 (en) Communication framework for automated content generation and adaptive delivery
JP2021149664A (ja) 出力装置、出力方法及び出力プログラム
US20240185843A1 (en) Detection of potential exfiltration of audio data from digital assistant applications
JP7262565B2 (ja) ネットワーク化環境における遅延2要素認証
KR20230014680A (ko) 서드파티 디지털 어시스턴트 액션을 위한 비트 벡터 기반 콘텐츠 매칭
KR20240073984A (ko) 관찰된 쿼리 패턴들에 기초하는 타겟 디바이스에 대한 증류
Thiruvengatanadhan et al. Indexing and retrieval of speech using perceptual linear prediction and sonogram

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant