KR20210007786A - 시각 보조 음성 처리 - Google Patents

시각 보조 음성 처리 Download PDF

Info

Publication number
KR20210007786A
KR20210007786A KR1020190121046A KR20190121046A KR20210007786A KR 20210007786 A KR20210007786 A KR 20210007786A KR 1020190121046 A KR1020190121046 A KR 1020190121046A KR 20190121046 A KR20190121046 A KR 20190121046A KR 20210007786 A KR20210007786 A KR 20210007786A
Authority
KR
South Korea
Prior art keywords
audio
visual
data
visual feature
tensor
Prior art date
Application number
KR1020190121046A
Other languages
English (en)
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 사운드하운드, 인코포레이티드
Priority to JP2019231729A priority Critical patent/JP7242520B2/ja
Publication of KR20210007786A publication Critical patent/KR20210007786A/ko
Priority to KR1020210171630A priority patent/KR102380689B1/ko

Links

Images

Classifications

    • 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/24Speech recognition using non-acoustical features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/768Arrangements for image or video recognition or understanding using pattern recognition or machine learning using context analysis, e.g. recognition aided by known co-occurring patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
    • 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/005Language recognition
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • 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/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • 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/16Speech classification or search using artificial neural networks
    • 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
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • 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/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/187Phonemic context, e.g. pronunciation rules, phonotactical constraints or phoneme n-grams
    • 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
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/04Time compression or expansion
    • G10L21/055Time compression or expansion for synchronising with other signals, e.g. video signals
    • 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/27Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
    • G10L25/30Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks
    • 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/02Feature extraction for speech recognition; Selection of recognition unit
    • G10L2015/025Phonemes, fenemes or fenones being the recognition units
    • 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)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Quality & Reliability (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

음성 처리 시스템 및 방법이 개시된다. 특정 예들에서, 이미지 데이터는 시각적 특징 텐서를 생성하기 위해 사용되고, 오디오 데이터는 오디오 특징 텐서를 생성하기 위해 사용된다. 시각적 특징 텐서 및 오디오 특징 텐서는 사용자의 발언을 분석하는 데 사용될 수 있는 언어 특징을 결정하도록 언어 모델에 의해 사용된다. 특징 텐서의 생성은 언어 모델과 조인트해서 구성될 수 있다. 시스템은 클라이언트-서버 아키텍처로 제공될 수 있다.

Description

시각 보조 음성 처리{VISION-ASSISTED SPEECH PROCESSING}
본 기술은 음성 처리 분야에 관한 것이다.
최근의 컴퓨팅 기술의 발전으로 인해서, 오랫동안 추구해 온 음성-제어 애플리케이션을 실현할 가능성이 높아졌다. 예를 들어, 효과적인 신경망 아키텍처를 위한 실용적인 프레임워크를 포함해서 통계 모델이 개선됨으로써, 이전의 음성 처리 시스템의 정확도와 신뢰성을 크게 향상시켰다. 이것은 광역 컴퓨터 네트워크의 증가와 결합되었으며, 이는 애플리케이션 프로그래밍 인터페이스를 사용해서 간단하게 액세스될 수 있는 다양한 모듈 서비스를 제공한다. 따라서, 음성은 사용자 인터페이스를 제공하는데 실행 가능한 옵션이 되었다.
음성은 자연스러운 인간 통신 모드로, 음성 제어는, 키보드 및 마우스와 같은 전통적인 사용자 인터페이스나 또는 보다 최근에는 정전식 터치 스크린에 비해 많은 이점을 제공한다. 음성을 사용하여 장치를 제어하면, 사용자는 자동차나 중장비를 안전하게 운전하거나 혹은 음식을 만드는 등, 멀티태스킹을 행할 수 있다. 음성 제어 장치는 가정에서 인기를 얻었으며, 이는 종종, 질문을 하고, 음악을 재생하며, 리마인더를 설정하는 데 사용된다. 음성 제어는 자동차 시스템 설계 분야에서도 활발한 연구 분야이다.
이러한 진보에도 불구하고, 사용자들은 종종, 현재 시스템이 인간 수준의 응답성 및 지능은 결여되어 있다고 보고한다. 공기의 압력 변동을 분석되는(parsed) 명령어로 변환하는 것은 매우 어렵다. 음성 처리는 전형적으로 복잡한 처리 파이프 라인을 포함하는데, 어떤 단계에서든 에러가 발생하면 성공적인 기계 해석을 손상시킬 수 있다. 이러한 문제 중 많은 부분은, 의식적으로 생각하지 않고 대뇌 피질 구조 및 피질 하부 구조를 사용하여 언어를 처리할 수 있는 인간에게는, 즉시 인지되지 않는다. 그러나 현장의 엔지니어는, 인간의 능력과 최첨단 머신 프로세싱 사이의 차이를 빠르게 인식하게 된다.
몇 가지 특허 공보가 이미지로 작업하는 시스템을 개시하고 있다.
미국 8,768,693 B2는 이미지 파일에 하나 이상의 태그를 할당하는 시스템 및 방법을 기술하고 있다. 이미지 파일은, 추가 메타 데이터로서 그 이미지 파일과 연관된 텍스트 태그로 변환되도록 내장된 오디오 성분을 포함할 수 있다.
미국 2009/0060351 A1은 이미지 분류를 위한 시각적 언어 모델링 시스템 및 방법을 기술하고 있다. 이 시스템 및 방법은 다수의 이미지 카테고리에 대응하는 트레이닝 이미지를 "시각적 워드"의 매트릭스로서 모델링한다.
인간 발언을 보다 정확하게 표기하고 분석할 수 있는 음성 처리 시스템 및 방법을 제공하는 것이 바람직하다. 현존하는 장치로 실용적으로 구현될 수 있는 음성 처리 방법을 제공하는 것이 또한 바람직하다. 예를 들어, 대부분의 사용자는 슈퍼 컴퓨터 또는 데이터 센터 처리 리소스에 액세스하지 않고 일상적인 물체에 쉽게 내장될 수 있는 저렴한 장치를 원한다. 자동차는 또한 시스템 통합 및 접속에 있어서 해결 과제가 있다.
본 명세서에서 설명되는 특정한 예시는 음성을 처리하는 방법 및 시스템을 제공한다. 특정한 예시에서 음성을 처리하는데 오디오 데이터와 이미지 데이터를 모두 사용한다. 특정한 예시에서 각각 오디오 데이터 및 이미지 데이터로부터 오디오 특징 및 시각적 특징을 추출한다. 특징은 특징 텐서(feature tensor), 예를 들어 데이터의 핵심적인 측면을 나타내는 수치 배열로서 제공될 수 있다. 특정한 예시에서, 클라이언트 장치에서 오디오 특징 및 시각적 특징이 추출되고 추가 처리를 위해 서버 장치로 전송되는, 클라이언트-서버 아키텍처를 제공한다. 이 오디오 특징 및 시각적 특징은, 예를 들어 서버 장치에서 구현된 언어 모델에 제공된다. 언어 모델은 오디오 데이터와 관련된 발언을 분석하는 데 사용된다. 오디오 특징과 이미지 특징을 모두 사용함으로써, 발언을 분석하는 데 사용되는 언어 모델의 정확도를 향상시킨다. 이 프로세싱 프레임워크는, 저렴한 내장형 음성 어시스턴트로부터 차량 내 음성 제어 시스템에 이르기까지, 다양한 현존하는 장치 내에 구현될 수 있다.
일 측면에서, 음성을 처리하는 클라이언트 장치가 제공된다. 클라이언트 장치는 사용자로부터의 발언을 특징짓는 오디오 데이터를 캡처하는 오디오 캡처 장치와, 사용자의 환경을 특징짓는 이미지 데이터의 프레임을 캡처하는 이미지 캡처 장치를 포함한다. 시각적 특징 추출기는 이미지 캡처 장치로부터 이미지 데이터의 프레임을 수신해서 하나 이상의 시각적 특징 텐서를 생성한다. 시각적 특징 텐서는 이미지 데이터의 프레임보다 작은 정보 컨텐츠를 가지며, 예를 들어 이미지 데이터의 프레임의 압축된 표현을 제공한다. 오디오 특징 추출기는 오디오 캡처 장치로부터 오디오 데이터를 수신해서 하나 이상의 오디오 특징 텐서를 생성한다. 클라이언트 장치의 송신기는 시각적 특징 텐서 및 오디오 특징 텐서를 서버 장치에 전송하며, 서버 장치는 적어도 시각적 특징 텐서 및 오디오 특징 텐서를 언어 모델에 공급하도록 구성되고, 언어 모델은 발언을 분석하는 데 사용할 수 있는 언어 특징을 결정하도록 구성된다. 이 측면에서, 시각적 특징 추출기 및 오디오 특징 추출기는 언어 모델과 함께 조인트해서 구성된다.
상기 측면에 따라서, 클라이언트 장치는, 사용자로부터의 음성 명령어와 같은 발언이 기록되는 환경의 정보가 풍부한 표현을 생성할 수 있다. 조인트 구성으로 인해서, 시각적 특징 텐서는 발언 분석 에러를 감소시키는 방식으로 발언 환경의 시각적 특징을 나타내는 출력을 생성한다. 시각적 특징 텐서는 오디오 입력을 명확하게 하는 데 유용한 시각적 특징의 압축된 표현으로 간주될 수 있다.
다른 측면에 따라서, 음성을 처리하는 서버 장치가 제공된다. 서버 장치는 클라이언트 장치로부터 하나 이상의 시각적 특징 텐서 및 하나 이상의 오디오 특징 텐서를 수신하는 수신기를 포함한다. 클라이언트 장치는 상기 측면의 클라이언트 장치가 될 수 있다. 시각적 특징 텐서는 클라이언트 장치에 의해 캡처된 이미지 데이터의 프레임에 기초해서 클라이언트 장치의 시각적 특징 추출기에 의해 생성되고, 이미지 데이터의 프레임은 클라이언트 장치의 환경을 특징지으며 시각적 특징 텐서보다 큰 정보 컨텐츠를 갖고, 예를 들어, 시각적 특징 텐서는 이미지 데이터의 프레임의 압축된 표현을 제공한다. 오디오 특징 텐서는 사용자의 발언에 후속해서 클라이언트 장치에 의해 캡처된 대응하는 오디오 데이터에 기초해서 클라이언트 장치의 오디오 특징 추출기에 의해 생성된다. 서버 장치는 시각적 특징 텐서 및 오디오 특징 텐서를 수신해서 발언을 분석하는 데 사용할 수 있는 언어 특징을 결정하는 언어 모델을 더 포함하고, 언어 모델은 클라이언트 장치의 시각적 특징 추출기 및 오디오 특징 추출기와 조인트해서 구성된다.
클라이언트 장치에서 오디오 특징 텐서 및 시각적 특징 텐서를 생성함으로써, 서버 장치로 전송되는 발언을 분석하는 데 사용되는 정보의 데이터 크기가 감소될 수 있다. 이러한 방식으로 구성된 클라이언트-서버 모델을 사용함으로써, 클라이언트 장치에서의 처리가 감소될 수 있어서, 차량, 가전 제품 또는 웨어러블 장치와 같은 내장형 장치의 범위를 포함한, 보다 다양한 클라이언트 구현이 가능하다.
일 변형예에서, 시각적 특징 추출기와 오디오 특징 추출기 중 하나 이상은 신경망 아키텍처, 예를 들어, 컨볼루션 신경망 및 리커런트(recurrent) 신경망 중 하나 이상을 포함한다. 한 경우에, 시각적 특징 추출기는 컨볼루션 신경망을 포함할 수 있고 오디오 특징 추출기는 리커런트 신경망을 포함할 수 있다. 이러한 경우에, 조인트 구성은 신경망의 조인트 트레이닝을 포함할 수 있다. 이는 예를 들어, 적절한 트레이닝 데이터의 세트에 대해, 엔드-투-엔드 방식으로 조인트 구성을 수행하는 메커니즘을 제공한다. 이 변형예를 통해서 사운드와 및 비전 모두의 신경망 아키텍처의 최신 기술이 음성 처리 파이프 라인 내에 모듈식으로 구현될 수 있다.
일 변형예에서, 시각적 특징 텐서는 환경에 대한 시각적 정황의 수치 표현을 포함한다. 이 경우, 클라이언트 장치의 송신기는 오디오 특징 텐서와 함께 오디오 데이터를 서버 장치에 전송하도록 구성되고, 서버 장치의 언어 모델은 오디오 데이터에 기초해서 오디오 및 시각적 특징 텐서를 사용해서 언어 특징을 결정하도록 구성된다. 이 변형예에서, 오디오 데이터는 레거시 음성 처리 파이프 라인에 따른 시계열 샘플 또는 주파수 특징을 포함할 수 있다. 시각적 특징 텐서 및/또는 오디오 특징 텐서는 개선된 레거시 음성 처리 파이프 라인으로서 사용될 수 있다. 이들 텐서는 음성 처리 파이프 라인의 언어 모델에 유익한 정보를 주는 발언 환경의 수치 표현을 제공할 수 있으며, 예를 들어 음소의 예측 및/또는 표기된 텍스트와 같은, 언어 모델의 예측을 개선하는 압축된 형태로 추가 정보를 제공할 수 있다.
일 변형예에서, 이미지 데이터는 비디오 데이터를 포함하고, 오디오 데이터는 비디오 데이터와 시간적으로 상관된다. 이 변형예에서, 시각적 특징 추출기 및 오디오 특징 추출기는 비디오 데이터 및 오디오 데이터에 병렬로 적용된다. 이러한 방식으로, 예시는, 예를 들어, 음성 명령어에 대해 인간이 응답하는 것과 같은, 발언에 대한 빠른 응답을 제공하기 위해서, 심지어 저가의 내장형 장치에서도 더 많이 사용되고 있는 멀티 코어 중앙 및/또는 그래픽 처리 장치(CPU 및/또는 GPU)를 이용할 수 있다.
일 변형예에서, 시각적 특징 추출기는, 이미지 데이터의 프레임을 수신하는 제 1 입력 계층 및 제 1 출력 계층을 포함하는 복수의 계층을 포함하는 제 1 컨볼루션 신경망 아키텍처를 포함하고, 제 1 컨볼루션 신경망 아키텍처는 복수의 계층 각각에 대해 트레이닝된 파라미터 세트를 사용하여 파라미터화되고, 트레이닝된 파라미터의 세트는 제 1 출력 계층에 연결된 하나 이상의 추가 분류 계층을 이용한 트레이닝 동작으로부터 도출된다. 일 변형예에서, 시각적 특징 추출기는, 제 2 입력 계층 및 제 2 출력 계층을 포함하는 하나 이상의 계층을 포함하는 제 2 신경망 아키텍처를 또한 포함하고, 제 2 입력 계층은 제 1 컨볼루션 신경망 아키텍처의 제 1 출력 계층에 연결되고, 제 2 출력 계층은 제 1 출력 계층의 차원수보다 작은 차원수(dimensionality)를 갖는다. 이 변형예는 사전 트레이닝된 컨볼루션 신경망(예를 들어, "기성(off-the-shelf)" 시스템)으로부터 시각적 특징 추출기가 구축되는 것을 가능하게 해서, 시각적 특징 트레이닝의 관련성과 안정성을 보장하고, 또한 제 2 신경망 아키텍처가 오디오 처리와 관련된 시각적 특징을 학습하기 위한 정보 보틀넥(information bottleneck)을 구현할 수 있게 한다.
상기 변형예에서, 제 2 신경망 아키텍처는, 트레이닝 동작에서 오디오 특징 추출기 및 언어 모델과 조인트해서 트레이닝되고, 제 1 컨볼루션 신경망 아키텍처에 대한 트레이닝된 파라미터 세트는 트레이닝 동작 동안 고정될 수 있다. 이러한 방식에서, 사전 트레이닝된 컨볼루션 신경망의 파라미터는 소위 치명적인 망각(catastrophic forgetting), 즉 낮은 에러의 매니 폴드를 나타내는 파라미터 값이 트레이닝이 이 매니 폴드로부터 멀어짐에 따라 손실되는 것을 방지하기 위해 고정될 수 있다.
일 변현예에서, 언어 모델에 의해 사용되기 전에 시각적 특징 텐서 및 오디오 특징 텐서에 가중치를 적용하는 주의(attention) 전처리기가 사용된다. 주의 전처리기를 사용함으로써, 학습된 경험에 기초해서 시각적 특징 텐서 및/또는 오디오 특성 텐서의 특정 요소에 가중치를 부여할 수 있다. 이를 통해 성능을 향상시킬 수 있으며, 예를 들어, 오류율을 감소시키고 트레이닝을 향상시킨다. 일 경우에, 이는 특성에 가중치를 부여하기 위한 "사전" 기간을 도입하는 것을 포함할 수 있다.
일 변현예에서, 언어 모델은, 시각적 특징 텐서 및 오디오 특징 텐서를 입력으로서 수신해서 발언의 텍스트 표현을 출력하는 신경망 아키텍처를 포함한다. 신경망 아키텍처는 리커런트 신경망 아키텍처일 수 있다. 이 변형예에서, 발언을 분석하는 데 이용 가능한 텍스트는 언어 모델에 의해 생성될 수 있고, 언어 모델은 오디오 및 표기된 텍스트(예를 들어, 자막)를 갖는 비디오의 데이터 세트에 기초하여 조인트 트레이닝될 수 있다. 따라서 이 변형예는 큰 온라인 데이터 세트를 활용함으로써 음성을 처리할 때 분석 에러를 줄일 수 있다.
일 변형예에서, 오디오 특징 텐서는 환경에 대한 오디오 정황의 표현을 포함하고, 시각적 특징 텐서는 환경에 대한 시각적 정황의 표현을 포함한다. 이 변형예에서, 서버 장치의 수신기는 오디오 특징 텐서에 더해서 오디오 데이터를 수신하도록 구성되고, 언어 모델은, 오디오 데이터로부터 발언을 분석하는 데 사용하기 위해 음소 데이터를 생성하는 음향 모델을 포함하며, 음향 모델은 시각적 특징 텐서 및 오디오 특징 텐서에 기초하여 구성된다. 이 변형예에서, 음향 모델, 예를 들어 시간 및/또는 주파수 데이터로부터 음소의 시퀀스를 표기하는 모델은 시각적 특징 텐서 및 오디오 특징 텐서를 환경의 정황의 표현으로서 제공함으로써 개선될 수 있다. 예를 들어, 이 변형예를 통해서, 예를 들어 확률 및/또는 n-그램(n-grams) 시퀀스를 사용하는 비신경 통계 모델이 개선될 수 있다. 환경의 정황은 음향 모델이 비가 오는 곳이나 대중 교통과 같은 난해한 오디오 환경에서도 정확한 음소의 시퀀스를 명확하게 하는 데 도움이 될 수 있다.
일 변형예에서, 음향 모델은, 음향 모델 구성의 데이터베이스와, 오디오 특징 텐서 및 시각적 특징 텐서의 조인트 세트에 기초해서 데이터베이스로부터 음향 모델 구성을 선택하는 음향 모델 선택기와, 오디오 데이터를 처리하는 음향 모델 인스턴스를 포함하고, 음향 모델 인스턴스는, 음향 모델 선택기에 의해 선택된 음향 모델 구성에 기초해서 인스턴스화되고, 음향 모델 인스턴스는 발언을 분석하는 데 사용하기 위한 음소 데이터를 생성하도록 구성된다. 이 변형예에서, 오디오 특징 텐서 및 시각적 특징 텐서는 예를 들어, 수 비트의 출력을 갖는, 낮은 차원수 표현을 포함하며, 이는 환경에 적합한 음향 모델을 선택하는 데 사용될 수 있다. 이 변형예는 효율적으로 구현될 수 있고, 클라이언트 장치로부터 서버 장치로 전송되는 추가 데이터를 감소시킬 수 있다. 이 변형예는 현존하는 데이터와 함께 사용될 때에도 완전해 질 수 있으며, 예를 들어 아키텍처를 제한함으로써 트레이닝 문제 및 복잡한 에러 모드의 가능성을 감소시킨다.
한 변형예에서, 언어 모델은, 음향 모델에 통신 가능하게 연결되어서 음소 데이터를 수신해서 발언을 나타내는 텍스트 데이터를 생성하는 언어 모델을 더 포함한다. 이 변형예에서, 언어 모델은, 발언을 나타내는 텍스트 데이터를 생성하는 데 사용하기 위한 입력으로서 오디오 특징 텐서 및 시각적 특징 텐서를 수신하도록 구성된다. 이 변형예는 2-단계 또는 2-스테이지 언어 모델을 제공하며, 이는 특정 조건 하에서는 직접적인 특성-텍스트 구현예보다 보다 신뢰할 수 있다.
일 측면에서, 클라이언트 장치에서 음성을 처리하는 방법이 제공된다. 이 방법은 상기 클라이언트 장치 측면과 관련해서 수행될 수 있다. 이 방법은, 클라이언트 장치에서, 사용자로부터 발언을 특징짓는 오디오 데이터를 캡처하는 단계와, 클라이언트 장치에서, 사용자의 환경을 특징짓는 이미지 데이터를 캡처하는 단계와, 클라이언트 장치의 시각적 특징 추출기를 사용해서, 이미지 데이터의 하나 이상의 프레임으로부터 시각적 특징 텐서의 세트를 추출하는 단계 - 이미지 데이터의 프레임은 시각적 특징 텐서의 세트보다 큰 정보 컨텐츠를 갖고, 예를 들어, 시각적 특징 텐서는 이미지 데이터의 프레임의 압축된 표현을 제공함 - 와, 클라이언트 장치의 오디오 특징 추출기를 사용해서, 오디오 데이터로부터 오디오 특징 텐서의 세트를 추출하는 단계와, 클라이언트 장치에서, 시각적 특징 텐서의 세트 및 오디오 특징 텐서의 세트를 전송하는 단계를 포함하고, 서버 장치는 적어도 시각적 특징 텐서 및 오디오 특징 텐서를 언어 모델에 공급하도록 구성되며, 언어 모델은 발언을 분석하는 데 사용할 수 있는 언어 특징의 세트를 결정하도록 구성되고, 시각적 특징 추출기 및 오디오 특징 추출기는 언어 모델과 함께 조인트해서 구성된다.
일 측면에서, 서버 장치에서 음성을 처리하는 방법이 제공된다. 이 방법은, 서버 장치에서, 클라이언트 장치로부터 시각적 특징 텐서의 세트 및 오디오 특징 텐서의 세트를 수신하는 단계를 포함하고, 시각적 특징 텐서는 클라이언트 장치에 의해 캡처된 이미지 데이터의 프레임에 기초해서 클라이언트 장치의 시각적 특징 추출기에 의해 생성되고, 이미지 데이터의 프레임은 클라이언트 장치의 환경을 특징지으며, 시각적 특징 텐서보다 큰 정보 컨텐츠를 갖고, 예를 들어, 시각적 특징 텐서는 이미지 데이터의 프레임의 압축된 표현을 제공한다. 오디오 특징 텐서는 사용자의 발언에 이어서 클라이언트 장치에 의해 캡처된 대응하는 오디오 데이터에 기초해서 클라이언트 장치의 오디오 특징 추출기에 의해 생성된다. 이 방법은 또한, 서버 장치에서 시각적 특징 텐서의 세트 및 오디오 특징 텐서의 세트를 입력으로서 언어 모델에 제공하는 단계 - 언어 모델은 발언을 분석하는 데 사용할 수 있는 언어 특징의 세트를 결정하도록 구성되고, 시각적 특징 추출기 및 오디오 특징 추출기는 언어 모델과 조인트해서 구성됨 - 와, 언어 모델의 출력을 사용해서 발언을 분석하는 단계를 포함한다. 이 방법은 전술한 측면에서 설명된 클라이언트 측 동작에 응답해서 서버 측 방법으로서 수행될 수 있다.
두 측면의 방법은 장치 측면에 대해 상기 설명된 것과 유사한 장점을 제공할 수 있다.
일 변형예에서, 서버 측 방법은, 서버 장치에서, 수신한 시각적 특징 텐서의 세트 및 오디오 특징 텐서의 세트에 기초해서 음향 모델 구성을 선택하는 단계와, 서버 장치에서, 오디오 데이터를 수신하는 단계와, 음향 모델 구성에 따라 구성된 음향 모델을 오디오 데이터에 적용해서 발언에 대응하는 음소 데이터를 결정하는 단계와, 음소 데이터를 사용해서 발언을 분석하는 단계를 포함한다. 예를 들어, 이 변형예는 상기 설명한 우수한 2-층 모델을 가능하게 할 수 있다.
일 변형예에서, 클라이언트 측 방법은, 클라이언트 장치에서, 서버 장치로부터 발언에 대한 응답을 수신하는 단계와, 클라이언트 장치에서, 서버 장치로부터 수신되는 발언에 대한 응답에 기초해서 사용자에게 응답을 제공하는 단계를 포함한다. 예를 들어, 이 발언은 질의와 같은 음성 명령어를 포함할 수 있고 응답은 사용자에게 구술된 질의 응답을 포함할 수 있다. 다른 경우에, 발언은 음성을 포함할 수 있고 응답은 음성의 구술의 표시를 포함할 수 있다. 또 다른 경우에, 발언은 장치를 제어하는 음성 명령어를 포함할 수 있고 응답은 음성 명령어의 실행에 따른 장치의 상태의 표시를 포함할 수 있다.
일 변형예에서, 클라이언트 측 방법은 캡처된 이미지 데이터로부터 도출된 데이터를, 이미지 데이터의 프레임을 수신하는 제 1 입력 계층 및 제 1 출력 계층을 포함하는 복수의 계층을 포함하는 제 1 컨볼루션 신경망 아키텍처에 제공하는 단계와, 제 1 출력 계층의 출력을 제 2 출력 계층을 포함하는 하나 이상의 계층을 포함하는 제 2 신경망 아키텍처에 제공하는 단계를 포함하고, 제 2 출력 계층은 제 1 출력 계층의 차원수보다 작은 차원수를 갖고, 제 2 출력 계층의 출력은 시각적 특징 텐서의 세트를 생성하는 데 사용되는 데 사용된다. 이 변형예는 전술한 바와 같은 이점을 가질 수 있다.
일 측면에서, 음성 처리 시스템을 구성하는 방법이 제공된다. 이 측면에서, 이 방법은 음성 인식 모델을 획득하기 위해서 오디오 특징 추출기와 시각적 특징 추출기를 언어 모델에 통신 가능하게 연결시키는 단계 - 오디오 특징 추출기는 오디오 데이터를 수신하고 오디오 특징 텐서를 출력하도록 구성되고, 시각적 특징 추출기는 이미지 데이터를 수신해서 시각적 특징 텐서를 출력하도록 구성되며, 언어 모델은 오디오 특징 텐서 및 시각적 특징 텐서를 사용해서 언어 특징의 세트를 결정하도록 구성되고, 오디오 특징 추출기와 시각적 특징 추출기 및 언어 모델은 모델 파라미터의 세트 각각에 의해 파라미터화됨 - 와, 시간적으로 상관된 오디오 데이터와 이미지 데이터 및 정답(ground-truth) 언어 특징을 포함하는 트레이닝 데이터를 획득하는 단계와, 음성 인식 모델을 통해 언어 모델의 에러를 역 전파하는(back propagating)하는 것을 포함하여, 각각의 모델 파라미터 세트에 대한 트레이닝된 값을 결정하기 위해 트레이닝 데이터를 사용하여 오디오 특징 추출기 및 시각적 특징 추출기와 언어 모델을 조인트해서 구성하는 단계를 포함한다.
이 측면은 전술한 클라이언트 및 서버 장치를 트레이닝시키는 효율적인 방법을 제공할 수 있다. 오디오 특징 추출기 및 시각적 특징 추출기와 언어 모델을 조인트해서 구성하면, 언어 모델에 의한 예측의 에러가 언어 모델을 통해 오디오 및 시각적 특징 추출기로 "흐르고(flow)", 그 결과 이들 추출기의 파라미터를 에러를 최소화하는 출력 특징으로 이어지는 방식으로 수정한다. 따라서, 오디오 특징 추출기 및 시각적 특징 추출기는 언어 모델의 성능을 향상시키는 특징 표현을 학습한다. 이러한 방식의 엔드-투-엔드 트레이닝은 자동화된 파이프 라인의 일부로서 구성 및 구현이 용이하다.
일 변형예에서, 이 방법은 오디오 특징 추출기 및 시각적 특징 추출기에 대한 트레이닝된 값을 하나 이상의 클라이언트 장치에 통신하는 단계와, 언어 모델에 대한 트레이닝된 값을 하나 이상의 서버 장치에 통신하는 단계와, 트레이닝된 값을 사용해서 하나 이상의 클라이언트 장치 및 하나 이상의 서버 장치를 구성하는 단계를 포함하고, 하나 이상의 클라이언트 장치는 하나 이상의 서버 장치에 의해 처리되는 오디오 특징 텐서 및 시각적 특징 텐서를 생성하는 데 사용하기 위해 트레이닝된 값을 로딩하도록 구성된다. 이러한 방식으로, 이러한 방식으로, 조인트 구성이 중앙 위치에서 수행되고 이후에 파라미터가 분산 시스템의 복수의 장치에 전달될 수 있다.
일 변형예에서, 트레이닝 동안에 언어 모델에 의해 사용되는 오디오 특징 텐서와 시각적 특징 텐서 중 하나 이상은 가중될 수 있다. 특징 텐서 중 하나에 대한 값의 크기가 감소되어서 완전성을 향상시킬 수 있으며, 예를 들어, 오디오 특징 텐서와 시각적 특징 텐서 중 하나 이상을 이용할 수 없는 경우에도 언어 모델이 발언을 분석할 수 있게 했다. 이로써, 시각적 특징 텐서를 이용할 수 없는 경우에는 언어 모델은 오디오 단독 모드로 "대체(fallback)"될 수 있다.
일 변형예에서, 이 방법은 트레이닝된 시각 분류 모델을 획득하는 단계와, 구성된 시각 분류 모델의 하나 이상의 분류 계층을 제거해서 트레이닝된 시각 분류 모델에 대한 새로운 출력 계층을 생성하는 단계와, 하나 이상의 계층을 포함하는 추가 신경망 아키텍처를 새로운 출력 계층에 통신 가능하게 연결해서 시각적 특징 추출기를 획득하는 단계를 더 포함하며, 추가 신경망 아키텍처의 출력 계층의 차원수는 새로운 출력 계층의 차원수보다 작다. 이로써 사전 트레이닝된 모델의 사용을 가능하게 하고, 예를 들어 전술한 바와 같은 이점을 달성할 수 있다.
일 측면에서, 컴퓨터 프로세서에 의해 실행될 때, 머신으로 하여금 전술한 방법 중 하나 이상을 수행하게 하는 명령어를 포함하는 코드가 저장된 비일시적 컴퓨터 판독 가능 매체가 제공된다.
일 측면에서, 음성 처리 장치가 제공되며, 이는 음성 데이터를 분석하는 데 사용할 음소 데이터를 생성하는 음향 모델과, 음향 모델로부터의 음소 데이터를 사용해서 음성 데이터의 표기를 생성하는 언어 모델과, 음향 모델과 언어 모델 중 적어도 하나에 통신 가능하게 연결되어서 음성 데이터가 캡처되는 시각적 환경의 표현을 제공하는 시각적 정황 표시자를 포함하고, 음향 모델 및 언어 모델 중 하나는 시각적 환경의 표현에 기초해서 차등적으로 구성된다.
도 1은 일례에 따른 음성 처리 시스템을 도시한 개략도이다.
도 2는 일례에 따른 음성 처리를 위한 클라이언트 장치를 도시한 개략도이다.
도 3a는 일례에 따른 음성 처리 장비를 포함하는 자동차를 도시한 개략도이다.
도 3b는 일례에 따른 음성 처리 장비를 포함하는 모바일 컴퓨팅 장치를 도시한 개략도이다.
도 4a, 4b 및 4c는 예시에 따른 클라이언트 장치와 서버 장치 사이의 통신을 나타내는 시퀀스도이다.
도 5는 일례에 따른 시각적 특징 추출기를 도시한 개략도이다.
도 6은 일례에 따른 음성 처리 시스템을 도시한 개략도이다.
도 7은, 도 6의 시스템이 트레이닝될 수 있는 방법의 예를 도시한 개략도이다.
도 8은 일례에 따른 음향 모델 선택기를 포함하는 음성 처리 시스템을 도시한 개략도이다.
도 9a는 일례에 따른 클라이언트 장치에서 음성을 처리하는 방법을 도시한 흐름도이다.
도 9b는 일례에 따른 서버 장치에서 음성을 처리하는 방법을 도시한 흐름도이다.
도 10은 일례에 따른 음성 처리 시스템을 구성하는 방법을 도시한 흐름도이다.
도 11은 예시적인 컴퓨팅 장치를 도시한 개략도이다.
도 12는 일례에 따른 음성을 처리하는 시스템을 구성하는 컴퓨팅 장치들의 세트 사이의 통신을 나타내는 시퀀스도이다.
이하에서는, 다양한 관심있는 측면들을 예시하는 본 기술의 다양한 예를 설명한다. 일반적으로, 예들은 설명되는 측면들을 임의로 조합해서 사용할 수 있다.
본 명세서에 개시되는 특정한 예는 시각적 정보를 사용해서 음성 처리를 개선한다. 이들 예는, 우리들의 환경 내에서 확산되고 있는 이미지 캡처 장치를 이용해서 환경의 표현을 인코딩하고, 이것이 음성 처리 파이프 라인 내에서 사용될 수 있다. 이와 같이, 이들 예는, 오디오 처리의 정확성 및 신뢰성을 향상시키는 멀티 모달(multi-modal) 능력으로, 음성 처리 시스템을 확장시키는 것으로 보여질 수 있다.
본 명세서에 개시되는 특정한 예는, 음성 어시스턴트, 휴대 전화, 자동차, 및 웨어러블 장치와 같은 내장형 음성 처리 장치를 포함하는 다양한 장치에서, 개선 사항이 구현될 수 있게 하는 실용적인 클라이언트-서버 구현을 제공한다. 이들 예는 네트워크를 통해 교환되는 데이터의 양은 줄이면서도 개선된 음성 처리 방법이 적용될 수 있는, 멀티 모달 데이터 처리를 위한 프레임워크를 제공한다.
본 기술의 특정 예는 음성 처리 시스템을 위한 시스템 및 방법을 제공하는데 있어서 미국 8,768,693 B2 및 미국 2009/0060351 A1에 비해 이점을 갖는다. 미국 8,768,693 B2는 오디오 데이터를 텍스트로 변환하여 이미지에 태그를 행하는 것에 관한 것으로, 음성 처리를 개선하는데 오디오 데이터 및 이미지 데이터는 사용하지 않다. 미국 2009/0060351 A1은 이미지 분류에 관한 것이다. 이미지를 패치로 분할하는 것을 교시하고 있으며, 이 패치의 특징을 "시각적 워드"라고 한다. 이러한 "시각적 워드"는 언어적인 특징과는 다른 해시 코드의 형태로 볼 수 있다. "시각적 워드"는 이미지를 분류하는 데 사용된다. 미국 2009/0060351 A1은 음성 처리에 유용한 교시는 제공하지 않는다.
클라이언트-서버 아키텍처
도 1은 일례에 따른 클라이언트-서버 아키텍처(100)를 도시한다. 클라이언트-서버 아키텍처(100)는 복수의 클라이언트 장치(110)를 포함하며, 이는 적어도 하나의 네트워크(130)를 통해 서버 장치(120)와 통신한다. 네트워크(130)는 다양한 과학 기술(예를 들어, 이더넷과 같은 유선 기술 및/또는 Wi-Fi-IEEE 802.11 표준 및 셀룰러 통신 기술과 같은 무선 기술)을 사용해서 구현될 수 있는 하나 이상의 로컬 네트워크 및/또는 광역 네트워크를 포함할 수 있다. 특정한 경우에, 네트워크(130)는 인터넷과 같은 하나 이상의 개인 네트워크와 공공 네트워크의 조합을 포함할 수 있다. 클라이언트 장치(110) 및 서버 장치(120)는 다양한 기술 및 통신 경로를 사용해서 네트워크를 통해 통신할 수 있다.
클라이언트 장치(110)는 내장형 컴퓨팅 장치, 예를 들어 비계산(non-computing) 장치에 위치된 전자 회로 내의 프로세싱 리소스를 포함하는 다양한 컴퓨팅 장치를 포함할 수 있다. 도 1에서, 클라이언트 장치(110)는 예를 들어 개인용 컴퓨팅 장치(112), 웨어러블 장치(114), 자동차(116) 및 홈 어시스턴트(118)를 포함한다. 이들 예는 한정의 의미가 아니며, 예를 들어 클라이언트 장치는 대안적으로 냉장고 및 텔레비전, 보안 장비, 데스크탑 및 사무실 컴퓨팅 장치, 카메라 및 로봇 장치와 같은 "스마트" 기기를 포함할 수도 있다. 개인용 컴퓨팅 장치(112)는 셀룰러 통신 장치 및/또는 무선 네트워킹 장치를 포함할 수 있다. 개인용 컴퓨팅 장치(112)는 스마트 폰, 태블릿 또는 랩톱 장치를 포함할 수 있다. 도 1의 웨어러블 장치(114)는 소위 "스마트" 워치로 도시되어 있지만, 대안적으로 헤드 장착형 사용자 인터페이스 장치, 이어피스, 웨어러블 피트니스 트래커, 및 내장형 회로를 가진 "스마트" 의류와 같은 장치를 포함할 수 있다. 자동차(116)는 차량으로 도시되어 있으며, 예를 들어 클라이언트 장치는 차량 제어 시스템 내에 내장될 수도 있지만, 다른 차량 타입 및 형태, 예를 들어 항공 및 해상 차량이 사용될 수도 있다. 차량은 수동으로 제어될 수도 있고 및/또는 자율 기능을 가질 수도 있다(예를 들어, 공중 "드론"). 홈 어시스턴트(118)는 가정에서 사용하는 오디오 장치를 포함할 수 있다. 예시적인 클라이언트 장치의 추가 특성은 이후 단락들에서 보다 상세하게 설명된다.
서버 장치(120)는 하나 이상의 중앙 처리 장치 및/또는 그래픽 처리 장치 및 메모리 리소스를 가진 컴퓨팅 장치를 포함할 수 있다. 도 1에서, 서버 장치(120)는 수신기(122) 및 언어 모델(124)을 포함한다. 수신기(122)는 통신 인터페이스 및 하나 이상의 통신 프로토콜(예를 들어, 다층 통신 스택)의 구현을 포함할 수 있다. 수신기(122)는 네트워크(130)를 통해 클라이언트 장치(110)로부터 데이터를 수신하도록 구성된다. 일 구현예에서, 수신기(122)는 유선 또는 무선 물리 인터페이스 및 사전 정의된 포맷으로 요청을 수신하는 방법을 제공하는 하나 이상의 통신 프로토콜을 포함할 수 있다. 특정한 경우에, 수신기(122)는 인터넷 프로토콜 슈트(Internet Protocol Suite) 상에서 동작하는 애플리케이션 계층 인터페이스를 포함할 수 있다. 이 경우, 애플리케이션 계층 인터페이스는, 하나 이상의 프록시 및/또는 통신(예를 들어, "웹") 서버에 의해 수행되는 경로명 또는 웹 주소에 기초한 라우팅을 이용해서, 서버 장치(120)를 식별하는 특정한 인터넷 프로토콜 주소를 향하는 통신을 수신하도록 구성될 수 있다.
도 1의 서버 장치(120)는 사용자(예를 들어, 클라이언트 장치(110)의 사용자)에 의해 행해진 발언과 관련된 데이터를 하나 이상의 클라이언트 장치(110)로부터 수신하도록 구성된다. 이러한 상황에서, 발언은 음성과 같은 언어 정보를 나타내는, 사용자에 의해 생성된 음성과 관련이 있다. 예를 들어, 발언은 사용자의 후두에서 나오는 음성을 포함할 수 있다. 이 발언은 음성 명령, 예를 들어 사용자가 말하는 요청을 포함할 수 있다. 음성 명령은 예를 들어: 액션을 수행하는 요청(예를 들어, "음악을 재생해", "가열기를 켜", "리마인더를 설정해"); 요청과 관련된 추가 정보(예를 들어, "앨범 XY", "화씨 68도", "화요일 오전 9시"); 표기될 음성(예를 들어, "기록해..." 또는 "사용자 A에게 다음 메시지를 보내..."); 및/또는 정보 요청(예를 들어, "C의 교통량은 어떻습니까?", "오늘 날씨는 어떻습니까?" 또는 "최고의 비건 타코는 어디입니까?")를 포함할 수 있다. 사용자는 사람일 수도 있고 기계일 수도 있다(예를 들어, 후자는 인공 음성을 사용한 기계 사이의 통신을 나타낼 수 있다).
도 1의 예에서, 클라이언트 장치(110)는 사용자로부터의 발언을 특징짓는 오디오 데이터를 캡처하도록 구성된다. 특정한 경우에, 오디오 데이터는 클라이언트 장치 자체에 의해 캡처될 수 있고; 다른 경우에, 다른 장치가 오디오 데이터를 캡처할 수 있다. 예를 들어, 웨어러블 장치(114)를 조작하는 사용자는 웨어러블 장치(114)를 향해 또는 홈 어시스턴트(118)나 다른 오디오 캡처 장치를 포함하는 방을 향해 말할 수 있다. 오디오 데이터는 하나 이상의 오디오 캡처 장치(예를 들어, 하나 이상의 마이크)로부터의 시계열 측정을 포함할 수 있다. 예를 들어, PCM(Pulse Code Modulation) 데이터의 하나 이상의 채널은 사전 정의된 샘플링 레이트(예를 들어, 8kHz 또는 44.1kHz)로 캡처될 수 있으며, 여기서 각 샘플은 사전 정의된 수의 비트(예를 들어, 샘플 당 8, 16 또는 24 비트 - 각 샘플은 정수 또는 부동 소수점 값을 포함함)에 의해 표현된다. 오디오 데이터는 캡처 후에, 예를 들어 하나 이상의 시간 및 주파수 도메인에서 필터링함으로써, 빔 형성 및 노이즈 감소를 적용함으로써 및/또는 필터링 및 정규화에 의해 처리될 수 있다. 한 경우에, 오디오 데이터는, 예를 들어 고속 푸리에 변환(Fast Fourier Transform)을 수행하여 하나 이상의 스펙트로그램 데이터의 하나 이상의 프레임을 생성함으로써, 주파수 영역에서 시간 경과에 따른 측정치로 변환될 수 있다. 특정한 경우에, MFCC(Mel Frequency Cepstral Coefficients)와 같은 하나 이상의 주파수 도메인 특징에 대한 값을 결정하기 위해 필터 뱅크가 적용될 수도 있다. 본 명세서에 기술된 오디오 데이터는, 오디오 프로세싱 파이프라인을 따라 행해진 임의의 측정을 포함할 수 있다.
도 1의 예에서, 캡처된 오디오 데이터는 한 세트의 오디오 특징(140)으로 변환되고, 이는 클라이언트 장치(110) 중 적어도 하나로부터 서버 장치(120)의 수신기(122)로 네트워크를 통해 전송된다. 이들 오디오 특징(140)은 오디오 특징 텐서, 예를 들어 하나 이상의 요소를 가진 하나 이상의 차원수를 갖는 어레이를 포함할 수 있다. 한 경우에, 오디오 특징 텐서는 고정 길이의 1차원 어레이(예를 들어, 벡터) 또는 숫자 값, 예를 들어 어레이의 각 요소에 대한 하나의 값을 포함할 수 있다. 숫자 값은 정수 값(예를 들어, 특정 비트 길이에 의해 설정된 범위 내 - 8비트는 0에서 255의 범위를 제공함) 또는 부동 소수점 값(예를 들어, 32비트 또는 64비트 부동 소수점 값으로 정의됨)을 포함할 수 있다. 부동 소수점 값은, 오디오 특징 텐서에 정규화가 적용되는 경우에, 예를 들어, 값이 0 내지 1 또는 -1 내지 1의 범위에 매핑되는 경우에, 사용될 수 있다. 예를 들어, 오디오 특징의 크기(예를 들어, 비트 또는 바이트 단위)는 원시(raw) 캡처된 오디오 데이터의 크기보다 작을 수 있으며, 특정한 경우에 수십 배 더 작을 수도 있다. 이와 같이, 예를 들어, 데이터 크기 및/또는 데이터 요소의 수로 표현되는 바와 같은, 오디오 특징 텐서의 정보 컨텐츠는 오디오 데이터의 정보 컨텐츠보다 적다. 예를 들어, 44.1kHz의 16 비트 샘플을 가진 1초의 오디오 데이터는 88200 바이트 크기의 데이터를 생성할 수 있지만 32 비트 부동 소수점 값의 256개 요소는 1024 바이트 크기의 데이터를 생성할 수 있다(8 비트 정수 값은 256 바이트의 훨씬 작은 크기를 가짐). 이것은, 예를 들어 시각적 특징 텐서의 크기가 입력으로서 사용되는 이미지 데이터의 대응하는 프레임의 크기보다 작기 때문에, 압축된 표현을 제공하는 것으로 보여질 수 있다. 일반적으로, 시각적 특징 텐서는 여전히, 예를 들어 후속하는 음성 처리에 매우 유익한데, 음성 처리와 관련이 없는 정보는 폐기함으로써 그 크기가 감소되고, 이는 손실 압축의 형태로서 작용한다.
오디오 데이터와 유사한 방식으로, 도 1의 예에서, 클라이언트 장치(110)는 또한 클라이언트 장치의 환경을 특징짓는 이미지 데이터를 캡처하도록 구성된다. 한 경우에, 이미지 데이터는 클라이언트 장치 자체에 의해 캡처될 수 있고; 다른 경우에, 이미지 데이터를 다른 장치가 캡처할 수도 있다. 예를 들어, 웨어러블 장치(114)는 카메라를 포함할 수 있고, 이미지 데이터는 이 카메라로부터 캡처된 이미지를 포함할 수 있다. 다른 경우에, 사용자는 웨어러블 장치(114)와 상호 작용할 수 있고, 오디오 데이터의 캡처는 환경 내의 또 다른 이미지 캡처 장치로부터의 이미지 데이터의 캡처를 트리거할 수 있다. 예를 들어, 사용자는 하나 이상의 인터넷 프로토콜 카메라를 포함하는 가정용 감시 시스템을 가질 수 있고; 이 경우, 사용자가 웨어러블 장치(114)에 음성 명령을 발행하면, 웨어러블 장치(114)는 사용자의 식별된 위치를 커버하는 하나 이상의 인터넷 프로토콜 카메라로부터의 이미지 데이터의 프레임의 캡처를 지시할 수 있다. 한 경우에, 클라이언트 장치(110)는 비디오 캡처 장치를 포함할 수 있는데 여기서 이미지 데이터는 비디오 데이터의 하나 이상의 프레임을 포함하고 및/또는 정지 이미지 캡처 장치를 포함하는데 여기서 이미지 데이터는 정지 이미지의 하나 이상의 프레임을 포함한다. 이미지 데이터는 예를 들어 높이와 폭을 가진 2차원 어레이(예를 들어, 이 어레이의 행 및 열과 등가)를 포함할 수 있다. 한 경우에, 이미지 데이터는 다수의 컬러 채널을 가질 수 있는데, 예를 들어 RGB(Red Green Blue) 각각에 대한 3개의 컬러 채널을 포함할 수 있으며, 여기서 각각의 컬러 채널은 컬러 값의 연관된 2차원 어레이(예를 들어, 어레이 요소 당 8, 16 또는 24 비트)를 갖는다. 컬러 채널은 또한 다양한 이미지 "평면"으로 지칭될 수 있다. 특정한 경우에, 단일 채널만, 예를 들어 명도 채널을 나타내는 단일 채널만 사용될 수도 있다. 애플리케이션에 따라서 다른 색 공간이 사용될 수도 있으며, 예를 들어, 이미지 캡처 장치는 기본적으로 명도 채널 Y(예를 들어, 휘도) 및 2개의 상대 컬러 채널 U 및 V(예를 들어, 2개의 색 성분의 개략 정렬된 청록색 및 적녹색)을 특징짓는 YUV 이미지 데이터의 프레임을 생성할 수 있다. 오디오 데이터와 마찬가지로, 캡처 후에 이미지 데이터의 프레임은 처리될 수 있으며, 예를 들어 하나 이상의 이미지 필터링 동작이 적용될 수 있다.
도 1의 예에서, 캡처된 이미지 데이터는 또한 시각적 특징(150)의 세트로 변환되어서, 클라이언트 장치(110) 중 적어도 하나로부터 서버 장치(120)의 수신기(122)로 네트워크를 거쳐 전송된다. 이들 시각적 특징(150)은 시각적 특징 텐서, 예를 들어 하나 이상의 요소를 가진 하나 이상의 차원수를 갖는 어레이를 포함할 수 있다. 한 경우에, 시각적 특징 텐서는 고정 길이의 1차원 어레이(예를 들어, 벡터) 또는 숫자 값, 예를 들어 어레이의 각 요소에 대한 하나의 값을 포함할 수 있다. 숫자 값은 정수 값(예를 들어, 특정 비트 길이에 의해 설정된 범위 내 - 8비트는 0에서 255의 범위를 제공함) 또는 부동 소수점 값(예를 들어, 32비트 또는 64비트 부동 소수점 값으로 정의됨)을 포함할 수 있다. 부동 소수점 값은, 시각적 특징 텐서에 정규화가 적용되는 경우에, 예를 들어, 값이 0 내지 1 또는 -1 내지 1의 범위에 매핑되는 경우에, 사용될 수 있다. 시각적 특징 텐서는 오디오 특징 텐서와 크기가 같을 수도 있고 크기가 다를 수도 있다. 예를 들어, 오디오 특징 텐서는 32-요소 어레이를 포함하고(여기서 각 요소는 8-비트 값임), 시각 특징 텐서는 256-요소 어레이를 포함할 수도 있다(여기서 각 요소는 8 또는 16-비트 값임). 일반적으로, 시각적 특징 텐서는 이미지 데이터의 대응하는 프레임보다 적은 정보 컨텐츠를 가지며, 예를 들어, 전술한 예를 사용하면, 8비트 값을 가진 길이 256의 시각적 특징 텐서는 8비트 값의 3채널을 가진 640×480 비디오 프레임보다 작다 - 2048비트 대 7372800비트. 정보 컨텐츠는 비트의 형태롤 측정될 수도 있고 또는 엔트로피 측정의 형태로 측정될 수도 있다.
도 1의 예에서, 언어 모델(124)은 수신기(122)로부터 오디오 특징(140) 및 시각적 특징(150)을 수신하고, 이를 사용해서 사용자의 발언을 분석한다. 한 경우에, 언어 모델(124)은, 발언을 분석하는데 사용될 수 있는 언어 특징 세트를 결정하도록 구성된다. 언어 모델은 또한 음성 처리 모듈이라고 지칭될 수도 있다. 예를 들어, 언어 특징은 음소, 단어 부분(예를 들어, 어간 또는 초어(protoword)) 및 단어(구두점으로 매핑된 쉼(pause)과 같은 텍스트 특징을 포함함)를 포함할 수 있다. 한 경우에, 언어 특징은 발언을 나타내는 텍스트 출력을 생성하는데 사용될 수 있다. 이 경우, 텍스트 출력은 그대로 사용될 수도 있고 혹은 사전 정의된 명령어의 세트 및/또는 명령어 데이터에 매핑될 수도 있다. 다른 경우에, 언어 특징은 사전 정의된 명령어의 세트 및/또는 명령어 데이터에 직접 매핑될 수 있다. 언어 모델(124)은 오디오 특징(140) 및 시각적 특징(150)에 기초하여 단독으로 동작할 수도 있고 혹은, 이들 오디오 데이터 및 추가적인 오디오 데이터 예를 들어, 오디오 특징(140)을 생성하기 전에 클라이언트 장치에서 오디오 처리 파이프 라인의 출력을 나타내는 오디오 데이터에 기초하여 동작할 수도 있다.
오디오 특징(140)에 더해서 시각적 특징(150)을 사용함으로써, 언어 모델(124)의 성능을 향상시킬 수 있다. 시각적 특징(150)은 오디오 특징(140)에 의해 표현되는 오디오 정황과는 다른 발언에 대한 시각적 정황을 제공할 수 있다. 예를 들어, 시각적 특징(140)의 세트는 사용자가 차량 내에 있다는 것을 나타내는 표현 또는 사용자가 야외의 공원에 있다는 것을 나타내는 표현을 제공할 수 있다. 가능한 한 언어 모델(124)에 의해 순위화된(예를 들어, 임계치보다 큰 확률을 갖는) 복수의 후보 음소 시퀀스가 있다면, "자동차"의 경우, 언어 모델(124)은 주위 도로 및 자동차 소음의 존재와 일치하는 음소 시퀀스를 선택할 수 있고, "야외"의 경우, 언어 모델(124)은 바람 소리의 존재와 일치하는 음소 시퀀스를 선택할 수 있다. 각각의 경우에, 시각적 특징(150)에 기초하여 상이한 음소 시퀀스가 선택될 수도 있다. 다른 예로서, 음소 시퀀스 "AY SKR IY M"은, 시각적 특징(150)의 세트가 밝은 외부 환경, 슈퍼마켓 또는 아이스크림 콘을 나타내는 경우에는 "ice cream" 텍스트(또는 "아이스크림"의 지식 베이스 객체 표현)로 매핑될 수 있지만, 시각적 특징(150)의 세트가 차고나 창고와 같은 어둡거나 어두운 환경 또는 거미 등의 동물을 나타내는 경우에는 "I scream" 텍스트(또는 사용자 및 "scream" 동작의 지식 베이스 객체 표현)로 매핑될 수 있다.
본 명세서에 개시된 예에서, 관련 오디오 특징 및/또는 시각적 특징(140, 150)은, 언어 모델(124)과 함께 시각적 특징 추출기 및 오디오 특징 추출기를 조인트 구성함으로써 생성될 수 있다. 예를 들어, 언어 모델(124)은 시각적 특징 추출기 및 오디오 특징 추출기의 세트와 함께 조인트 트레이닝될 수도 있고 및/또는 이들 추출기와 파라미터를 공유할 수도 있다. 조인트 구성의 세부 사항은 이하에서 설명된다.
클라이언트 장치 예
도 2는 클라이언트 장치(210)의 예(200)를 도시한다. 클라이언트 장치(210)는 도 1에 도시된 클라이언트 장치(110) 중 하나의 버전을 포함할 수 있다. 클라이언트 장치(210)는 본 설명과 관련된 특정한 특징만을 도시한다는 점에 유의해야 하며; 클라이언트 장치(210)는 설명을 명료하게 하기 위해서 여기에 도시되지 않은 추가 특징들을 포함할 수도 있다. 예를 들어, 클라이언트 장치는 디스플레이 스크린이 없는 이어피스와 같이, 스크린이 없는 것일 수 있다. 일부 클라이언트 장치는 자동 판매기와 같이 고정되어 있을 수도 있다. 일부 클라이언트 장치는 자동차 또는 로봇 장치와 같이 이동 가능할 수도 있다. 일부 클라이언트 장치는 휴대폰과 같은 휴대형일 수도 있다. 일부 클라이언트 장치는 키보드 또는 터치 스크린과 같이 수동 인터페이스를 포함할 수도 있다. 나아가, 클라이언트 장치(210)는 컴포넌트의 하나의 가능한 구성을 제공하며, 여기서 예를 들어 분산 기반의 다른 구성도 가능하다.
도 2의 클라이언트 장치(210)는 오디오 캡처 장치(220) 및 이미지 캡처 장치(230)를 포함한다. 오디오 캡처 장치(220)는 클라이언트 장치(210) 외부 환경으로부터 사운드(225)를 나타내는 오디오 데이터를 캡처하도록 구성된다. 전술한 바와 같이, 오디오 캡처 장치(220)는, 오디오 샘플을 미리 정의된 샘플링 레이트로 기록하도록 구성된 마이크 또는 마이크의 어레이를 포함할 수 있다. 특정한 경우에, 샘플링 레이트, 비트 해상도, 채널 수 및 샘플 포맷과 같은 오디오 캡처 장치(220)의 측면들이 구성될 수 있다. 오디오 데이터는 펄스 코드 변조될 수 있다. 오디오 캡처 장치(220)는 또한 오디오 전처리 컴포넌트 및/또는 필터링 컴포넌트(예를 들어, 콘트라스트 조정, 노이즈 제거 등)를 포함할 수 있다. 본 명세서에 기술된 컴포넌트 및 방법은 조인트 구성 스테이지에 의해 광범위한 오디오 포맷을 수용할 수 있다.
이미지 캡처 장치(230)는 클라이언트 장치(210) 외부의 시각적 환경(235)을 특징짓는 이미지 데이터의 프레임을 캡처하도록 구성된다. 상술된 바와 같이, 이미지 캡처 장치(230)는, 이미지 데이터의 프레임을 명령어에 따라서 또는 사전 정의된 샘플링 속도로 캡처하도록 구성된 하나 이상의 스틸 카메라 또는 비디오 카메라를 포함할 수 있다. 한 경우에, 미리 정의된 샘플링 레이트는, 풀 해상도 비디오에 대한 프레임 레이트보다 작을 수 있으며, 예를 들어, 비디오 스트림은 초당 30 프레임으로 캡처될 수 있지만, 이미지 캡처 장치의 샘플링 레이트는 이 속도로 캡처될 수도 있고 초당 1 프레임과 같은 낮은 속도로 캡처될 수도 있다. 예시에서, 이미지 데이터의 하나 이상의 프레임(예를 들어, 총 또는 초당)은 추가의 음성 처리에 사용하기 위해 시각적 환경(235)의 상태를 캡처하기에 충분할 수 있다. 이미지 캡처 장치(230)는 하나 이상의 컬러 채널(예를 들어, 전술한 바와 같은 RGB 또는 YUV)을 가진 이미지 데이터의 하나 이상의 프레임을 캡처할 수 있다. 특정 경우에, 프레임 레이트, 프레임 크기 및 해상도, 컬러 채널의 수 및 샘플 포맷과 같은 이미지 캡처 장치(230)의 측면들이 구성 가능할 수 있다. 특정한 경우에 이미지 데이터의 프레임은 다운 샘플링될 수 있으며, 예를 들어 3840×2160의 "4K" 해상도로 비디오를 캡처하는 비디오 캡처 장치는 640×480 이하로 다운 샘플링될 수 있다. 대안적으로, 저비용 내장형 장치의 경우, 이미지 데이터의 프레임을 320×240 이하로 캡처하는 저해상도 이미지 캡처 장치가 사용될 수도 있다. 특정한 경우에는, 심지어 저렴한 저해상도 이미지 캡처 장치도 음성 처리를 개선하기에 충분한 시각적 정보를 제공할 수 있다. 이전과 같이, 이미지 캡처 장치(230)는 또한 이미지 전처리 컴포넌트 및/또는 필터링 컴포넌트(예를 들어, 콘트라스트 조정, 노이즈 제거, 컬러 조정, 자르기 등)를 포함할 수 있다. 본 명세서에 기술된 컴포넌트 및 방법은 조인트 구성 스테이지에 의해 광범위한 오디오 포맷을 수용할 수 있다.
특정한 경우에, 이미지 캡처 장치는 넓은 시야의 시각적 환경을 캡처하기 위해 하나 이상의 렌즈를 포함할 수 있다. 예를 들어, 렌즈는 최대 180도의 시야를 캡처할 수 있는 광각 또는 어안 렌즈를 포함할 수 있다. 특정한 경우에, 이미지 데이터는 360도 파노라마 카메라(예를 들어, 차량의 상부 등에 장착된 경우)로부터 캡처될 수 있다. 캡처된 이미지 데이터는 인간에 의해 해석될 필요가 없을 수 있으며, 결합된 음성 처리 시스템의 조인트 구성은, 광범위한 이미지 포맷으로부터 관련 특징 표현을 "학습"할 것이다.
도 2의 클라이언트 장치(210)는 또한 오디오 특징 추출기(240) 및 시각적 특징 추출기(250)를 포함한다. 오디오 특징 추출기(240)는 오디오 캡처 장치(220)에 통신 가능하게 연결되고, 시각적 특징 추출기(250)는 이미지 캡처 장치(230)에 통신 가능하게 결합된다.
오디오 특징 추출기(240)는 오디오 캡처 장치(220)로부터 오디오 데이터를 수신하도록 구성된다. 이는 원시 오디오 샘플 및/또는 사전 처리된 오디오 데이터의 세트를 포함할 수 있다. 한 경우에, 오디오 특징 추출기(240)는 초기 텐서 형태, 예를 들어 오디오 요소의 고정 길이 어레이로 오디오 데이터를 수신하도록 구성된다. 오디오 데이터는 시간 샘플 당 공급되는 크기를 갖는 펄스 코드 변조된 오디오 데이터일 수 있다. 오디오 데이터는 하나의 시간 샘플의 데이터(예를 들어, 시퀀스로서 제공됨) 및/또는 시간 샘플의 세트의 데이터(예를 들어, 사전 정의된 시간 윈도우에 대응하는 데이터의 프레임으로서 수신됨)를 포함할 수 있다. 예를 들어, 44.1kHz의 샘플링 레이트에서, 1초 윈도우 동안의 하나의 채널의 오디오 데이터의 어레이는 44100 샘플, 예를 들어 44100개의 8, 16 또는 24 비트 값을 포함할 수 있다. 오디오 데이터는 t초의 기간을 포함하는 샘플의 롤링 세트로 제공될 수 있다. 한 경우에, 오디오 특징 추출기(240)는, 예를 들어 하나 이상의 시점의 주파수 범위에 대한 진폭(및/또는 위상) 값의 세트로서 주파수 데이터의 프레임으로서 오디오 데이터를 수신하도록 구성될 수 있다.
오디오 특징 추출기(240)는 오디오 캡처 장치(240)로부터 오디오 데이터를 수신해서 하나 이상의 오디오 특징 텐서(260)를 생성하도록 구성된다. 전술한 바와 같이, 오디오 특징 텐서는 하나 이상의 차원수를 갖는 값의 어레이를 포함할 수 있다. 한 경우에, 오디오 특징 텐서는 오디오 데이터에서 검출된 오디오 특징을 나타내는 숫자 값의 벡터를 포함할 수 있다. 예를 들어, 오디오 특징 텐서는, 8 또는 16 비트 정수 값의 또는 32 비트 또는 64 비트 부동 소수점 값의 16, 32, 64 또는 256 요소 어레이를 포함할 수 있다. 한 경우에, 오디오 특징 텐서(260)는 하나 이상의 이진 값 또는 정수 값의 어레이를 포함할 수 있다. 이 경우, 시각적 특징 텐서(270)의 요소는 특정 오디오 환경(예를 들어, "실내/실외", "차량내/차량외", "구름/비구름", "시끄러움/조용함" 등)을 식별하는 플래그 또는 분류를 나타낼 수 있다. 다른 경우에, 오디오 특징 텐서(260)는 2개 이상의 차원수를 포함할 수 있으며, 예를 들어, 제 2 차원수는 일련의 시간 샘플을 나타낼 수 있고 및/또는 각 차원수는 상이한 특징 세트를 나타낼 수 있다. 예를 들어, 발언에 대해 생성된 오디오 특징 텐서(260)는 t1 시간 샘플 동안의 s1 특징 세트로부터의 f1개의 특징을 나타내는 f1×s1×t1 텐서(예를 들어, A[i, j, k])를 포함할 수 있다.
시각 특징 추출기(250)는 이미지 캡처 장치(230)로부터 이미지 데이터를 수신하도록 구성된다. 이는 원시 이미지 또는 비디오 프레임 세트 및/또는 사전 처리된 이미지 데이터를 포함할 수 있다. 한 경우에, 시각 특징 추출기(250)는 예를 들어 하나 이상의 y×x×c 이미지 평면의 시퀀스 및/또는 이러한 평면의 추가적인 시간 차원수에 걸친 볼륨(예를 들어 y×x×c×t)과 같은 초기 텐서 형태로 이미지 데이터를 수신하도록 구성되며, 여기서 y는 행의 수(예를 들어, 이미지 높이)이고, x는 열의 수(예를 들어, 이미지 폭)이며, c는 컬러 채널의 수(예를 들어, RGB의 경우 3)이다. 특정한 경우에, 이미지 데이터는 예를 들어 시간 t에서의 이미지 데이터가 오디오 샘플에 동시에 대응하도록 오디오 데이터와 동기화될 수도 있고; 다른 경우에, 이 이미지 데이터는 오디오 샘플과 시간적으로 상관되지 않을 수도 있으며, 예를 들어, 발언 직전, 도중 및/또는 이후에 캡처된 이미지 데이터일 수 있다.
시각적 특징 추출기(250)는 이미지 캡처 장치(230)로부터 이미지 데이터를 수신해서 하나 이상의 시각적 특징 텐서(270)를 생성하도록 구성된다. 전술한 바와 같이, 시각적 특징 텐서는 하나 이상의 차원수를 갖는 값의 어레이를 포함할 수 있다. 시각적 특징 텐서(270)는 오디오 특징 텐서(260)와 유사한 형태를 가질 수 있으며; 특정한 경우에, 시각적 특징 텐서(270)는 크기, 차원수 및 데이터 타입 중 적어도 하나가 오디오 특징 텐서(260)와 상이할 수 있다. 한 경우에, 시각적 특징 텐서는 이미지 데이터에서 검출된 시각적 특징을 나타내는 숫자 값의 벡터를 포함할 수 있다. 예를 들어, 시각적 특징 텐서는, 8 또는 16 비트 정수 값의 또는 32 비트 또는 64 비트 부동 소수점 값의 16, 32, 64 또는 256 요소 어레이를 포함할 수 있다. 한 경우에, 시각적 특징 텐서(270)는 하나 이상의 이진 값 또는 정수 값의 어레이를 포함할 수 있다. 이 경우, 시각적 특징 텐서(270)의 요소는 특정 시각적 환경(예를 들어, "실내/실외", "차량내/차량외", "구름/비구름", "시끄러움/조용함" 등)을 식별하는 플래그 또는 분류를 나타낼 수 있다. 다른 경우에, 시각적 특징 텐서(270)는 2개 이상의 차원수를 포함할 수 있으며, 예를 들어, 제 2 차원수는 일련의 시간 샘플을 나타낼 수 있고 및/또는 각 차원수는 상이한 특징 세트를 나타낼 수 있다. 예를 들어, 발언에 대해 생성된 시각적 특징 텐서(270)는 t2 시간 샘플 동안의 s2 특징 세트로부터의 f2개의 특징을 나타내는 f2×s2×t2 텐서(예를 들어, V[i, j, k])를 포함할 수 있다. 이 경우 f1, s1 및 t1은 f2, s2 및 t2와 같을 수도 있고 같지 않을 수도 있다. 특정한 경우에, 최적의 특징 텐서 크기가, 트레이닝 시간 및 추론 속도에 대한 정확도와 부정적 효과 사이의 절충으로서 선택될 수 있다.
도 2로 돌아가서, 클라이언트 장치(210)는, 예를 들어 도 1에 도시된 서버 장치(120)와 유사하게, 오디오 특징 텐서(260) 및 시각적 특징 텐서(270)를 서버 장치로 전송하기 위한 송신기(280)를 포함한다. 송신기(280)는, 도 1의 수신기(122)와 유사한 방식으로, 통신 인터페이스 및 통신 프로토콜의 하나 이상의 구현예(예를 들어, 다중-계층 통신 스택 내)를 포함할 수 있다. 송신기(280)는, 도 1에 도시된 네트워크(130)와 같은 하나 이상의 네트워크를 통해 클라이언트 장치(210)로부터 데이터를 전송하도록 구성될 수 있다. 일 구현예에서, 송신기(280)는 유선 또는 무선 물리적 인터페이스 및 사전 정의된 포맷으로 요청을 개시하는 방법을 제공하는 하나 이상의 통신 프로토콜을 포함할 수 있다. 한 경우에, 송신기(280)는 예를 들어 장치 어드레스 및 포트 번호를 사용하여 설정된 바와 같이, 구성된 통신 링크를 통해 데이터를 전송할 수 있다. 송신기(280)는 특정 인터넷 프로토콜 어드레스(및 경우에 따라서는 포트 번호)를 사용해서 식별된 애플리케이션 계층 인터페이스로 데이터를 전송하도록 구성될 수 있다.
도 1을 참조하여 설명된 바와 같이, 오디오 특징 텐서(260) 및 시각적 특징 텐서(270)는, 서버 장치의 언어 모델에 의해 초기 캡처된 오디오 데이터 및 이미지 데이터와 관련된 발언을 분석하는데 사용될 수 있다. 일례에서, 오디오 특징 텐서(260) 및 시각적 특징 텐서(270)는 발언에 의해 표현된 음성 명령어를 결정하기 위해 직접 사용될 수 있다. 다른 예에서, 오디오 특징 텐서(260) 및 시각적 특징 텐서(270)는, 발언을 분석하기 위한 오디오 데이터와 함께 추가 입력으로서 사용될 수 있다. 두 경우 모두에서, 적어도 시각적 특징 텐서(270)는 발언의 환경에 대한 시각적 정황의 수치 표현을 제공한다. 오디오 특징 텐서(260)는 발언 자체의 수치 표현과 환경에 대한 음향 정황의 수치 표현 중 하나 이상을 제공할 수 있다.
한 경우에, 오디오 데이터는 환경의 주변 오디오 기록을 나타내는 제 1 부분 및 발언의 오디오 기록을 나타내는 제 2 부분과 같은 다수의 부분을 포함할 수 있다. 제 1 부분은 제 2 부분 이전에, 그 동안에 또는 이후에 기록될 수 있다. 오디오 데이터의 제 1 부분은 오디오 특징 텐서(260)를 생성하기 위해 오디오 특징 추출기(240)에 의해 처리될 수 있고, 오디오 데이터의 제 2 부분은 오디오 특징 텐서(260)와 함께 발언을 분석하기 위해 전송될 수 있다. 발언은 캡처된 음성을 특징짓지 않는 오디오 시계열의 섹션들 사이에서 캡처된 음성의 기간으로서 정의될 수 있으며, 오디오 데이터는 둘 모두를 나타낼 수 있다.
특정한 경우에, 이미지 데이터의 다수의 프레임이 다양한 시간에 캡처될 수 있다. 예를 들어, 이미지 데이터의 프레임은 발언 이전, 발언 시작시, 발언 중, 발언의 끝 및/또는 발언 이후 중 하나 이상에서 캡처될 수 있다. 이미지 데이터가 다른 시간에 처리될 수 있도록 이미지 데이터의 프레임은 버퍼링될 수도 있다. 특정한 경우에는, 버퍼가 발언의 특정 부분으로부터의 복수의 프레임으로 채워질 수 있고, 이 복수의 프레임은 시각적 특징 추출기에 입력하기 위한 데이터 볼륨으로서 취해질 수 있다.
자동차의 예
도 3a는 클라이언트 장치(300)의 일 예시적인 구현예를 도시한다. 이것은 도 1의 클라이언트 장치(116)의 구현예일 수도 있고 또는 도 2의 클라이언트 장치(210)의 구현예일 수도 있다. 이 경우, 클라이언트 장치는 자동차(305)에 통합된다. 도 3a는 자동차(305)의 측면도를 도시한다. 자동차(305)는 자동차(305)의 컴포넌트를 제어하기 위한 제어 유닛(310)을 포함한다. 클라이언트 장치(210)의 컴포넌트는 이 제어 유닛(310)에 통합될 수 있다. 다른 경우에, 클라이언트 장치(210)의 컴포넌트는 이 제어 유닛(310)과의 접속을 옵션으로 해서 별도 유닛으로서 구현될 수도 있다. 자동차(305)는 또한 다수의 이미지 캡처 장치(315, 320, 325)를 포함한다. 이들은 복수의 외부 비디오 카메라(315, 320) 및 적어도 하나의 비디오 카메라(325)를 포함한다. 이 예에서, 이미지 캡처 장치(315, 320 및 325)은 제어 유닛(310)에 통신 가능하게 연결되어서 이에 의해 제어될 수 있다. 외부 비디오 카메라(315, 320)는 주차 동작 및/또는 자율 주행 기능을 위해 사용될 수 있다. 적어도 하나의 내부 비디오 카메라(325)는 비디오 통신, 예를 들어 비디오 데이터를 이용한 VoIP(Voice over Internet Protocol) 통화에 및/또는 환경 모니터링에 사용될 수 있다.
본 예에서 자동차(305)는 음성 캡처를 위한 전방-장착 마이크(330) 방향으로 탑승자를 유지하는 전방 좌석 및 후방 좌석을 포함한다. 자동차(305)는 또한 안전 필수(safety-critical) 디스플레이 정보를 가진 운전자 시각 콘솔(도시 생략) 및/또는 내비게이션, 오락 및 실내 온도 제어 기능을 갖는 일반 콘솔(도시 생략)을 포함할 수 있다. 운전자 시각 콘솔 및 일반 콘솔은 또한 제어 유닛(310)에 통신 가능하게 연결될 수 있다. 이 예에서 제어 유닛(310)은 로컬 프로세싱 모듈 및 무선 네트워크 통신 모듈을 더 포함한다.
이 예에서, 전방 장착 마이크(330)가 도 2의 오디오 캡처 장치(220)를 구현하고, 이미지 캡처 장치(315, 320, 325) 중 하나 이상이 이미지 캡처 장치(230)를 구현할 수 있다. 로컬 프로세싱 모듈은 오디오 특징 추출기(240) 및 시각적 특징 추출기(250)를 구현하기 위한 적어도 하나의 프로세서 및 메모리를 포함할 수 있다. 무선 네트워크 통신 모듈은 송신기(280)를 구현할 수 있다.
특정한 경우에, 자동차는 측면 장착 마이크, 전방 오버헤드 멀티 마이크 음성 캡처 유닛 및 후방 오버헤드 멀티 마이크 음성 캡처 유닛과 같은 추가 오디오 캡처 장치를 더 포함할 수도 있다. 측면 마이크 및 전방 및 후방 음성 캡처 유닛은 음성 오디오를 캡처하고, 노이즈를 제거하고, 스피커의 위치를 식별하는 것을 제공할 수 있다. 이 경우, 이들 마이크 및 캡처 유닛 중 하나 이상은 오디오 특징 추출기(240)를 구현하기 위해 오디오 데이터를 제어 유닛(310)에 제공할 수 있다. 제어 유닛(310)은 이미지 캡처 장치(315, 320, 325) 중 하나 이상에 의해 획득된 이미지 데이터로부터 하나 이상의 시각적 특징 텐서 세트를 생성하도록 구성된다. 무선 네트워크 통신 모듈은 제어 유닛(310)에 의해 생성된 오디오 및 시각적 특징 텐서를 프로세싱을 위해 원격 서버로 전송할 수 있다. 특정한 경우에, 제어 유닛(305)은 또한 도 1의 서버 장치(120)와 같은 서버 측 기능을 구현할 수 있다. 이것은 "오프라인" 모드의 경우일 수 있다. 한 경우에, 하나 이상의 마이크 및 캡처 유닛은 발언을 특징짓는 오디오 데이터를 캡처할 수 있고, 하나 이상의 다른 마이크 및 캡처 유닛은 오디오 특징 텐서의 생성을 위해 오디오 데이터를 캡처할 수 있다. 다른 경우에, 각각의 이용 가능한 마이크 및 캡처 유닛은 오디오 데이터의 상이한 채널을 제공할 수 있으며, 이는 발언 분석을 위한 오디오 특징 텐서를 적어도 생성하도록 처리된다.
모바일 컴퓨팅 장치의 예
도 3b는 클라이언트 장치(350)의 다른 예를 도시한다. 이것은 도 1의 클라이언트 장치(112)의 구현예일 수도 있고 또는 도 2의 클라이언트 장치(210)의 구현예일 수도 있다. 이 경우, 클라이언트 장치는 모바일 컴퓨팅 장치(355)에 통합된다. 도 3b는 모바일 컴퓨팅 장치(355)의 정면도 및 후면도를 도시한다. 모바일 컴퓨팅 장치(355)는 스마트 폰 또는 태블릿을 포함할 수 있다. 모바일 컴퓨팅 장치(355)의 전면은 특히 사용자에게 정보를 표시하기 위한 디스플레이 스크린(360)을 포함한다. 디스플레이 스크린은 터치스크린을 포함할 수 있다. 모바일 컴퓨팅 장치(355)의 전면은 또한 전면 카메라(365) 및 전면 마이크(370)를 포함한다. 모바일 컴퓨팅 장치(355)의 후면은 후면 카메라(375) 및 하부 내부 마이크(380)를 포함한다. 모바일 컴퓨팅 장치(355)에서는 또한 내부 멀티-코어 프로세서(390) 및 무선 네트워크 통신 모듈(395)이 강조된다. 모바일 컴퓨팅 장치(355)는 복수의 추가 구성 요소를 포함할 수 있지만, 명료하게 하기 위해서 도시되지는 않았다. 전방 및 후방 카메라(365, 375)는 정지 카메라 또는 비디오 카메라를 포함할 수 있다.
사용시, 하나 이상의 전면 마이크(370) 및 하부 내부 마이크(380)는 도 2의 오디오 캡처 장치(220)를 구현하는 데 사용될 수 있다. 도 3a의 예에서 설명된 바와 같이, 한 마이크는 음성(즉, 발언)을 캡처하고 한 마이크는 주변 사운드 데이터를 캡처할 수도 있고; 또는 두 마이크 모두 발언은 물론 음성이 없는 기간을 특징짓는 다중 채널 오디오 데이터를 제공하는데 사용될 수 있다. 유사하게, 전면 카메라(365) 및 후면 카메라(375) 중 하나 이상이 도 2의 이미지 캡처 장치(240)로서 사용될 수 있다. 한 경우에, 이미지 데이터는 사용자의 환경을 가장 잘 나타내는 카메라로부터 캡처될 수 있는데, 예를 들어, 모바일 컴퓨팅 장치(355)가 테이블 상에 페이스 업되면, 이미지 데이터는 전면 카메라(365)로부터 캡처될 수 있고; 사용자가 모바일 컴퓨팅 장치(355)를 걷거나 들고 있다면 이미지 데이터는 두 카메라로부터 캡처될 수 있으며; 사용자가 모바일 컴퓨팅 장치(355)를 귀에 대고 있다면, 후방 카메라(374)만이 사용될 수 있다.
도 3b의 예에서, 멀티-코어 프로세서(390)는 도 2의 오디오 특징 추출기(240) 및 시각 특징 추출기(250)를 구현할 수 있다. 한 경우, 이들은 메모리로부터 로딩된 컴퓨터 프로그램 코드를 포함할 수 있고, 멀티-코어 프로세서(390)에서 병렬 스레드로서 실행될 수 있다. 다른 예에서, 모바일 컴퓨팅 장치(355)는 도 2의 오디오 특징 추출기(240) 및 시각 특징 추출기(250) 각각을 구현하기 위한 전용 디지털 신호 프로세서를 포함할 수 있다. 다양한 방식이 가능하다.
한 경우에, 이미지 데이터를 사용할지 여부를 결정하는 것이 시각적 특징 추출기(250)의 구현예가 될 수 있다. 예를 들어, 전방 및 후방 카메라(365, 375) 모두로부터의 프레임은 상이한 채널로서 시각적 특징 추출기(250)에 공급될 수 있다. 다른 경우에, 멀티-코어 프로세서(390)는 전면 및 후면 카메라(365, 375) 중에서 이미지 데이터의 단일 프레임을 공급할 것을 선택하는 스위치를 구현할 수 있다. 도 3b의 예에서, 무선 네트워크 통신 모듈은 도 2의 송신기(280)를 구현하기 위해 셀룰러 데이터 또는 무선 네트워킹 모듈을 포함할 수 있다.
클라이언트 서버 통신
도 4a, 4b 및 4c는 클라이언트 장치(402)와 서버 장치(404) 사이의 다양한 통신을 나타내는 일련의 시퀀스 다이어그램(400, 440, 470)을 도시한다. 클라이언트 장치(402)는 도 1의 클라이언트 장치(110), 도 2의 클라이언트 장치(210) 및/또는 도 3a와 도 3b에 도시된 클라이언트 장치(300, 350) 중 하나 중 하나를 포함할 수 있다. 서버 장치(404)는 도 1의 서버 장치(120)를 포함할 수 있다.
도 4a는 사용자의 발언을 분석하기 위한 한 세트의 프로세스를 설정하는 제 1 시퀀스도(400)를 도시한다. 블록(406)에서, 이미지 데이터는 서브 블록(408)에서 캡처되고 오디오 데이터는 서브 블록(410)에서 캡처된다. 서브 블록(408, 410)은 예를 들어 개별 프로세싱 스레드로서 및/또는 상이한 하드웨어 장치에 의해 병렬로 수행될 수 있다. 블록(406)은 발언 기간 동안의 다수의 데이터 샘플의 캡처를 포함할 수 있다. 한 경우에, 블록(406)은 공통 비디오 레코딩을 위해 비디오 및 오디오 데이터 채널을 생성하는 단계를 포함할 수 있다. 서브 블록(408, 410)은 각각 도 2의 이미지 및 오디오 캡처 장치(230, 220)에 의해 수행될 수 있다.
블록(412)에서, 시각적 특징 텐서는 서브 블록(414)에서 생성되고, 오디오 특징 텐서는 서브 블록(416)에서 생성된다. 서브 블록(414, 416)은 예를 들어 개별 프로세싱 스레드로서 및/또는 상이한 하드웨어 장치에 의해 병렬로 수행될 수 있다. 서브 블록(414, 416)은 각각 도 2의 시각적 및 오디오 특징 추출기(250, 240)에 의해 수행될 수 있다.
블록(418)에서, 클라이언트 장치(402)는 시각적 및 오디오 특징 텐서를 서버 장치(404)에 전송한다. 이것은 도 2의 송신기(280)에 의해 수행될 수 있다. 시각적 및 오디오 특징 텐서는 블록(420)에서 서버 장치에서 수신된다. 텐서의 수신은 도 1의 수신기(122)에 의해 처리될 수도 있다. 블록(422)에서, 수신된 시각적 및 오디오 특징 텐서에 언어 모델(LM)이 적용된다. 언어 모델은 도 1에 도시된 언어 모델(124)을 포함할 수 있다. 언어 모델은 음향 모델, 발음 모델 및 언어 모델 중 하나 이상을 포함할 수 있다. 음향 모델은 일련의 음소 또는 다른 조어(proto-language) 유닛을 나타내는 데이터를 생성할 수 있다. 언어 모델은 텍스트 데이터를 생성할 수 있다. 한 경우에, 음향 모델의 출력은 언어 모델에 의해 수신될 수 있다.
블록(424)에서, 언어 모델의 출력이 처리된다. 이것은 발언을 나타내는 텍스트 데이터를 분석하는 것을 포함할 수 있다. 블록(424)은 데이터를 언어 모델로부터 음성 명령으로 및 음성 명령에 대한 데이터 세트로 매핑하는 것을 포함할 수 있다. 블록(424)은 언어 모델의 출력으로부터 음성 명령을 실행하기 위해 적절한 서비스를 식별하는 것을 포함할 수 있다. 블록(424)은 식별된 서버에 대해 API(application programming interface) 요청을 행하는 것을 포함할 수 있고, 이 요청은 언어 모델의 출력으로부터 식별된 명령어 및 임의의 명령어 데이터를 포함한다. 예를 들어, "오늘 날씨가 어떻습니까?"란 발언은 "오늘 날씨가 어떻습니까?"라는 텍스트 출력을 생성할 수 있으며, 이는 예를 들어, 현재 시간 또는 날짜와 같은 "오늘"이라는 시간 파라미터를 사용해서 날씨 데이터에 대한 날씨 서비스 API 요청에 매핑될 수 있다.
특정한 경우에, 발언이 서버 장치(404)로부터의 응답을 요구하지 않을 수도 있다. 예를 들어, 특정 장치를 끄는 음성 명령어가 클라이언트 장치(402)가 아닌 장치에 대한 요청을 개시할 수도 있고, 클라이언트 장치로의 피드백은 필요없을 수도 있다. 또는 다른 사용자에게 통지를 전송하기 위한 음성 명령어도 또한 클라이언트 장치(402)에 응답이 전송될 것을 요구하지 않을 수 있다. 그러나, 다른 경우에, 클라이언트 장치에 대한 응답이 요청 혹은 요구될 수 있다. 이 경우는 도 4a에서 점선으로 표시된다.
블록(424)의 실행이 클라이언트 장치(402)로 피드백될 정보를 생성하는 경우, 블록(426)에서, 이 정보는 패키징되어서 클라이언트 장치(402)로 전송될 수 있다. 예를 들어, 한 경우, 도 1의 수신기(122)는 네트워크(130)를 통해 응답을 전송할 수 있는 트랜시버를 포함할 수 있다. 블록(426)에서, 예를 들어 블록(406)에서 캡처된 발언에 대한 응답이 클라이언트 장치(402)에서 수신된다. 이 경우, 송신기(280)는 또한 네트워크(130)를 통해 데이터를 수신할 수 있는 트랜시버를 포함할 수 있다. 발언에 대한 응답은 응답 데이터를 포함한다. 이것은 예를 들어, 사용자 인터페이스 또는 오디오 출력을 통해 사용자에게 통신될 머신 판독 가능 데이터를 포함할 수 있다. 블록(430)에서, 응답 데이터가 처리되고, 사용자에 대한 응답이 클라이언트 장치(402)에 의해 출력된다. 이는 도 3b의 디스플레이 스크린(360) 상으로의 텍스트 및/또는 이미지의 디스플레이, 또는 텍스트-음성 변환 모듈을 통한 사운드의 출력일 수 있다. 특정한 경우에, 응답 데이터는 오디오 데이터를 포함할 수 있는데, 이는 클라이언트 장치에서 처리될 수 있고 예를 들어 하나 이상의 스피커를 통해 오디오 출력을 생성하는데 사용될 수 있다. 도 3a의 자동차 예에서, 자동차(305)의 내부에 장착된 스피커 및/또는 일반 콘솔에 디스플레이되는 정보를 통해 사용자에게 응답이 발언될 수 있다.
도 4b는 특정한 구현예에서 수행될 수 있는 대안의 통신 세트를 도시한다. 이 통신도 역시 클라이언트 장치(402)와 서버 장치(404) 사이에서 행해진다. 그러나, 도 4b의 경우, 이미지 데이터와 오디오 데이터는 별도의 시간에 처리된다.
도 4b의 블록(442)에서, 이미지 데이터의 하나 이상의 프레임이 캡처된다. 이것은 카메라로부터의 이미지 데이터의 스틸을 캡처하는 것이나 혹은 비디오로부터 프레임의 그룹을 캡처하는 것을 포함할 수 있다. 블록(442)은 주기적으로, 예를 들어 t초 또는 분마다 수행될 수도 있고, 또는 사용자 동작에 의해, 예를 들어 움직임의 검출 또는 음성의 시작에 의해 트리거될 수도 있다. 블록(442)은 도 4a의 서브 블록(408)과 유사한 프로세스를 포함할 수 있다.
블록(444)에서, 적어도 하나의 시각적 특징 텐서는 블록(442)에서 캡처된 이미지 데이터의 하나 이상의 프레임에 기초하여 생성된다. 다시, 이것은 도 4a의 서브 블록(414)과 유사한 프로세스를 포함할 수 있다. 블록(444)은 또한 주기적으로 수행될 수도 있고 또는 트리거 조건에 기초하여 수행될 수도 있다. 특정한 경우에, 블록(444)은 예를 들어 이미지 캡처 장치로부터 수신된 이미지 데이터의 프레임의 존재에 응답하여 수행될 수 있다. 블록(442)에서 이미지 데이터의 다수의 프레임이 캡처되면, 이는 복수의 시각적 특징 텐서를 생성할 수 있다. 예를 들어, 시각 특징 추출기가 시퀀스 프로세서를 포함하는 다른 경우에, 이미지 데이터의 다수의 입력 프레임이 하나의 시각적 특징 텐서를 생성할 수도 있다.
블록(446)에서, 블록(444)에서 생성된 적어도 하나의 시각적 특징 텐서가 클라이언트 장치(402)로부터 서버 장치(404)로 전송된다. 이는 도 4a의 블록(418)과 유사한 프로세스를 포함할 수 있지만, 이 경우에만은, 어떤 오디오 특성 텐서도 이 시점에 전송되지 않는다. 블록 448에서, 서버 장치(404)는 적어도 하나의 시각적 특징 텐서를 수신한다. 이 단계에서, 서버 장치(404)는 수신된 데이터에 기초해서 언어 모델을 구성하기 위한 동작을 개시할 수 있다. 특정한 구성예에서, 블록(442 내지 448)이 주기적으로 반복되어서, 서버 장치(404)가, 언어 모델의 구성에 이용 가능한 적어도 하나의 시각적 특징 텐서 형태로 시각적 환경 상태를 갖게 할 수 있다. 예를 들어, 블록(442 내지 448)은 매분마다, 5분마다 또는 매시간마다 반복될 수 있다. 특정한 경우에, 블록(442 내지 448)은 클라이언트 장치(402)에서의 가속도계 및/또는 위치 데이터의 변화에 기초해서 트리거될 수 있으며, 예를 들어, 이는 움직임이 없는(또는 사전 정의된 임계값 이하의 움직임) 기간 이후에 움직임이 검출되는 경우에 수행될 수도 있고 또는 클라이언트 장치(402)가 특정 지오 펜스 위치를 벗어나는 경우에 수행될 수도 있다. 이 방식에서, 서버 장치(404)는, 클라이언트 장치(402)의 환경이 변경되면, 업데이트된 시각적 특징 텐서를 수신할 수 있다. 하나 이상의 블록(442, 444, 446)이 트리거 이벤트에 기초해서 수행되는 경우, 이는 에너지 소비를 감소시키는 데 도움이 될 수 있다. 이것은 클라이언트 장치(402)가 배터리 구동식인 경우, 예를 들어 스마트 폰 또는 센서 장치일 때 바람직할 수 있다. 예를 들어, 이미지 캡처 및 시각적 텐서 생성 중 하나 이상과 관련된 처리는, 예를 들어 환경이 변하거나 발언이 검출되는 경우를 포함한 특정 조건 하에서 수행될 수 있다. 특정한 경우에, 배터리 전력이 낮으면 시각적 처리 파이프 라인이 금지될 수 있으며, 정확성을 줄이지만 사용이 제한되면 처리 리소스를 보존할 수 있다.
도 4b의 클라이언트 장치(402)로 돌아가서, 블록(450 내지 456)에서, 블록(442 내지 448)과 유사한 동작 세트가 수행되어서, 오디오 장치 텐서를 서버 장치(404)에 송신한다. 한 경우에, 블록(442 내지 448)과 블록(450 내지 456)은 데이터를 서버 장치(404)에 비동기적으로 전송하는 별도의 독립된 프로세스일 수 있다. 이러한 방식으로, 블록(450 내지 456)은 블록(442 내지 448) 이전에, 도중 또는 이후에 수행될 수 있다.
블록(450)에서, 오디오 데이터는 도 4a의 서브 블록(410)과 유사한 방식으로 캡처된다. 블록(452)에서, 적어도 하나의 오디오 특징 텐서가 도 4a의 서브 블록(416)과 유사한 방식으로 생성된다. 블록(454)에서, 적어도 하나의 오디오 특징 텐서가 도 4b의 블록(446) 또는도 4a의 블록(418)과 유사한 방식으로 서버 장치(404)로 전송된다. 블록(456)에서, 서버 장치(404)는 오디오 특징 텐서를 수신한다. 블록(456)은 도 4a의 블록(422, 424)과 유사한 블록(458, 460)을 수행하기 위한 트리거로 간주될 수 있다. 도시되지 않았지만, 예를 들어, 도 4a의 블록들(426 내지 430)과 유사한 방식으로, 블록(460)에서 출력된 언어 모델의 처리 이후에 응답 데이터가 서버 장치(404)로부터 전송될 수 있다.
도 4b의 예는 서버 장치(404)에서 환경의 시각적 정황 및 청각적 정황이 비동기식으로 유지될 수 있는 방법을 도시한다. 한 경우에, 언어 모델의 동작 상태는 수신된 시각적 특징 텐서 및 오디오 특징 텐서에 기초하여 지속적으로 업데이트될 수 있으며, 예를 들어, 언어 모델의 동작 파라미터를 설정하는 데 사용될 수 있다.
도 4c는 도 4b의 예의 변형예를 도시한다. 도 4c의 변형예는 또한 도 4a와 같은 다른 예에도 적용될 수 있다. 도 4c에서, 블록(442 내지 452)은 도 4b를 참조하여 설명된 것과 동일하다. 그러나, 블록(472)에서, 블록(450)에서 캡처된 오디오 데이터가 오디오 특징 텐서와 함께 서버 장치(404)로 전송되며, 여기서 블록(474)에서 수신된다. 도 4c의 예에서, 언어 모델은 음향 모델(AM) 및 언어 모델(LaM)을 포함한다. 이 경우, 하나 이상의 오디오 특징 텐서 및 시각적 특징 텐서는 각각 사용자의 환경에 대한 시각적 정황과 청각적 상황 중 하나 이상을 제공한다. 시각적 정황 및/또는 음향 정황은 음향 모델 및 언어 모델 중 하나 이상을 구성하는데 사용될 수 있다. 한 경우에, 음향 모델과 언어 모델은 모두 오디오 특징 텐서 및 시각적 특징 텐서를 입력으로서 수신한다. 특정한 경우에, 음향 모델 및/또는 언어 모델은 오디오 특징 텐서 및 시각적 특징 텐서 이외의 입력을 수신할 수도 있다. 도 4c에서, 음향 모델은 구성 입력으로서 오디오 특징 텐서 및 시각적 특징 텐서를 수신하고, 특정 발언과 관련된 입력으로서 블록 474에서 수신된 오디오 데이터를 수신한다. 한 경우에, 오디오 특징 텐서, 시각적 특징 텐서 및 오디오 데이터 중 2개 이상의 수치 표현은, 예를 들어 더 큰 숫자 값의 벡터 및/또는 데이터 값의 다차원수 볼륨으로 연쇄될 수 있다. 특정한 경우에, 블록(472)에서 전송하는 동안 오디오 데이터가 스트리밍될 수 있고; 다른 경우에, 오디오 데이터는 오디오 특징 텐서에 대한 상이한 오디오 특징의 세트, 예를 들어 고정 길이 벡터와 비교되는 주파수 특징의 스트림을 포함할 수 있다. 블록(476)에서, 음향 모델은, 예를 들어 설명된 바와 같이 입력에 적용된다. 블록(478)에서, 언어 모델은 음향 모델의 출력에 적용된다. 예를 들어, 음향 모델은 음소 시퀀스(예를 들어, 선택된 또는 검출된 언어의 각 음소를 나타내는 텍스트 심볼 또는 정수의 시퀀스)를 출력할 수 있다. 언어 모델은 구성 입력으로서 오디오 특징 텐서 및 시각적 특징 텐서를 수신하고, 특정한 발언과 관련된 입력으로서 블록(476) 이후에 출력되는 음소 시퀀스를 수신할 수 있다. 언어 모델은 텍스트 또는 음성 명령어 표현, 예를 들어 특정 명령어와 관련된 식별된 데이터 객체를 출력할 수 있다. 후자의 경우, 예를 들어, 명령어 세트는 복수의 명령어를 클래스 또는 컴퓨터 객체로서 나타낼 수 있으며, 여기서 객체는 관련된 데이터 및 방법을 가질 수 있다. 블록 480에서, 언어 모델의 출력이 처리된다. 이것은 텍스트 출력을 분석하거나 음성 명령어 표현을 선택하는 것 및 그 표현에 이용 가능한 방법을 개시하는 것을 포함할 수 있으며, 특정한 경우에 언어 모델 출력으로부터의 데이터를 이용한다. 다시, 도 4a의 426 내지 430과 유사한 블록이 또한 수행될 수 있다.
신경망 구현
특정한 예시에서, 오디오 특징 추출기, 시각적 특징 추출기 및 언어 모델 중 하나 이상은 신경망 아키텍처를 포함할 수 있다. 한 경우에, 이들 컴포넌트 각각은 신경망 아키텍처를 포함할 수 있다. 후자의 경우, 결합된 신경망 아키텍처는, 엔드-투-엔드로 트레이닝되어서 컴포넌트를 조인트 구성할 수 있다.
한 경우에, 시각적 특징 추출기 및 오디오 특징 추출기는 컨볼루션(convolutional) 신경망 및 리커런트(recurrent) 신경망 중 하나 이상을 포함한다. 예를 들어, 시각적 특징 추출기는 컨볼루션 신경망을 포함할 수 있고, 오디오 특징 추출기는 리커런트 신경망을 포함할 수 있다. 후자의 경우, 오디오 특징 텐서는, 예를 들어 시간 샘플의 시퀀스에 후속하는 리커런트 신경망의 히든 상태 및/또는 예를 들어 입력 시간 샘플의 세트에 후속하는 결합된 출력 시퀀스 및/또는 발언을 나타내는 입력 시간 샘플의 세트의 입력에 후속해서 취해진 출력 중 하나 이상을 포함할 수 있다.
시각적 특징 추출기
도 5는 시각적 특징 추출기(500)의 예시적인 구현예를 도시한다. 예를 들어, 구현예는 도 2의 시각적 특징 추출기(250)를 구현하는 데 사용될 수 있다. 이 예시에서, 시각적 특징 추출기(500)는 제 1 컨볼루션 신경망 아키텍처(510) 및 제 2 신경망 아키텍처(550)를 포함한다.
제 1 컨볼루션 신경망 아키텍처(510)는 복수의 계층(512 내지 520)을 포함한다. 이들은 이미지 데이터의 프레임을 수신하는 제 1 입력 계층(512) 및 프레임의 처리된 표현을 출력하는 제 1 출력 계층(520)을 포함한다. 제 1 입력 계층(512)과 제 1 출력 계층(520) 사이에는 복수의 컨볼루션 신경망 계층(514, 516 및 518)이 존재한다. 특정 아키텍처에서, 마지막 컨볼루션 신경망 계층과 출력 계층(520) 사이에 하나 이상의 피드-포워드 신경망 계층이 있을 수 있다. 컨볼루션 신경망 아키텍처(510)는 AlexNet, VGGNet, GoogLeNet 또는 ResNet 아키텍처의 적합한 형태를 포함할 수 있다. 제 1 컨볼루션 신경망 아키텍처(510)는 보다 정확한 아키텍처를 이용 가능하게 됨에 따라서 모듈 방식으로 대체될 수 있다.
본 예시에서, 제 1 컨볼루션 신경망 아키텍처(510)는 복수의 계층 각각에 대해 트레이닝된 파라미터의 세트를 사용하여 파라미터화된다. 예를 들어, 이들 트레이닝된 파라미터는 각 계층에 대한 적어도 한 세트의 가중치를 포함할 수 있다. 한 경우에, 트레이닝된 파라미터는 또한 그 계층에 대한 바이어스의 세트에 대한 값을 포함할 수 있다. 이 가중치는 이전 계층으로부터의 입력으로 컨볼브된 고정 수의 필터 또는 커널에 대한 가중치를 포함할 수 있다. 제 1 컨볼루션 신경망 아키텍처에 대한 하이퍼파라미터는 실험을 통해 및/또는 낮은 에러율을 갖는 공개된 파라미터 세트를 사용하여 설정될 수 있다.
본 예시에서, 제 1 컨볼루션 신경망 아키텍처(510)는 사전 트레이닝된 이미지 분류 아키텍처로서 간주될 수 있다. 예를 들어, 트레이닝된 파라미터에 대한 값은 낮은 에러율을 갖는 공개된 모델로부터 획득될 수 있다. 한 경우에, 제 1 컨볼루션 신경망 아키텍처(510)는 초기에 출력 계층에 이미지 분류 컴포넌트를 포함할 수 있는데, 이는 이미지 분류의 세트(예를 들어, 제 1 요소가 제 1 분류와 관련되고, 제 2 요소가 제 2 분류와 관련되는 등)를 나타내는 원-핫(one-hot) 벡터(즉, 0과 1 사이의 정규화된 값의 벡터)를 출력하도록 구성된다. 이 경우, 이미지 분류 컴포넌트는 최종 출력 계층으로서 소프트맥스 계층을 포함할 수 있다. 제 1 컨볼루션 신경망 아키텍처(510)의 계층에 대한 트레이닝된 파라미터들은, 제 1 출력 계층(520)에 연결된 소프트맥스 계층을 포함하는 하나 이상의 추가 분류 계층을 갖고 트레이닝 동작으로부터 도출된 파라미터일 수 있다. 트레이닝된 컨볼루션 신경망 아키텍처(510)를 본 명세서에 개시된 시각적 특징 추출기로서 사용하기에 적합하게 하기 위해서, 적어도 소프트맥스 계층이 제거되어서, 출력 계층(520)이 원-핫 표현이나 확률이 아닌 숫자 값의 텐서를 출력하게 할 수 있다.
제 2 신경망 아키텍처(550)는 하나 이상의 계층(552 내지 556)을 포함한다. 이들은 제 2 입력 층(552) 및 제 2 출력 층(556)을 포함한다(예를 들어, 시각적 특징 추출기(500)와 관련하여). 제 2 입력 계층(552)은 제 1 컨볼루션 신경망 아키텍처(510)의 제 1 출력 계층(520)에 연결된다. 이들 계층은 예를 들어 컨볼루션 계층 또는 피드-포워드 계층을 포함할 수 있다. 제 2 출력 계층(556)은 시각적 특징 텐서를 출력하도록 구성된다. 제 2 출력 계층(556)은 제 1 출력 계층(520)의 차원수(예를 들어, 어레이 길이 또는 크기)보다 작은 차원수(예를 들어, 어레이 길이 또는 크기)를 갖는다. 한 경우에, 제 2 신경망 아키텍처(550)는 자동 인코더 또는 변형 자동 인코더의 적어도 일부를 포함하며, 여기서 제 2 출력 계층의 출력(560)은 숫자 값의 고정 길이 "코드"를 형성한다. 이들 경우에, 제 2 신경망 아키텍처(550)의 각 계층은, 그 계층에 대한 입력 텐서보다 작은 길이를 갖는 텐서 출력을 생성하도록 구성될 수 있으며, 예를 들어, 각 계층은 피드-포워드 또는 다른 감소 배열을 포함할 수 있다. 이러한 방식으로, 제 2 신경망 아키텍처(550)는 트레이닝 동안 정보 "보틀넥(bottleneck)"을 형성하며, 이로써 "코드"는 제 1 출력 계층(520)의 출력의 압축된 표현을 나타내게 된다. 이 경우, 자동 인코더 구성을 통해서 특징 출력 당, 예를 들어 시각적 특징 텐서의 요소 당 정보 컨텐츠를 최대화할 수 있다. 예를 들어, 입력 계층(552)에서 수신된 텐서는 길이가 4096(즉, 각각 부동 소수점 수로 표현되는 4096개의 요소를 가질 수 있음)일 수 있는 반면, 제 2 출력 계층(556)에서 출력되는 텐서는 길이가 32 내지 256일 수 있다. 특정한 경우에, 제 2 신경망 아키텍처(550)는 또한, 예를 들어 64 비트 부동 소수점 값 대신에 일련의 8 비트 정수 값을 생성하도록, 제 1 컨볼루션 신경망 아키텍처(510)의 출력을 양자화할 수 있다.
제 2 신경망 아키텍처(550)는 트레이닝 동작에서 오디오 특징 추출기 및 언어 모델과 함께 조인트 트레이닝될 수 있다. 그러나, 제 1 컨볼루션 신경망 아키텍처(510)가 사전 트레이닝된 이미지 분류 아키텍처에 기초하는 경우, 제 1 컨볼루션 신경망 아키텍처(510)에 대한 트레이닝된 파라미터 세트는 트레이닝 동작 동안 고정될 수 있다. 사실상, 사전 트레이닝된 이미지 분류 아키텍처의 고정 이미지 분류 속성이 유지되고, 수정된 출력, 예를 들어 레이트(late) 계층 출력이 트레이닝된 제 2 신경망 아키텍처(550)를 통해 압축되어서, 음성 처리 사용을 위해 수정된 출력의 현저한 특징을 나타내는 출력 시각적 특징 텐서를 학습한다. 제 2 신경망 아키텍처(550)를 조인트 트레이닝함으로써, 제 2 신경망 아키텍처(550)는 사전 트레이닝된 이미지 분류 아키텍처의 레이트(late) 출력의 변환을 학습하고, 이는 발언 분석에서의 에러를 감소시키는데 유용한 표현을 작성한다. 이러한 방식으로, 사전 트레이닝된 이미지 분류 아키텍처 내에서 유용한 이미지 특징을 생성하는 사전 트레이닝된 파라미터 값이 치명적으로 망각되는 것은 방지될 수 있다. 음성 처리 시스템은 제 2 신경망 아키텍처(550)를 재트레이닝하는 것만으로 최신 아키텍처를 신속하게 이용할 수 있다. 비록 도 5에 2개의 신경망 아키텍처가 도시되어 있지만, 다른 예시에서는 하나의 신경망 아키텍처를 사용해서 시각적 특징 추출기를 구현할 수도 있다는 점에 주의한다.
신경 음성 처리 시스템
도 6은 일례에 따른 신경 음성 처리 시스템(600)을 도시한다. 신경 음성 처리 시스템(600)은 클라이언트 측 신경 컴포넌트(610)와 서버 측 신경 컴포넌트(650)로 분할된다. 이 경우에, "신경"이라는 용어는 시스템 및 컴포넌트가, 역전파(backpropagation) 및 경사 하강 방식(gradient descent approaches)을 사용해서 트레이닝될 수 있는 하나 이상의 신경망 계층을 포함한다는 것을 나타내는 데 사용된다. 각각의 신경망 계층에는 비선형 기능(종종 "비선형성" 또는 활성화 기능이라고 칭함)이 후속될 수 있으며, 이로써 복수의 신경망 계층은 비선형 맵핑 또는 변환을 제공한다. 비선형 함수는 tanh 또는 시그모이드 함수일 수도 있고 RELU(Rectified Linear Unit)일 수도 있다. 클라이언트 측 및 서버 측이라는 용어가 사용되지만, 이들은 특정 예에서, 공통 컴퓨팅 장치의 상이한 컴포넌트, 예를 들어 도 3a의 제어 유닛(310)의 두 부분 또는 공통 장치 예를 들어, 도 3b의 모바일 컴퓨팅 장치(355) 내의 2개의 하드웨어 장치와 관련될 수 있다.
클라이언트 측 신경 컴포넌트(610)는 시각적 특징 추출기(620) 및 오디오 특징 추출기(630)를 포함한다. 시각적 특징 추출기(620)는 이미지 데이터(625)를 수신해서 시각적 특징 텐서(640)를 생성하도록 구성된다. 시각적 특징 추출기(620)는 이전 예시 예를 들어, 도 2 및 도 5를 참조로 설명된 바와 같이 구성될 수 있다. 시각적 특징 추출기(620)는 예를 들어, 도 5에 도시된 바와 같은 컨볼루션 신경망 및/또는 신경 자동 인코더의 인코딩 부분을 포함할 수 있다. 후자의 경우, 인코딩 부분은, 디코딩 부분에 의해 디코딩될 수 있는 압축된 "코드"를 생성하도록 트레이닝될 수 있다. 이 경우, 인코딩 및 디코딩 부분은 오리지널 이미지 데이터(예를 들어, 인코딩 부분에 대한 입력으로서 제공된)를 재구성된 이미지 데이터(예를 들어, 디코딩 부분에 의해 출력된)와 비교함으로써 트레이닝될 수 있고, 여기서 사용시에는 압축된 "코드"로부터 시각적 특징 텐서(640)를 생성하는데 인코딩 부분만이 사용된다. 특정한 경우에, 시각적 특징 인코더(620)의 제 1 스테이지의 출력(예를 들어, 컨볼루션 신경망 또는 자동 인코더의 출력)은 추가의 리커런트 신경망(LSTM(Long Short-Term Memory) 또는 GRU(Gated Recurrent Unit))에 입력되어서, 시간 경과에 따라 이 출력을 통합한다. 이들 경우에, 리커런트 신경망의 하나 이상의 출력 및/또는 리커런트 신경망의 히든 상태는 시각적 특징 텐서(620)로서 간주될 수 있다.
오디오 특징 추출기(630)는 오디오 데이터(635)를 수신해서 오디오 특징 텐서(645)를 생성하도록 구성된다. 오디오 특징 추출기(630)는 이전 예, 예를 들어 도 2 및 5를 참조하여 설명된 바와 같이 구성될 수 있다. 시각적 특징 추출기(620)와 같이, 오디오 특징 추출기(630)는 컨볼루션 신경망 및 리커런트 신경망 중 하나 이상을 포함할 수 있다. 네트워크 아키텍처는 오디오 데이터의 형식에 따라 달라질 수 있다. 오디오 데이터가 스펙트로그램을 나타내는 프레임의 세트로서 제공되는 경우, 이들 프레임은 전술한 바와 같이 시각적 특징 추출기(620)와 유사한 아키텍처에 의해 처리될 수 있으며, 각각의 스펙트로그램은 이미지 데이터의 프레임으로서 취급된다. 오디오 데이터가 MFCC(Mel Frequency Cepstral Coefficients)의 시퀀스를 포함하는 경우, 이들은 리커런트 신경망에 입력될 수 있고, 오디오 특징 텐서(645)는 리커런트 신경망의 하나 이상의 출력 및/또는 리커런트 신경망의 히든 상태를 포함할 수 있다. 리커런트 신경망은 상기와 같이 LSTM 또는 GRU를 포함할 수 있다. 한 경우에, 오디오 특징을 상이한 시간적 해상도 및/또는 주파수 해상도로 인코딩하기 위해서 리커런트 신경망의 상이한 계층 구조가 제공될 수 있다.
도 4a 내지 4c를 참조하여 설명된 바와 같이, 시각적 특징 텐서(640) 및 오디오 특징 텐서(645)는 언어 모델(655)로 통신된다. 이 예에서, 언어 모델(655)은 또한 신경망 아키텍처, 예를 들어 컨볼루션 신경망 및 리커런트 신경망 중 하나 이상을 포함한다. 한 경우에, 언어 모델(655)은 시각적 특징 텐서(640) 및 오디오 특징 텐서(645)를 모두 입력으로서 수신하도록 구성된 리커런트 신경망을 포함한다. 특정한 경우에, 언어 모델(655)은 시각적 특징 텐서(640) 및 오디오 특징 텐서(645)를 사전 처리하기 위해 예를 들어, 주의 메커니즘(attention mechanism)을 적용하고 및/또는 차원수(예를 들어, 결합된 어레이의 길이)를 더 감소시키기 위해 하나 이상의 컨볼루션 신경망 또는 피드-포워드 신경망을 포함할 수 있다. 한 경우에, 시각적 특징 텐서(640) 및 오디오 특징 텐서(645)는 간단한 텐서의 연쇄에 의해 결합된다. 다른 경우에, 전처리 기능은 합병된 텐서를 생성하는데 사용될 수도 있다. 이 경우, 시각적 특징 텐서(640) 및 오디오 특징 텐서(645)는 예를 들어, 길이 32 내지 512 요소의 벡터를 포함할 수 있으며, 예를 들어 각 요소는 정규화된 양을 나타내는 부동 소수점 값(예를 들어, 0 내지 1)이다. 이 경우에, LSTM 또는 GRU 아키텍처로의 연쇄 입력은 예를 들어, 256 내지 1024 요소의 벡터를 포함할 수 있다.
언어 모델(655)은 텍스트 출력(660)을 생성하도록 구성된다. 예를 들어, 이는 문자 단위로, 단어 부분 단위로 또는 단어 단위로 생성될 수 있다. 문자, 단어 부분 또는 단어는 고정 길이 출력 벡터에 의해 표시되는 어휘 중에서 선택될 수 있다(예를 들어, 소문자 문자 및 간단한 문장 부호의 경우 30개 요소가 있고 또는 단어 또는 단어 부분의 경우 최대 10,000개가 있음). 이 경우의 단어 부분은 반복적으로 사용되는 어간, 어미 및/또는 단어 부분을 포함할 수 있다. 이 경우, 언어 모델(655)은 음향 및 언어 모델링 기능 모두를 포함하는 것으로 간주될 수 있다.
언어 모델(655)은 여러 방식으로 출력 텍스트 시퀀스를 구성할 수 있다. 한 경우에, 출력 텍스트 시퀀스는 일련의 시간 스텝에 걸쳐서 리커런트 신경망의 출력을 취함으로써 구성될 수 있다. 예를 들어, 시각적 특징 텐서(640) 및 오디오 특징 텐서(645)는 복수의 시간 샘플(예를 들어, 입력 프레임 또는 fHz의 데이터 레이트 - 이는 비디오의 경우 30Hz 또는 60Hz 일 수 있고 오디오의 경우 그 이상일 수 있다)에 대해 생성될 수 있다. 시각적 특징 텐서(640) 및 오디오 특징 텐서(645)가 상이한 레이트로 생성되면, 느린 레이트로 변화하는 텐서는 일정하게 유지될 수 있으며 다른 텐서에 대해서는 변경하는 값이 입력된다. 한 경우에, 하나의 시각적 특징 텐서(640) 및 복수의 시간 단계 각각에 걸쳐서 생성되는 복수의 오디오 특징 텐서(645)가 존재할 수 있다. 한 경우에, 시각적 특징 텐서(640)는 제로 값 벡터 및/또는 제어 코드를 제공함으로써 생략될 수 있다. 시각적 특징 텐서(640)가 존재하지 않는 것을 맞춤하는 것은, 트레이닝 데이터 내에서 특정 이미지 입력(또는 시각적 특징 텐서 입력)을 0으로 설정함으로써 트레이닝될 수 있다. 다른 경우에, 시각적 특징 텐서(640) 및 오디오 특징 텐서(645)는 연쇄되어서, 리커런트 신경망의 초기 히든 상태를 설정하는데 사용될 수 있다. 이 경우, 제 1 입력은 <START> 제어 심볼을 포함할 수 있고, 제 1 출력 심볼은 제 2 입력으로서 사용되도록 피드백될 수 있으며, 이 프로세스는 <END> 제어 심볼이 출력될 때까지 반복된다. 이 경우, 리커런트 신경망은 입력으로서 심볼(예를 들어, 문자 또는 단어)을 수신하도록 구성된다. 이 경우, 심볼은 초기에 숫자 표현으로 매핑되고, 이후, 리커런트 신경망에 제공되기 전에 심볼 임베딩에 추가로 매핑될 수 있다. 예를 들어, 이용 가능한 데이터의 형태, 사용되는 아키텍처의 형태, 데이터의 시간적 이용 가능성, 출력의 형태, 리커런트 신경망의 정확도, 전형적인 발언의 길이 등에 따라 다양한 변형예가 제공될 수 있다.
신경 언어 처리 시스템 트레이닝
도 7은, 도 6의 신경 음성 처리 시스템에 대한 예시적인 트레이닝 구성(700)을 도시한다. 도 7은, 도 6의 시각적 특징 추출기(620), 오디오 특징 추출기(630) 및 언어 모델(655)의 통신 연결을 도시한다. 한 경우에, 학습을 위해, 시각적 특징 추출기(620), 오디오 특징 추출기(630) 및 언어 모델(655) 각각의 구현은 단일 컴퓨팅 장치 또는 적절하게 연결된 컴퓨팅 장치 클러스터에 구성될 수 있다. 프로덕션 서버 장치 및 클라이언트 장치 예를 들어, 이전 예시에 개시된 장치에 대해서는 트레이닝이 수행될 필요가 없다(필요에 따라서 수행될 수는 있음). 한 경우에, 실질적인 프로세싱 리소스, 예를 들어 다수의 프로세싱 유닛(CPU, GPU, FPGA(Field Programmable Gate Array) 또는 다른 전용 프로세서 아키텍처) 및 트레이닝 데이터의 배치를 유지하기 위한 대용량 메모리 부분에 액세스할 수 있는 컴퓨팅 장치에 대해, 트레이닝이 수행될 수 있다. 특정한 경우에, 트레이닝은, 연결된 가속기 장치, 예를 들어 연결 가능한 FPGA 또는 GPU 기반 장치를 사용하여 수행될 수 있다. 시각적 특징 추출기(620) 및 오디오 특징 추출기(630)의 출력이 언어 모델(655)의 입력에 연결되고 결합된 시스템이 단일 유닛으로 트레이닝됨으로써, 도 7에 도시된 바와 같은 트레이닝을 "엔드-투-엔드" 트레이닝이라고 지칭할 수 있다.
본 예에서, 트레이닝 데이터의 세트에 대해 트레이닝이 수행된다. 트레이닝 데이터 세트는 3가지 데이터, 이미지 데이터(710), 오디오 데이터(720) 및 정답(ground truth) 텍스트 데이터(730)를 포함한다. 이미지 데이터(710) 및 오디오 데이터(720)는 환경의 기록으로부터 도출될 수 있고, 시간 경과에 따른 샘플 시퀀스를 포함할 수 있다. 트레이닝 동안, 이미지 데이터(710)는 시각적 특징 추출기(620)에 공급되고 오디오 데이터(720)는 오디오 특징 추출기(630)에 공급된다. 순방향 패스에서, 출력 텍스트 데이터(740)는 도 6을 참조하여 설명된 바와 같이 생성된다. 텍스트 데이터(740)가 정답 텍스트 데이터(730)와 비교되어서 에러 e가 결정된다. 한 경우에, 이 에러는 출력 텍스트 데이터(740) 및 정답 텍스트 데이터(730)를 입력으로서 취하는 손실 함수를 평가함으로써 결정될 수 있다. 특정한 경우에, 에러는 심볼 단위로 결정된다(예를 들어, 예측된 심볼을 정답 텍스트 데이터(730)에서 대응하는 심볼과 비교).
일단 에러 e가 결정되면, 이는 시스템 전체의 파라미터 값의 변화를 결정하는데 사용된다. 이 변화는 시스템의 각 컴포넌트를 (자동으로) 차별화하고 시스템을 통해 오류를 다시 전달하여 결정되며, 이 차이를 사용해서 각 컴포넌트의 파라미터 업데이트를 결정할 수 있다. 도 7에서, 에러 e는 언어 모델 파라미터(750)의 세트, 및 언어 모델(655)을 통해 각각의 시각적 추출기 파라미터(620) 및 오디오 추출기 파라미터(630)로 각각 전파되는 추가 에러 e' 및 e"를 업데이트하는데 사용된다. 에러 e' 및 e"는 시각적 추출기 파라미터(760) 및 오디오 추출기 파라미터(770)를 업데이트하는데 사용된다. 경사 하강은 에러 e, e' 및 e"를 감소시키는 파라미터 업데이트의 방향을 결정하는데 사용될 수 있다. 시스템이 전체적으로 트레이닝됨에 따라, 시각적 추출기 파라미터(760) 및 오디오 추출기 파라미터(770)는 언어 모델(655)의 최종 출력 에러를 감소시키는 방식으로 조정된다. 환언하면, 시각적 추출기 파라미터(760) 및 오디오 추출기 파라미터(770)는, 시각적 특징 추출기(620) 및 오디오 특징 추출기(630)가 낮은 에러 출력을 생성할 때 언어 모델(655)에 유익한 시각적 특징 텐서 및 오디오 특징 텐서를 생성하도록, 조정된다. 당업자라면, 신경망 아키텍처를 트레이닝하는 많은 다른 방법들이 존재하며 하이퍼파라미터, 손실 함수, 경사 하강 방법, 배칭(batching) 등과 같은 특징은 특정한 구현예에 기초해서 교정될 수 있다는 것을 이해할 것이다.
특정한 경우에, 시각적 특징 텐서와 오디오 특징 텐서 중 하나 이상의 길이는 트레이닝 출력에 기초하여 설정될 수 있다. 예를 들어, 초기 특징 텐서 길이가 선택될 수 있다. 트레이닝 동안 요소 값의 분석이 수행될 수 있다. 요소가 그 출력 중 사전 정의된 임계값 미만인 비율을 갖는 경우(예를 들어, 대부분 0), 이 요소는 생산 특징 텐서로부터 생략될 수 있다.
음향 모델 선택
도 8은 본 명세서에 설명된 특정 컴포넌트를 사용하는 대안의 음성 처리 시스템(800)을 도시한다. 도 6 및 이전 예시에 따라, 대안의 음성 처리 시스템(800)은 시각적 특징 추출기(820), 오디오 특징 추출기(830) 및 언어 모델(855)을 포함한다. 이들은 전술 한 바와 같이 신경망 컴포넌트를 포함할 수 있다. 시각적 특징 추출기(820)는 이미지 데이터(825)로부터 시각적 특징 텐서(840)를 생성하고 오디오 특징 추출기(830)는 오디오 데이터(835)로부터 오디오 특징 텐서(845)를 생성한다. 시각적 특징 추출기(820) 및 오디오 특징 추출기(830)는 클라이언트 장치의 일부를 형성할 수 있고, 언어 모델(855)은 서버 장치(850)의 일부를 형성할 수 있다. 유사한 특징부를 지칭하는데 유사한 참조 번호가 사용되며, 도 6과 관련하여 전술한 변형이 도 8의 구성에도 적용될 수 있다.
도 8의 대안의 음성 처리 시스템(800)은 언어 모델(855)이 다수의 서브 컴포넌트를 포함한다는 점에서 도 6의 음성 처리 시스템(600)과 차이가 있다. 이 예에서, 이들은 음향 모델 구성 데이터베이스(862), 음향 모델 선택기(864) 및 음향 모델 인스턴스(866)를 포함한다. 음향 모델 구성 데이터베이스(862)는 음향 모델을 구성하기 위한 다수의 파라미터를 저장한다. 이 예에서, 음향 모델 인스턴스(866)는 음향 모델 구성 데이터베이스(862)로부터의 특정 파라미터 값 세트를 사용해서 인스턴스화되는(예를 들어, 구성 또는 교정) 일반적인 음향 모델을 포함할 수 있다. 예를 들어, 음향 모델 구성 데이터베이스(862)는 복수의 음향 모델 구성을 저장할 수 있다. 각각의 구성은 음향 모델의 특정 분류와 관련될 수 있다.
기본 경우에, 2개의 음향 모델 구성이 있을 수 있다. 예를 들어, 이들은 "실내" 음향 모델 구성 및 "실외" 음향 모델 구성과 관련될 수 있다. 음향 모델 선택기(864)는 시각적 특징 추출기(820) 및 오디오 특징 추출기(830)로부터 시각적 특징 텐서(840) 및 오디오 특징 텐서(845)를 수신한다. 음향 모델 선택기(864)는, 입력으로서 시각적 특징 텐서(840) 및 오디오 특징 텐서(845)를 수신하고 분류 라벨을 출력하도록 구성된 분류기를 포함할 수 있다. 음향 모델 선택기(864)의 출력은, 각각의 가능한 음향 모델 구성을 위한 요소를 갖는 벡터 형태의 텐서를 포함할 수 있다. 이 경우, 음향 모델 선택기(864)의 벡터 출력은 다양한 음향 모델 구성의 확률(예를 들어, 0과 1 사이의 값)을 나타낼 수 있다. 기본 경우에, 벡터 즉 [0.6, 0.4]는 제 1 음향 모델 구성(예를 들어, "실내")이 60% 확률 또는 가중치를 가질 것이며 제 2 음향 모델 구성(예를 들어, "실외")이 40% 확률 또는 가중치를 가질 것임을 나타낸다. 사용할 음향 모델 구성을 결정하기 위해서, 확률이 샘플링되거나 또는 가장 큰 확률이 선택될 수 있다. 선택된 구성에 관한 파라미터 값은 음향 모델 구성 데이터베이스(862)로부터 취득될 수 있으며, 음향 모델 인스턴스(866)를 인스턴스화하는데 사용될 수 있다. 상기 예에서, 제 1 음향 모델 구성은 확률에 기초할 가능성이 더 높고, 따라서 음향 모델 인스턴스는 "실내" 음향 모델로 설정될 가능성이 높다. 다른 예에서, 임의의 수의 상이한 분류 및 대응하는 구성이 있을 수 있다(예를 들어, 2개 초과).
도 8에서, 예를 들어 음향 모델 구성 데이터베이스로부터 취득된 구성을 사용해서 음향 모델 선택기(864)에 의해 구성된, 음향 모델 인스턴스(866)는 또한 예를 들어 클라이언트 장치(810)로부터 오디오 데이터(835)를 수신한다. 음향 모델 인스턴스(866)는 오디오 데이터(835)와 관련된 발언(예를 들어, 오디오 데이터(835) 내에 포함됨)을 분석하는데 사용할 음소 데이터(870)를 생성하도록 구성된다. 음소 데이터(870)는 예를 들어 사전 정의된 알파벳 또는 사전으로부터의 음소 심볼의 시퀀스를 포함할 수 있다. 따라서, 도 8의 예에서, 음향 모델 선택기(864)는 오디오 특징 텐서와 시각적 특징 텐서의 조인트 세트에 기초해서 데이터베이스(862)로부터 음향 모델 구성을 선택하고, 음향 모델 구성은 오디오 데이터(835)를 처리하기 위해 음향 모델 인스턴스(866)를 인스턴스화하는데 사용된다.
한 경우, 시각적 특징 추출기(820), 오디오 특징 추출기(830) 및 음향 모델 선택기(864)는 신경망 아키텍처를 포함할 수 있다. 이러한 특징은 도 7에 따라 조합하여 트레이닝될 수 있다. 예를 들어, 이 경우의 트레이닝 데이터는 이미지 데이터(825), 오디오 데이터(835) 및 정답 음향 모델 선택(예를 들어, 음향 모델 선택기에 의해 출력된 분류)의 3가지를 포함할 수 있다. 이 경우, 시각적 특징 텐서(840) 및 오디오 특징 텐서(845)는 도 6의 시스템(600)보다 작은 크기일 수 있는데, 이들 텐서가 완전한 시퀀스 출력을 생성하기보다는 정확한 음향 모델을 선택하기에 충분한 정보만 제공하면 되기 때문이다. 한 경우에, 시각적 특징 텐서(840) 및 오디오 특징 텐서(845)는 예를 들어, 1 내지 32개의 요소를 가진, 수 비트 또는 바이트 크기일 수 있으며, 여기서 이 요소는 2진 또는 낮은(< 8) 비트 값과 같은 제한된 범위를 가질 수 있다. 따라서, 이 구현예의 형태는, 대역폭이 제한되고 및/또는 클라이언트 장치(810)가 제한된 처리 리소스만을 갖는 경우에, 적합할 수 있다.
한 경우에, 음향 모델 인스턴스(866)는 비-신경 모델을 포함할 수 있다. 예를 들어, 음향 모델 인스턴스(866)는 통계 모델을 포함할 수 있다. 통계 모델은 심볼 빈도(예를 들어, n-그램(n-grams)) 및/또는 확률을 사용할 수 있다. 한 경우에, 통계 모델은 베이지안 네트워크 또는 분류기와 같은 베이지안 모델을 포함할 수 있다. 이 경우에, 음향 모델 구성은 상이한 환경에서 측정된 심볼 주파수의 특정 세트 및/또는 사전 확률을 포함할 수 있다. 따라서, 음향 모델 선택기(864)는 시각적 정보 및 오디오 정보 모두에 기초해서 발언에 대한 특정 환경이 결정될 수 있게 하며, 이는 음성 데이터(835)를 자체적으로 사용해서 음소 시퀀스(870)를 생성하는 것보다 개선시킬 수 있다. 한 경우, 오디오 특징 텐서(845)는 음향 모델 인스턴스(866)를 구성하는데 그 환경에서의 노이즈 소스가 사용될 수 있게 한다. 비교 예에서, 이러한 노이즈 소스는 음성 처리 동안(예를 들어, 도 8에서 오디오 데이터(835)로부터 음향 모델 인스턴스(866)로 이어지는 파이프 라인 내에서) 필터링될 수 있지만, 환경의 노이즈 소스는, 음소 생성에 영향을 미치는 전역 파라미터(예를 들어, 실내/실외, 소란함/조용함, 바람/바람없음)를 결정하는 데 유용할 수 있다.
시스템(800)의 변형에에서, 시각적 특징 추출기(820), 오디오 특징 추출기(830), 음향 모델 선택기(864) 및 음향 모델 인스턴스(866)는 신경망 아키텍처를 포함할 수 있다. 이 경우에, 음향 모델 구성 데이터베이스(862)는 생략될 수 있고, 음향 모델 선택기(864)는 인스턴스를 구성하기 위해 음향 모델 인스턴스(866)에 입력되는 텐서를 공급할 수 있다. 이 경우, 트레이닝 데이터는, 이미지 데이터(825), 오디오 데이터(835) 및 음소 출력의 정답 세트(870)로부터 구성될 수 있다. 결합된 시스템의 트레이닝은 다시 도 7에 도시된 트레이닝과 유사할 수 있다.
대안의 예시
특정한 경우에, 전술한 언어 모델의 측면들은 음성 처리 장치로서 구현될 수도 있다. 이 경우, 음성 처리 장치는 음성 데이터를 분석하는데 사용하기 위한 음소 데이터를 생성하는 음향 모델 및 이 음향 모델로부터의 음소 데이터를 사용해서 음성 데이터의 표기를 생성하는 언어 모델을 포함할 수 있다. 음향 모델은, 예를 들어 구성된 음향 모델 인스턴스(866)에 의해 구현되거나 및/또는 도 4c의 블록(476)에 적용되는 전술한 바와 같은 음향 모델을 포함할 수 있다. 음향 모델은 통계 모델 또는 신경망 아키텍처를 포함할 수 있다. 언어 모델은 또한, 예를 들어, 도 4c의 블록 478에서 적용된, 전술한 바와 같은 언어 모델을 포함할 수 있다. 표기는 텍스트 기반 출력을 포함할 수 있다.
음향 모델 및 언어 모델에 더해서, 음성 처리 장치는 또한 시각적 정황 표시자를 포함할 수 있다. 시각적 정황 표시자는 음향 모델 및 언어 모델 중 적어도 하나에 통신 가능하게 연결된다. 특정한 경우에, 시각적 정황 표시자는 음향 모델과 언어 모델 모두에 연결될 수 있으며; 다른 경우에, 시각적 정황 표시자는 음향 모델 및 언어 모델 중 하나에 만 연결될 수도 있다. 시각적 정황 표시자는 음성 데이터가 캡처되는 시각적 환경의 표현을 제공하도록 구성된다. 예를 들어, 시각적 정황 표시자는 전술한 바와 같은 시각적 특징 추출기를 포함할 수 있다. 한 경우에, 시각적 정황 표시자는 음향 모델 및 언어 모델과 동일한 장치 내에, 예를 들어 서버 컴퓨팅 장치 내에 또는 도 3a의 제어 유닛(310)과 같은 단일 장치 내에 위치될 수 있다. 특정한 경우에, 음성 처리 장치는 본 명세서에 설명된 바와 같이 클라이언트 장치의 일부를 형성할 수 있으며, 예를 들어 설명된 바와 같은 서버 측 기능이 클라이언트 측으로 이동될 수 있다. 다른 분산 구성을 포함하는 다른 조합이 가능하다.
시각적 정황 표시자는 음향 환경 및 언어 모델 중 적어도 하나에 시각적 환경의 표현을 제공하도록 구성된다. 이 표현은 본 명세서에 기술된 시각적 특징 텐서를 포함할 수 있고, 예를 들어, 시각적 정황 표시자는 도 5의 시각적 특징 추출기(500)와 유사한 구성을 포함할 수 있다. 본 예에서, 시각적 정황 표시자는 음향 모델 선택기(864)와 유사한 방식으로 기능할 수 있으며, 예를 들어 적어도 음향 모델의 구성을 설정한다. 일반적으로, 이 예에서, 음향 모델 및 언어 모델 중 적어도 하나는 시각적 환경의 표현에 기초해서 차등적으로 구성된다. 여기서, "차등적으로"라는 용어는, 상이한 표현이 제공될 때 음향 모델 및/또는 언어 모델의 처리가 상이할 수 있고, 또한 표현이 제공되지 않은 경우와는 상이할 수 있다는 것을 나타내는 데 사용된다. 한 경우에, 음성 처리는 제공된 표현에 기초하여 음향 모델과 언어 모델 중 하나 이상 내에서 개선된다.
한 경우에, 표현은 본 명세서에 개시된 시각적 특징 텐서를 포함할 수 있다. 이것은 음향 모델 및 언어 모델의 구성을 설정하기 위한 입력으로 사용될 수 있다. 음향 모델 및 언어 모델 중 적어도 하나가 신경망 아키텍처를 포함하는 경우, 시각적 특징 텐서는 신경망 아키텍처에 대한 입력의 일부로서 사용될 수도 있고 및/또는 신경망 아키텍처의 상태를 설정하는데 사용될 수도 있다. 예를 들어, 이 표현이 숫자 값의 벡터를 포함하는 경우, 이는 오디오 기반 입력에 연쇄될 수 있고 및/또는 리커런트 신경망 아키텍처의 히든 상태를 설정하는데 사용될 수 있다. 이 경우에, 음성 처리 장치는 시각적 특징 추출기(620)와 도 6의 언어 모델(655)의 조합과 유사한 것으로 보일 수 있는데, 예를 들어, 음성 데이터를 제공하는 오디오 데이터가 도 8에 따라 제공된다.
한 경우에, 음성 처리 장치는, 예를 들어, 음성이 생성되는 방식의 특정 모델에 기초하여 음향 모델 및 언어 모델 중 하나 이상을 구성하기 위한 발음 모델을 더 포함할 수 있다. 이 발음 모델은 특정 방언 및 악센트, 및/또는 시간이 지남에 따라서 음성이 학습된 특정 사용자에 대한 음성 처리를 적응시킬 수 있다. 특정한 경우에, 예를 들어 시각적 특징 텐서와 같은 표현도 발음 모델을 구성하는데 사용될 수 있으며; 다른 경우에, 발음 모델은 이 표현에 기초하여 구성되지 않을 수 있다.
한 경우에, 시각적 정황 표시자는 원격 시각적 특징 추출기로부터 이 표현을 수신할 수 있다. 이 경우, 시각적 정황 표시자는 음향 모델 및 언어 모델 중 하나 이상을 구성하는 데 사용하기 전에 이 표현을 처리할 수도 있고 처리하지 않을 수도 있다. 한 경우에, 시각적 정황 표시자는 이미지 데이터 또는 하나 이상의 이미지로부터 도출된 데이터를 수신할 수 있다. 한 경우에, 시각적 정황 표시자는 음향 모델과 언어 모델 중 하나 이상과 함께 조인트 트레이닝되거나 구성될 수 있다. 다른 경우에, 시각적 정황 표시자는 음향 모델과 언어 모델 중 하나 이상과는 독립적으로 트레이닝되거나 구성될 수 있으며, 예를 들어, 시각적 정황 표시자를 트레이닝시킬 때 음향 모델 및/또는 언어 모델의 파라미터가 고정될 수 있고, 시각적 정황 표시자의 파라미터는 음향 모델 및/또는 언어 모델을 트레이닝시킬 때 고정될 수 있다.
음성 처리 방법의 예
도 9a는 클라이언트 장치에서 음성을 처리하는 예시적인 방법(900)을 도시한다. 방법(900)은 사용자로부터의 발언과 관련된 오디오 데이터가 캡처되는 블록(905)에서 시작한다. 이것은 도 3a 및 3b에서 장치(330, 370 또는 380)와 같은 하나 이상의 마이크로부터 데이터를 캡처하는 것을 포함할 수 있다. 오디오 데이터는 발언 자체뿐만 아니라 발언 전 또는 후에 기록의 일부를 포함할 수 있다. 블록(910)에서, 사용자의 환경을 특징짓는 이미지 데이터가 캡처된다. 예를 들어, 이미지 데이터는 도 3a 및 3b의 315, 320, 325, 365 및 375 중 하나 이상과 같은 카메라 장치로부터 캡처될 수 있다. 한 경우에, 이미지 데이터는 클라이언트 장치 외부의 카메라로부터 데이터를 수신함으로써 캡처될 수 있다.
블록(915)에서, 방법은 시각적 특징 추출기를 사용하여 이미지 데이터의 하나 이상의 프레임으로부터, 시각적 특징 텐서의 세트를 추출하는 단계를 포함한다. 시각적 특징 추출기는 클라이언트 장치의 일부일 수 있다. 이미지 데이터의 프레임은 시각적 특징 텐서 세트보다 큰 정보 컨텐츠를 가지며, 예를 들어, 더 많은 비트의 정보를 포함할 수 있다. 시각적 특징 텐서의 세트는 하나의 시각적 특징 텐서를 포함할 수도 있고 혹은 시각적 특징 텐서의 시퀀스를 포함할 수도 있다. 예를 들어, 전자는 도 8의 시스템(800)에 사용될 수 있고 후자는 도 6의 시스템(600)에 사용될 수 있다. 블록(920)에서, 클라이언트 장치에서 오디오 특징 추출기를 사용하여 오디오 데이터로부터 오디오 특징 텐서의 세트를 추출한다. 다시, 오디오 특징 텐서의 세트는 하나의 오디오 특징 텐서를 포함할 수도 있고 혹은 오디오 특징 텐서의 시퀀스를 포함할 수도 있으며, 전자는 도 8의 시스템(800)에 사용되고 후자는 도 6의 시스템(600)에 사용된다.
블록(925)에서, 오디오 특징 텐서 및 시각적 특징 텐서의 세트가 서버 장치로 전송된다. 이것은 도 1에 도시된 서버 장치(120) 또는 도 6 및 도 8에 도시된 서버 측 컴포넌트(650, 850)를 포함할 수 있다. 서버 장치는 적어도 시각적 특징 텐서 및 오디오 특징 텐서를 언어 모델에 공급하도록 구성되며, 여기서 언어 모델은 발언을 분석하는 데 사용할 수 있는 언어 기능의 세트를 결정하도록 구성된다. 언어 모델은 음향 모델, 발음 모델 및 언어 모델 중 하나 이상을 포함할 수 있으며, 언어 특징은 음소 시퀀스, 문자 시퀀스, 단어 부분 시퀀스 또는 단어 시퀀스 중 하나 이상을 포함할 수 있다. 이 방법에서, 시각적 특징 추출기와 오디오 특징 추출기는 예를 들어, 도 7을 참조하여 설명된 바와 같이 언어 모델과 함께 조인트 구성된다.
도 9b는 서버 장치에서 음성을 처리하는 방법(950)을 도시한다. 이 방법은 방법(900) 이후에 수행될 수도 있고 및/또는 다른 시각적 특징 및 오디오 특징 생성 방법에 따라 수행될 수도 있다. 블록 955에서, 오디오 및 시각적 특징 텐서의 세트가 클라이언트 장치로부터 수신된다. 시각적 특징 텐서는 도 9a의 블록(915)에 따라 생성될 수 있는데, 즉 클라이언트 장치에 의해 캡처된 이미지 데이터의 프레임에 기초하여 클라이언트 장치의 시각적 특징 추출기에 의해 생성될 수 있으며, 여기서 이미지 데이터의 프레임은 클라이언트 장치의 환경을 특징짓는다. 오디오 특징 텐서는 도 9a의 블록(920)에 따라 생성될 수 있는데, 즉 사용자의 발언과 관련하여 클라이언트 장치에 의해 캡처된 대응하는 오디오 데이터에 기초해서, 클라이언트 장치의 오디오 특징 추출기에 의해 생성될 수 있다.
블록(960)에서, 시각적 특징 텐서의 세트가 언어 모델에 대한 입력으로서 제공된다. 언어 모델은, 예를 들어, 도 1의 언어 모델(124), 도 6의 언어 모델(655) 또는 도 8의 언어 모델(855)을 포함할 수 있다. 언어 모델은 발언을 분석할 수 있는 언어 특징의 세트를 결정하도록 구성되고, 여기서 시각적 특징 추출기 및 오디오 특징 추출기는 언어 모델과 함께 조인트해서 구성된다. 블록(965)에서, 언어 모델의 출력을 사용하여 발언이 분석된다. 이것은 발언과 관련된 명령어 및/또는 명령어 데이터를 결정하는 것을 포함할 수 있다. 결정되면, 이 방법은 명령어 데이터에 따라서 명령어의 실행을 지시하는 단계를 더 포함할 수 있다. 이로 인해 클라이언트 장치로 전송될 수 있는 응답 데이터가 생성될 수 있다. 클라이언트 장치는 서버 장치로부터 발언에 대한 응답을 수신하고, 대응하는 응답, 예를 들어 명령어 실행의 출력을 사용자에게 제공할 수 있다.
한 경우에, 서버 장치에서의 방법은, 수신된 오디오 특징 텐서 및 시각적 특징 텐서의 세트에 기초해서 음향 모델 구성을 선택하는 단계, 오디오 데이터를 수신하는 단계 및 음향 모델 구성에 따라 구성된 음향 모델을 오디오 데이터에 적용해서 발언에 대응하는 음소 데이터를 결정하는 단계를 더 포함한다. 이것은 예를 들어 도 8의 언어 모델(855)을 사용해서 수행될 수 있다. 따라서 발언은 음소 데이터를 사용하여 분석될 수 있다. 한 경우에, 음소 데이터는 발언을 분석하기 위해 추가 언어 처리 파이프 라인에 입력될 수 있으며, 예를 들어 음소 데이터는 언어 표기로 처리될 수 있으며, 이것은 발언을 분석하는데 사용될 수 있다.
특정한 경우에, 언어 모델은, 예를 들어 시각적 특징 텐서 및 오디오 특징 텐서 중 하나 이상으로부터 도출된 것과 같은, 환경 정보에 대한 통계적 언어 모델 및 별도의 "메타" 언어 모델을 포함할 수 있다. 이 경우에, 메타 언어 모델은 메타 모델의 출력에 기초해서 통계적 언어 모델에 의해 출력되는 대안의 가설을 리스코어(rescore)하도록 구성될 수 있다.
특정한 경우에, 언어 모델은 예를 들어 오디오 데이터, 오디오 특징 텐서 및 시각적 특징 텐서 중 하나 이상을 수신하는 다수의 모델을 포함할 수 있다. 이 경우에, 언어 모델은 표기와 같은 언어 특징을 결정하는데 보팅(voting)을 사용하는 앙상블 모델을 포함할 수 있다. 특정한 경우에, 음향 모델 및/또는 언어 모델은 복수의 후보 심볼 시퀀스를 출력할 수 있다. 이러한 경우에, 오디오 특징 텐서와 시각적 특징 텐서 중 하나 이상을 수신하는 자연 언어 처리의 추가 단계는, 다양한 시퀀스 가설을 처리하고 출력으로서 각 시퀀스에 대한 스코어를 제공하도록 구성될 수 있다.
조인트 구성 방법
도 10은 일례에 따른 음성을 처리하는 시스템을 구성하는 방법(1000)을 도시한다. 블록(1010)에서, 이 방법은 오디오 특징 추출기와 시각적 특징 추출기를 언어 모델에 통신 가능하게 연결해서 오디오 특징 모델을 얻는 단계를 포함한다. 예를 들어, 이것은 도 7에 도시된 엔드-투-엔드 시스템을 구성하는 단계를 포함할 수 있다. 도 7에 도시된 바와 같이, 오디오 특징 추출기와 시각적 특징 추출기 및 언어 모델은 각각의 모델 파라미터의 세트, 예를 들어 가중치 세트 및 바이어스에 의해 파라미터화될 수 있다. 블록 1020에서, 이 방법은 시간적으로 상관된 오디오 데이터와 이미지 데이터 및 정답 언어 특징을 포함하는 트레이닝 데이터를 획득하는 단계를 포함한다. 이 경우, 시간적으로 상관된다는 것은 오디오 데이터 및 이미지 데이터가 모두 사용자 발언의 주어진 시간 윈도우 내에서 캡처된 것일 수 있다. 특정한 경우에, 이미지 데이터 및 오디오 데이터는 총괄적으로 비디오 데이터를 포함할 수 있으며, 여기서 오디오 데이터는 비디오 데이터에 대한 하나 이상의 오디오 채널을 형성한다. 정답 언어 특징은 하나 이상의 음소, 문자, 단어 부분 및 단어의 시퀀스를 포함할 수 있다. 한 경우에, 정답 언어 특징은 발언의 텍스트 표기의 형태로 제공될 수 있다. 블록 1030에서, 방법은, 각각의 모델 파라미터 세트에 대한 트레이닝된 값을 결정하기 위해 트레이닝 데이터를 사용해서 오디오 특징 추출기와 시각적 특징 추출기 및 언어 모델을 조인트해서 구성하는 단계를 포함하며, 이는 음성 인식 모델을 통해 언어 모델의 에러를 역 전파하는(back propagating) 것을 포함한다. 이것은 도 7에 도시된 프로세스를 수행하는 것을 포함할 수 있다. 블록(1030)은 손실 기능을 정의하고 신경망 기능의 라이브러리에 제공되는 트레이닝 루틴을 구현하는 것을 포함할 수 있다.
서버 장치 예
도 11은, 도 1의 서버 장치(120)를 구현할 수 있거나 또는 도 9b 및 도 10의 방법 중 하나 이상을 수행할 수 있는 예시적인 서버 장치(1100)를 도시한다. 서버 장치는 랙-장착형(rack-mounted) 서버 블레이드 다중 프로세서 서버 시스템을 포함할 수 있다. 이는 소프트웨어를 병렬로 실행하는 다수의 네트워크-접속된 컴퓨터 프로세서를 포함할 수 있다. 서버 장치(110)는 컴퓨터 프로세서(CPU) 코어(1110)의 멀티코어 클러스터 및 그래픽 프로세서(GPU) 코어(1120)의 멀티코어 클러스터를 포함한다. 프로세서는 프로그램 코드 및 데이터 저장을 위해서 보드-레벨 상호접속부(1130)를 통해 랜덤 액세스 메모리(RAM) 장치(1140)에 접속된다. 서버 시스템(1100)은 또한, 프로세서가 인터넷에 액세스할 수 있도록 네트워크 인터페이스(1150)를 포함한다. 인터페이스(1130)를 통해 RAM 장치에 저장된 명령어를 실행함으로써, CPU(1110) 및 GPU(1120)는 본 명세서에 개시된 바와 같은 방법의 단계를 수행할 수 있다. 특정한 경우에, 본 명세서에 기술된 클라이언트 장치는 컴포넌트의 유사한 일반적인 구성을 가질 수 있지만, 일부 경우에는 더 적은 컴퓨팅 리소스를 가질 수도 있고 전용 그래픽 프로세서(1120)를 갖지 않을 수도 있다. 클라이언트 장치는 서버 장치(1100)와 유사한 방식으로 본 명세서에 기술된 방법의 단계를 수행하는 하나 이상의 CPU를 가질 수 있다.
예시적인 시스템의 구성
도 12는 음성 처리 시스템을 구성하는 예시적인 동작 세트(1200)를 도시한 시퀀스도이다. 동작 세트(1200)는 도 10의 방법(1000)의 확장으로서 보여질 수 있다. 동작 세트(1200)는 트레이닝 장치(1202), 서버 장치(1204) 및 하나 이상의 클라이언트 장치의 세트를 포함하는 분산형 컴퓨팅 시스템에 걸쳐서 일어난다. 예를 들어, 트레이닝 장치(1202) 및/또는 서버 장치(1204)는 도 11에 도시된 것과 같은 컴퓨팅 시스템을 포함할 수 있고, 클라이언트 장치(1206)는 도 1, 2, 3a 및 3b에 도시된 것과 같은 클라이언트 장치를 포함할 수 있다.
블록(1210 내지 1220)은 트레이닝 장치(1202)에서 수행되며 도 10의 동작과 유사하다. 블록(1210)에서, 오디오 특징 추출기 및 시각적 특징 추출기는 언어 모델에 통신 가능하게 연결된다. 이것은, 메모리에 로딩되고 하나 이상의 프로세서에서 실행되는 컴퓨터 프로그램 코드 내에 정의된 모델 클래스를 로딩하고 인스턴스화하는 것을 포함할 수 있다. 한 경우에, 이것은 오디오 특징 추출기 및 시각적 특징 추출기의 출력과 언어 모델의 대응하는 입력 사이의 연결을 정의하는 것을 포함할 수 있다. 연결은 컴퓨터 프로그램 코드에 및/또는 그래픽 개발 환경을 통해 정의될 수 있다. 블록 1215에서, 트레이닝 데이터가 획득된다. 이것은, 데이터베이스 또는 하나 이상의 컴퓨터 파일로부터 트레이닝 데이터의 하나 이상의 배치(batch)를 로딩하는 것을 포함할 수 있다. 트레이닝 데이터는 오디오 특징 추출기 및 시각적 특징 추출기에 대한 입력 및 언어 모델에 대한 대응하는 정답 출력을 포함한다. 트레이닝 데이터는(audio_samples, video_frames, text_output) 또는(audio_samples, video_frames, phoneme_output)으로 구성된 3가지를 포함할 수 있다. 트레이닝 데이터는 그대로 사용될 수도 있고 혹은 전처리될 수도 있다. 예를 들어, 텍스트 또는 음소 출력은 음소, 문자 또는 단어와 같은, 심볼의 시퀀스로 분할될 수 있다. 오디오 샘플이 원시 오디오 데이터를 포함하는 경우, 이들은 클라이언트 장치에서 오디오 특징 추출기를 적용하기 전에, 프로덕션 오디오 처리 파이프 라인에 따라 전처리될 수 있다. 유사하게, 비디오 프레임이 원시 이미지 데이터를 포함하는 경우, 이들은 클라이언트 장치에서 시각적 특징 추출기를 적용하기 전에, 프로덕션 이미지 처리 파이프 라인에 따라 전처리될 수 있다.
블록(1220)에서, 블록(1210)에서 정의된 연결된 시스템은 블록(1215)에서 획득된 트레이닝 데이터를 사용하여 조인트해서 트레이닝된다. 이는, 트레이닝 데이터로부터 개별 데이터 샘플을 취득하고, 입력을 오디오 특징 추출기 및 시각적 특징 추출기에 적용하며, 언어 모델의 출력과 트레이닝 데이터로부터의 정답 값의 출력의 비교 결과에 기초해서 손실 함수 값을 계산하는 스크립트 및/또는 사전 정의된 트레이닝 절차를 실행하는 것을 포함할 수 있다. 다른 경우에, 결합된 시스템의 형태 및 이용 가능한 트레이닝 데이터에 따라 다양한 트레이닝 접근법이 적용될 수 있는데, 예를 들어 트레이닝은 지도형(supervised)일 수도 있고 자율형(unsupervised)일 수도 있으며(예를 들어, 후자는 정답 값 대신 클러스터링을 사용한다). 블록(1220)에서의 조인트 트레이닝의 출력은, 예를 들어 도 7에 도시된 바와 같이 오디오 특징 추출기, 시각적 특징 추출기 및 언어 모델 각각에 대한 트레이닝된 파라미터의 세트를 포함한다. 이들 트레이닝된 파라미터는 하나 이상의 가중치 및 바이어스의 세트에 대한 값(예를 들어, 정수 또는 부동 소수점 값)을 포함할 수 있다. 한 경우에, 트레이닝된 파라미터는 하나 이상의 텐서, 예를 들어 하나 이상의 행렬(숫자 어레이) 또는 벡터로 정의될 수 있다. 이들은 구성 파일에 저장될 수 있다.
블록 1225에서, 언어 모델에 대한 트레이닝된 파라미터는 서버 장치(1204)로 통신된다. 이 예에 하나의 서버 장치가 도시되어 있지만, 다른 예에서, 예를 들어 병렬 서버 장치 구현을 이용한 부하-밸런싱된 인프라스트럭쳐를 구현하는 경우에는, 다수의 서버 장치가 있을 수 있다. 블록(1230)에서, 트레이닝된 파라미터는 서버 장치(1204)에서 수신된다. 트레이닝된 파라미터는 예를 들어, 파일 전송 프로토콜을 사용해서 하나 이상의 구성 파일을 전송함으로써 통신될 수 있고 및/또는 로컬 상호 접속을 통해(예를 들어, 물리 환경 및/또는 가상 환경에 트레이닝 장치(1202) 및 서버 장치(1204)가 함께 위치되는 경우) 전송될 수 있다. 블록 1235에서, 트레이닝된 파라미터는 언어 모델을 인스턴스화하기 위해 서버 장치(1204)에 의해 로딩된다. 예를 들어, 이것은 트레이닝된 파라미터 내의 하나 이상의 가중치 및 바이어스 세트에 대한 값에 따라서 신경망 아키텍처를 구성하는 것을 포함할 수 있다. 블록(1235)은, 클라이언트 장치(1206)로부터의 데이터 처리를 시작하기 위해서 서버 장치(1204)가 활성화될 때, 수행될 수 있다.
블록(1240)에서, 블록(1225 내지 1235)과 유사한 프로세스가 하나 이상의 클라이언트 장치(1206)에 대해 반복된다. 블록(1240)에서, 오디오 특징 추출기 및 시각적 특징 추출기에 대한 트레이닝된 값은 하나 이상의 클라이언트 장치(1206)에 전달된다. 이들이 모든 클라이언트 장치(1206)에 대해 동시에 발생할 필요는 없으며, 예를 들어, 트레이닝된 파라미터는 컴퓨터 프로그램 코드 및/또는 소프트웨어 업데이트의 형태로 클라이언트 장치에 통신되는 및/또는 클라이언트 장치에서 실행되는 에이전트에 의해 다운로딩 가능한 데이터에 매립될 수도 있다. 블록 1245에서, 트레이닝된 파라미터 값은 하나 이상의 클라이언트 장치(1206)에 의해 수신된다. 블록 1250에서, 오디오 특징 추출기에 대한 트레이닝된 파라미터는 오디오 특징 추출기를 구성하기 위해 사용되는데, 예를 들어 가중치 및 바이어스의 하나 이상의 세트에 대한 값은 리커런트 신경망 아키텍처를 인스턴스화하는데 사용될 수 있다. 블록 1255에서, 시각적 특징 추출기에 대한 트레이닝된 파라미터는 시각적 특징 추출기를 구성하는데 사용되며, 예를 들어 가중치 및 바이어스의 하나 이상의 세트에 대한 값은 컨벌루션 신경망 아키텍처를 인스턴스화하는데 사용될 수 있다. 블록(1250, 1255)에 후속해서, 클라이언트 장치(1206)는 예를 들어, 도 4a 내지 4c의 동작에 따라서, 서버 장치(1204)에 의한 처리를 위해 오디오 및 시각적 특징 텐서를 생성할 준비를 한다.
도 12에서, 블록(1225 내지 1255)는 제조시에 수행될 수 있다. 이 경우에, 블록(1225) 또는 블록(1240)에서의 전송은 예를 들어, 공장 환경 내에서 하나 이상의 연결된 데이터 인터페이스(예를 들어, 범용 직렬 버스)를 통해 데이터를 전송하는 것을 포함할 수 있다.
한 경우에, 도 10의 블록(1030) 또는 도 12의 블록(1220)에서, 이미지 특징 텐서와 시각적 특징 텐서 중 하나 이상이, 언어 모델에 입력되기 전에, 트레이닝 동안 가중될 수 있다. 예를 들어, "드롭아웃(dropout)" 방식과 유사한 방식으로, 시각적 특징 텐서로부터의 입력은, 특정 샘플에 대해 및/또는 샘플의 특정하게 랜덤하게 선택된 비율에 대해(텐서 내의 요소의 정해진 비율에 대해 또는 전체로) 제로화될 수 있다. 이것은 시각적 특징 텐서가 존재하지 않는 경우에도 여전히 유용한 출력을 생성하는 변환을 학습하는 데 도움이 될 수 있다. 이것은 이미지 데이터를 사용할 수 없는 경우에 유용하다(예를 들어, 사용자가 카메라를 비활성화하고 및/또는 카메라가 없거나 작동하지 않을 수 있음).
특정한 경우에, 블록(1210)은 트레이닝된 시각 분류 모델을 획득하는 것 및 구성된 시각적 분류 모델의 하나 이상의 분류 계층을 제거해서 트레이닝된 시각적 분류 모델에 대한 새로운 출력 계층을 생성하는 것을 포함할 수 있다. 예를 들어, 이것은 사전 구축된 시각적 분류 모델 및 그 모델에 대한 트레이닝된 파라미터 세트를 획득하는 것을 포함할 수 있다. 시각적 분류 모델은 ImageNet과 같은 공개 데이터 세트를 사용하여 트레이닝될 수 있다. 하나 이상의 분류 계층을 제거하는 것은, 분류 확률 및 레이트 피드-포워드 및/또는 컨벌루션 신경망 스테이지를 출력하는데 사용되는 하나 이상의 SoftMax 계층을 제거하는 것을 포함할 수 있다. 분류 계층은 예를 들어, 코드 편집기 및/또는 그래픽 개발 환경을 통해 시각적 분류 모델을 정의하는 컴퓨터 프로그램 코드를 편집함으로써 제거될 수 있다. 하나 이상의 분류 계층이 제거되면, 블록(1210)은 하나 이상의 계층을 포함하는 추가 신경 네트워크 아키텍처를 새로운 출력 계층에 통신 가능하게 연결시켜서 시각적 특징 추출기를 획득하는 것을 더 포함할 수 있다. 이 경우, 추가의 신경망 아키텍처의 출력의 차원수는 새로운 출력 계층의 차원수보다 작으며 즉, 추가의 신경망 아키텍처는 자동 인코더와 유사한 방식으로 시각적 특징 텐서로서 사용하기 위해 압축된 "코드"를 생성하는 역할을 한다.
본 명세서에 개시된 특정한 예시는 신경망 모델과 관련하여 설명되었다. 다른 경우에, 하나 이상의 통계 모델이 사용될 수도 있고, 및/또는 신경망과 통계 모델의 혼합이 사용될 수 있다. 언어 모델이 통계 모델을 포함하는 예에서, 언어 모델을 조인트해서 구성하는 것은 예를 들어 신경망 모델의 가중치 및/또는 바이어스와 유사한 방식으로, 언어 모델에 대한 확률 값 및/또는 빈도 값을 로딩하는 것을 포함할 수 있다.
예시적인 구현예
자동 음성 인식을 포함하는 음성 처리에 관한 특정한 예시가 설명된다. 특정한 예시는 특정한 발성 언어의 처리와 관련된다. 유사하게, 다른 언어 또는 언어의 조합에 대해서도 다양한 예가 동작한다. 특정한 예시는 언어외적 환경 정보를 포함함으로써 음성 처리의 정확성과 무결성을 향상시킨다. 언어외적 환경 정보가 사용되어서 언어 모델을 개선할 수 있다. 언어 모델은 음향 모델, 발음 모델 및 언어 모델 중 하나 이상을 포함할 수 있다.
특정 예에서, 언어외적 환경 정보는 환경의 시각적 표현, 예를 들어 이미지 데이터로부터 도출된 표현을 포함한다. 특정 예에서, 언어외적 환경 정보는 환경의 음향 표현, 예를 들어 처리 할 발언을 표현할 수도 있고 표현하지 않을 수 있는 오디오 데이터로부터 도출된 표현을 포함한다. 후자의 경우, 발언의 음향 표현에 추가해서 환경의 음향 표현이 제공될 수 있다. 특정 예는 음성 처리의 정확성을 향상시키기 위해 시각적 특징과 음향 특징 사이의 상관을 이용할 수 있다. 예를 들어, 음향 모델에서, 군중들의 이미지는 "웅성거림(babble)" 배경 노이즈와 상관될 수 있고, 반면 실외 장면의 이미지는 바람 노이즈와 상관될 수 있다. "웅성거림" 노이즈와 바람 노이즈는 서로 다른 음향 특성을 가질 수 있다. 따라서, 시각적 표현은, 음향 모델이 보다 "정확한" 노이즈 표현을 선택하는 것을 가능하게 하며, 예를 들어 음향 및 시각적 표현 모두와 일치하는 음소의 시퀀스를 선택하는 것을 가능하게 할 수 있다. 특정한 경우에는, 날짜/시간 정보 또는 지리 위치 정보와 같은, 추가의 언어외적 환경 정보가 사용될 수도 있다. 예를 들어, 지리 위치 정보는 음향 모델링 목적을 위한 "실외" 분류의 신뢰도를 증가시킬 수 있다. 특정한 경우에, 비언어적 정보는 문장 단어 통계의 시작에 대해, 예를 들어, 시퀀스의 표기에 사용되는 정황을 선택하는데 특정 개선점을 제공할 수 있으며, 여기서 분기 정황(divergent context)은 분기 시퀀스로 이어질 수 있다.
기존의 오디오 데이터에 음향 표현을 추가하는 것은 휴대 전화와 같은 클라이언트 장치는 종종 환경의 왜곡된 음향 표현을 희생해서 음성 데이터를 기록하도록 고도하게 구성되기 때문에 유용할 수 있다. 예를 들어, 마이크에서의 노이즈 제거는 인식된 음성 오디오 품질(예를 들어, 사람의 플레이 백)은 향상시키지만 기계 처리에 유용한 정보를 폐기한다. 도 8의 시스템(800)과 같은 예에서, 음성 및 환경 표현을 위한 병렬의 오디오 경로들을 통해서, 언어 모델은 노이즈 제거 및 빔 형성과 같은, 클라이언트 장치 처리의 악영향에 대응할 수 있게 된다. 특정한 경우에, 오디오 특징 추출기는 언어 모델 신경 네트워크 아키텍처와는 다른 신경 네트워크 아키텍처를 가질 수 있으며, 예를 들어 직접 음성 처리에 적합하지 않을 수 있는 환경 컨볼루션 신경 네트워크의 음향 표현을 제공할 수 있다. 이 경우에, 오디오 특징 텐서는 음성 오디오를 증강시키기 위해 사용될 수 있다. 본 명세서에 개시되는 특정한 예시는 환경 정보의 특징의 모델과 언어 모델을 조인트해서 구성하는데, 여기서 이 특징은 시각적 특징일 수도 있고 및/또는 청각적일 수도 있다.
특정한 방법 및 동작 세트는 비일시적 컴퓨터 판독 가능 매체 상에 저장된 명령어에 의해 수행될 수 있다. 비일시적 컴퓨터 판독 가능 매체는, 하나 이상의 컴퓨터에 의해 실행될 때 컴퓨터로 하여금 본 명세서에 개시된 방법의 단계를 수행하게 하는 명령어를 포함하는 코드를 저장한다. 비일시적 컴퓨터 판독 가능 매체는 회전 자기 디스크, 회전 광 디스크, 플래시 랜덤 액세스 메모리(RAM) 칩, 및 다른 기계적으로 이동하거나 고체 상태 저장 매체 중 하나 이상을 포함할 수 있다. 데이터 센터는 일반적으로 자기 디스크와 플래시 메모리를 사용해서, 서버 프로세서에 대한 명령어를 포함하는 데이터와 코드를 저장한다. 모바일 장치는 일반적으로 플래시 메모리를 사용해서, 시스템 온 칩 장치 내의 프로세서에 대한 데이터 및 코드를 저장한다. 임의의 유형의 컴퓨터 판독 가능 매체가 다양한 예에 따른 명령어를 포함하는 코드를 저장하는데 적합하다.
본 명세서에 개시되는 특정한 예는 소위 시스템-온-칩(SoC) 장치로서 구현될 수 있다. SoC 장치는 다수의 내장형 시스템 및 IoT 장치를 제어하고 본 명세서에 설명된 클라이언트 장치 기능을 구현하는 데 사용될 수 있다. 한 경우에, 시각적 특징 추출기 및 오디오 특징 추출기 중 하나 이상이 SoC 장치로서 구현될 수 있다. SoC 장치는 하나 이상의 프로세서(예를 들어, CPU 또는 GPU), 랜덤 액세스 메모리(RAM, 예를 들어, 오프 칩 동적 RAM 즉 DRAM), 이더넷, WiFi, 3G, 4G LTE, 5G 및 기타 무선 인터페이스 표준 라디오와 같은 유선 또는 무선 접속을 위한 네트워크 인터페이스를 포함할 수 있다. SoC 장치는 또한 터치 스크린 센서, 지리 위치 수신기, 마이크, 스피커, 블루투스 주변 장치 및 키보드 및 마우스와 같은 USB 장치와 같은 다른 주변 장치에 필요한 다양한 I/O 인터페이스 장치를 포함할 수 있다. RAM 장치에 저장된 명령어를 실행함으로써 SoC 장치의 프로세서는 본 명세서에 기술된 바와 같은 방법의 단계를 수행할 수 있다.
본 명세서에서는 특정한 예가 설명된 것이며, 다른 예와는 상이한 컴포넌트들의 다른 조합이 가능할 수 있다는 점에 주의한다. 예들을 더 잘 설명하기 위해서 현저한 특징들을 제공하지만, 전술한 이들 예들의 기능적 측면을 수정하지 않고도 특정한 특징들이 추가, 수정 및/또는 생략될 수 있다는 점은 자명한다.
다양한 예는 인간과 기계 중 하나 또는 이들의 조합의 거동을 사용하는 방법이다. 방법적인 예는 전 세계 어디에서나 대부분의 구성 단계가 일어나도 완료된다. 일부 예는 본 명세서에서 설명된 방법에 대한 이러한 명령어를 저장하도록 구성된 하나 이상의 비일시적 컴퓨터 판독 가능 매체이다. 어떤 머신이라도, 필요한 코드 중 임의의 것을 포함하는 비일시적 컴퓨터 판독 가능 매체를 보유하는 것이라면, 예를 구현할 수 있다. 일부 예는, 반도체 칩과 같은 물리적 장치; 이 장치의 논리적 또는 기능적 거동의 하드웨어 기술 언어 표현; 및 이 하드웨어 기술 언어 표현을 저장하도록 구성된 하나 이상의 비일시적 컴퓨터 판독 가능 매체를 포함한다. 원리, 측면 및 실시예를 인용하는 본 명세서의 설명은, 구조적 및 기능적 등가물을 모두 포함한다. 본 명세서에서 연결된 것으로 설명된 요소는, 직접 연결에 의해 구현될 수도 있고 혹은 하나 이상의 다른 개재 요소를 이용해서 간접적으로도 구현될 수 있는 효과적인 관계를 갖는다.

Claims (23)

  1. 음성을 처리하는 클라이언트 장치로서,
    사용자로부터의 발언과 관련된 오디오 데이터를 캡처하는 오디오 캡처 장치와,
    사용자의 환경을 특징짓는(featuring) 이미지 데이터의 프레임을 캡처하는 이미지 캡처 장치와,
    상기 이미지 캡처 장치로부터 상기 이미지 데이터의 프레임을 수신해서 하나 이상의 시각적 특징 텐서(visual feature tensors)를 생성하는 시각적 특징 추출기 - 상기 시각적 특징 텐서는 상기 이미지 데이터의 프레임의 압축된 표현을 제공함 - 와,
    상기 오디오 캡처 장치로부터 상기 오디오 데이터를 수신해서 하나 이상의 오디오 특징 텐서를 생성하는 오디오 특징 추출기와,
    상기 시각적 특징 텐서 및 상기 오디오 특징 텐서를 서버 장치에 전송하는 송신기 - 상기 서버 장치는 적어도 상기 시각적 특징 텐서 및 상기 오디오 특징 텐서를 언어 모델에 공급하도록 구성되고, 상기 언어 모델은 상기 발언을 분석(parse)하는 데 사용할 수 있는 언어 특징을 결정하도록 구성됨 -
    를 포함하며,
    상기 시각적 특징 추출기 및 상기 오디오 특징 추출기는 상기 언어 모델과 조인트해서(jointly) 구성되는
    클라이언트 장치.
  2. 제 1 항에 있어서,
    상기 시각적 특징 추출기 및 상기 오디오 특징 추출기 중 하나 이상은 신경망 아키텍처를 포함하는
    클라이언트 장치.
  3. 제 1 항에 있어서,
    상기 시각적 특징 텐서는 상기 환경에 대한 시각적 정황의 숫자 표현을 포함하고,
    상기 송신기는 상기 오디오 데이터를 상기 오디오 특징 텐서와 함께 상기 서버 장치로 전송하도록 구성되며,
    상기 서버 장치의 상기 언어 모델은, 상기 오디오 특징 텐서 및 상기 시각적 특징 텐서를 사용해서, 상기 오디오 데이터에 기초해서 언어 특징을 결정하도록 구성되는
    클라이언트 장치.
  4. 제 1 항에 있어서,
    상기 이미지 데이터는 비디오 데이터를 포함하고,
    상기 오디오 데이터는 상기 비디오 데이터와 시간적으로 상관되며,
    상기 시각적 특징 추출기 및 상기 오디오 특징 추출기는 상기 비디오 데이터 및 상기 오디오 데이터에 병렬로 적용되는
    클라이언트 장치.
  5. 제 1 항에 있어서,
    상기 시각적 특징 추출기는,
    상기 이미지 데이터의 프레임을 수신하는 제 1 입력 계층 및 제 1 출력 계층을 포함하는 복수의 계층을 포함하는 제 1 컨볼루션 신경망 아키텍처 - 상기 제 1 컨볼루션 신경망 아키텍처는 상기 복수의 계층 각각에 대해 트레이닝된 파라미터 세트를 사용하여 파라미터화되고, 상기 트레이닝된 파라미터의 세트는 상기 제 1 출력 계층에 연결된 하나 이상의 추가 분류(classification) 계층을 이용한 트레이닝 동작으로부터 도출됨 - 와,
    제 2 입력 계층 및 제 2 출력 계층을 포함하는 하나 이상의 계층을 포함하는 제 2 신경망 아키텍처 - 상기 제 2 입력 계층은 상기 제 1 컨볼루션 신경망 아키텍처의 상기 제 1 출력 계층에 연결되고, 상기 제 2 출력 계층은 상기 제 1 출력 계층의 차원수(dimensionality)보다 작은 차원수를 가짐 -
    를 포함하는
    클라이언트 장치.
  6. 제 5 항에 있어서,
    상기 제 2 신경망 아키텍처는, 트레이닝 동작에서 상기 오디오 특징 추출기 및 상기 언어 모델과 조인트해서 트레이닝되고,
    상기 제 1 컨볼루션 신경망 아키텍처에 대한 상기 트레이닝된 파라미터 세트는 상기 트레이닝 동작 동안 고정되는
    클라이언트 장치.
  7. 음성을 처리하는 서버 장치로서,
    클라이언트 장치로부터 하나 이상의 시각적 특징 텐서 및 하나 이상의 오디오 특징 텐서를 수신하는 수신기 - 상기 시각적 특징 텐서는 상기 클라이언트 장치에 의해 캡처된 이미지 데이터의 프레임에 기초해서 상기 클라이언트 장치의 시각적 특징 추출기에 의해 생성되고, 상기 이미지 데이터의 프레임은 상기 클라이언트 장치의 환경을 특징지으며, 상기 시각적 특징 텐서는 상기 이미지 데이터의 프레임의 압축된 표현을 제공하고, 상기 오디오 특징 텐서는 사용자의 발언과 관련해서 상기 클라이언트 장치에 의해 캡처된 대응하는 오디오 데이터에 기초해서 상기 클라이언트 장치의 오디오 특징 추출기에 의해 생성됨 -
    상기 시각적 특징 텐서 및 상기 오디오 특징 텐서를 수신해서 상기 발언을 분석하는 데 사용할 수 있는 언어 특징을 결정하는 언어 모델
    을 포함하되,
    상기 언어 모델은 상기 클라이언트 장치의 상기 시각적 특징 추출기 및 상기 오디오 특징 추출기와 조인트해서 구성되는
  8. 제 7 항에 있어서,
    상기 언어 모델에 의해 사용되기 전에 상기 시각적 특징 텐서 및 상기 오디오 특징 텐서에 가중치를 적용하는 주의(attention) 전처리기
    를 포함하는 서버 장치.
  9. 제 7 항에 있어서,
    상기 언어 모델은, 상기 시각적 특징 텐서 및 상기 오디오 특징 텐서를 입력으로서 수신해서 상기 발언의 텍스트 표현을 출력하는 신경망 아키텍처를 포함하는
    서버 장치.
  10. 제 7 항에 있어서,
    상기 오디오 특징 텐서는 상기 환경에 대한 오디오 정황의 표현을 포함하고, 상기 시각적 특징 텐서는 상기 환경에 대한 시각적 정황의 표현을 포함하며,
    상기 서버 장치의 상기 수신기는 상기 오디오 특징 텐서에 더해서 상기 오디오 데이터를 수신하도록 구성되고,
    상기 언어 모델은, 상기 오디오 데이터로부터 상기 발언을 분석하는 데 사용하기 위해 음소 데이터를 생성하는 음향 모델을 포함하며,
    상기 음향 모델은 상기 시각적 특징 텐서 및 상기 오디오 특징 텐서에 기초하여 구성되는
    서버 장치.
  11. 제 10 항에 있어서,
    상기 음향 모델은,
    음향 모델 구성의 데이터베이스와,
    상기 오디오 특징 텐서 및 상기 시각적 특징 텐서의 조인트 세트에 기초해서, 상기 데이터베이스로부터 음향 모델 구성을 선택하는 음향 모델 선택기와,
    상기 오디오 데이터를 처리하는 음향 모델 인스턴스 - 상기 음향 모델 인스턴스는, 상기 음향 모델 선택기에 의해 선택된 상기 음향 모델 구성에 기초해서 인스턴스화되고, 상기 음향 모델 인스턴스는 상기 발언을 분석하는 데 사용하기 위한 상기 음소 데이터를 생성하도록 구성됨 -
    를 포함하는
    서버 장치.
  12. 제 10 항에 있어서,
    상기 언어 모델은,
    상기 음향 모델에 통신 가능하게 연결되어서 상기 음소 데이터를 수신해서 상기 발언을 나타내는 텍스트 데이터를 생성하는 언어 모델
    을 더 포함하고,
    상기 언어 모델은, 상기 발언을 나타내는 상기 텍스트 데이터를 생성하는 데 사용하기 위한 입력으로서 상기 오디오 특징 텐서 및 상기 시각적 특징 텐서를 수신하도록 구성되는
    서버 장치.
  13. 클라이언트 장치에서 음성을 처리하는 방법으로서,
    클라이언트 장치에서, 사용자로부터 발언과 관련된 오디오 데이터를 캡처하는 단계와,
    상기 클라이언트 장치에서, 상기 사용자의 환경을 특징짓는 이미지 데이터를 캡처하는 단계와,
    상기 클라이언트 장치의 시각적 특징 추출기를 사용해서, 상기 이미지 데이터의 하나 이상의 프레임으로부터 시각적 특징 텐서의 세트를 추출하는 단계 - 상기 시각적 특징 텐서의 세트는 상기 이미지 데이터의 프레임의 압축된 표현을 제공함 - 와,
    상기 클라이언트 장치의 오디오 특징 추출기를 사용해서, 상기 오디오 데이터로부터 오디오 특징 텐서의 세트를 추출하는 단계와,
    상기 클라이언트 장치에서, 상기 시각적 특징 텐서의 세트 및 상기 오디오 특징 텐서의 세트를 서버 장치로 전송하는 단계 - 상기 서버 장치는 적어도 상기 시각적 특징 텐서 및 상기 오디오 특징 텐서를 언어 모델에 공급하도록 구성되고, 상기 언어 모델은 상기 발언을 분석하는 데 사용할 수 있는 언어 특징의 세트를 결정하도록 구성됨 -
    를 포함하고,
    상기 시각적 특징 추출기 및 상기 오디오 특징 추출기는 상기 언어 모델과 함께 조인트해서 구성되는
    방법.
  14. 제 13 항에 있어서,
    상기 클라이언트 장치에서, 상기 서버 장치로부터 상기 발언에 대한 응답을 수신하는 단계와,
    상기 클라이언트 장치에서, 상기 서버 장치로부터 수신되는 발언에 대한 응답에 기초해서 상기 사용자에게 응답을 제공하는 단계
    를 포함하는 방법.
  15. 제 13 항에 있어서,
    상기 시각적 특징 추출기를 사용해서 추출하는 단계는,
    상기 캡처된 이미지 데이터로부터 도출된 데이터를, 이미지 데이터의 프레임을 수신하는 제 1 입력 계층 및 제 1 출력 계층을 포함하는 복수의 계층을 포함하는 제 1 컨볼루션 신경망 아키텍처에 제공하는 단계와,
    상기 제 1 출력 계층의 출력을, 제 2 출력 계층을 포함하는 하나 이상의 계층을 포함하는 제 2 신경망 아키텍처에 제공하는 단계 - 상기 제 2 출력 계층은 상기 제 1 출력 계층의 차원수보다 작은 차원수를 갖고, 상기 제 2 출력 계층의 출력은 상기 시각적 특징 텐서의 세트를 생성하는 데 사용됨 -
    를 포함하는
    방법.
  16. 서버 장치에서 음성을 처리하는 방법으로서,
    상기 서버 장치에서, 클라이언트 장치로부터 시각적 특징 텐서의 세트 및 오디오 특징 텐서의 세트를 수신하는 단계 - 상기 시각적 특징 텐서는 상기 클라이언트 장치에 의해 캡처된 이미지 데이터의 프레임에 기초해서 상기 클라이언트 장치의 시각적 특징 추출기에 의해 생성되고, 상기 이미지 데이터의 프레임은 상기 클라이언트 장치의 환경을 특징지으며, 상기 시각적 특징 텐서는 상기 이미지 데이터의 프레임의 압축된 표현을 제공하고, 상기 오디오 특징 텐서는 사용자의 발언과 관련해서 상기 클라이언트 장치에 의해 캡처된 대응하는 오디오 데이터에 기초해서 상기 클라이언트 장치의 오디오 특징 추출기에 의해 생성됨 - 와,
    상기 서버 장치에서, 상기 시각적 특징 텐서의 세트 및 상기 오디오 특징 텐서의 세트를 입력으로서 언어 모델에 제공하는 단계 - 상기 언어 모델은 상기 발언을 분석하는 데 사용할 수 있는 언어 특징의 세트를 결정하도록 구성되고, 상기 시각적 특징 추출기 및 상기 오디오 특징 추출기는 상기 언어 모델과 조인트해서 구성됨 - 와,
    상기 언어 모델의 상기 출력을 사용해서 상기 발언을 분석하는 단계
    를 포함하는 방법.
  17. 제 16 항에 있어서,
    상기 서버 장치에서, 상기 수신한 상기 시각적 특징 텐서의 세트 및 상기 오디오 특징 텐서의 세트에 기초해서 음향 모델 구성을 선택하는 단계와,
    상기 서버 장치에서, 상기 오디오 데이터를 수신하는 단계와,
    상기 음향 모델 구성에 따라 구성된 음향 모델을 상기 오디오 데이터에 적용해서 상기 발언에 대응하는 음소 데이터를 결정하는 단계와,
    상기 음소 데이터를 사용해서 상기 발언을 분석하는 단계
    를 포함하는 방법.
  18. 음성 처리 시스템을 구성하는 방법으로서,
    음성 인식 모델을 획득하기 위해서 오디오 특징 추출기와 시각적 특징 추출기를 언어 모델에 통신 가능하게 연결시키는 단계 - 상기 오디오 특징 추출기는 오디오 데이터를 수신하고 오디오 특징 텐서를 출력하도록 구성되고, 상기 시각적 특징 추출기는 이미지 데이터를 수신해서 시각적 특징 텐서를 출력하도록 구성되며, 상기 언어 모델은 상기 오디오 특징 텐서 및 상기 시각적 특징 텐서를 사용해서 언어 특징의 세트를 결정하도록 구성되고, 상기 오디오 특징 추출기 및 상기 시각적 특징 추출기는 모델 파라미터의 세트 각각에 의해 파라미터화됨 - 와,
    시간적으로 상관된 오디오 데이터와 이미지 데이터 및 정답(ground-truth) 언어 특징을 포함하는 트레이닝 데이터를 획득하는 단계와,
    상기 음성 인식 모델을 통해 상기 언어 모델의 에러를 역 전파하는(back propagating)하는 것을 포함하여, 상기 각각의 모델 파라미터 세트에 대한 트레이닝된 값을 결정하기 위해 트레이닝 데이터를 사용하여 상기 오디오 특징 추출기 및 상기 시각적 특징 추출기와 상기 언어 모델을 조인트해서 구성하는 단계
    를 포함하는 방법.
  19. 제 18 항에 있어서,
    상기 오디오 특징 추출기 및 상기 시각적 특징 추출기에 대한 상기 트레이닝된 값을 하나 이상의 클라이언트 장치에 통신하는 단계와,
    상기 언어 모델에 대한 상기 트레이닝된 값을 하나 이상의 서버 장치에 통신하는 단계와,
    상기 트레이닝된 값을 사용해서 상기 하나 이상의 클라이언트 장치 및 상기 하나 이상의 서버 장치를 구성하는 단계 - 상기 하나 이상의 클라이언트 장치는 상기 하나 이상의 서버 장치에 의해 처리될 오디오 특징 텐서 및 시각적 특징 텐서를 생성하는 데 사용하기 위해 상기 트레이닝된 값을 로딩하도록 구성됨 -
    를 포함하는 방법.
  20. 제 18 항에 있어서,
    트레이닝 동안에 상기 언어 모델에 의해 사용되는 상기 오디오 특징 텐서와 상기 시각적 특징 텐서 중 하나 이상을 가중하는 단계
    를 포함하는 방법.
  21. 제 18 항에 있어서,
    트레이닝된 시각 분류 모델을 획득하는 단계와,
    상기 구성된 시각 분류 모델의 하나 이상의 분류 계층을 제거해서 상기 트레이닝된 시각 분류 모델에 대한 새로운 출력 계층을 생성하는 단계와,
    하나 이상의 계층을 포함하는 추가 신경망 아키텍처를 상기 새로운 출력 계층에 통신 가능하게 연결해서 상기 시각적 특징 추출기를 획득하는 단계 - 상기 추가 신경망 아키텍처의 출력 계층의 차원수는 상기 새로운 출력 계층의 차원수보다 작음 -
    를 포함하는 방법.
  22. 컴퓨터 프로세서에 의해 실행될 때, 머신으로 하여금 동작을 수행하게 하는 명령어를 포함하는 코드가 저장된 비일시적 컴퓨터 판독 가능 매체로서, 상기 동작은,
    사용자로부터의 발언과 관련된 오디오 데이터를 획득하는 것과,
    상기 사용자의 환경을 특징짓는 이미지 데이터를 획득하는 것과,
    상기 이미지 데이터의 하나 이상의 프레임으로부터 시각적 특징 텐서의 세트의 추출을 지시하는 것 - 상기 이미지 데이터의 프레임은 상기 시각적 특징 텐서의 세트보다 큰 정보 컨텐츠를 가지며, 상기 시각적 특징 텐서의 세트의 추출은 제 1 파라미터 세트에 의해 구성됨 - 과,
    상기 오디오 데이터로부터 오디오 특징 텐서의 세트의 추출을 지시하는 것 - 상기 오디오 특징 텐서의 세트의 추출은 제 2 파라미터 세트에 의해 구성됨 - 과,
    적어도 상기 시각적 특징 텐서의 세트 및 상기 오디오 특징 텐서의 세트에 기초해서 상기 발언의 분석을 지시하는 것 - 상기 발언의 분석은 제 3 파라미터 세트에 의해 구성됨 -
    을 포함하고,
    상기 제 1 파라미터 세트, 상기 제 2 파라미터 세트 및 상기 제 3 파라미터 세트에 대한 값은 조인트 트레이닝 과정을 사용해서 결정되는
    비일시적 컴퓨터 판독 가능 매체.
  23. 음성 처리 장치로서,
    음성 데이터를 분석하는 데 사용할 음소 데이터를 생성하는 음향 모델과,
    상기 음향 모델로부터의 상기 음소 데이터를 사용해서 상기 음성 데이터의 표기를 생성하는 언어 모델과,
    상기 음향 모델과 상기 언어 모델 중 적어도 하나에 통신 가능하게 연결되어서 상기 음성 데이터가 캡처되는 시각적 환경의 표현을 제공하는 시각적 정황 표시자
    를 포함하고,
    상기 음향 모델 및 상기 언어 모델 중 하나는 상기 시각적 환경의 표현에 기초해서 차등적으로 구성되는
    음성 처리 장치.
KR1020190121046A 2019-07-11 2019-09-30 시각 보조 음성 처리 KR20210007786A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019231729A JP7242520B2 (ja) 2019-07-11 2019-12-23 視覚支援スピーチ処理
KR1020210171630A KR102380689B1 (ko) 2019-07-11 2021-12-03 시각 보조 음성 처리

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/509,029 2019-07-11
US16/509,029 US11257493B2 (en) 2019-07-11 2019-07-11 Vision-assisted speech processing

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020210171630A Division KR102380689B1 (ko) 2019-07-11 2021-12-03 시각 보조 음성 처리

Publications (1)

Publication Number Publication Date
KR20210007786A true KR20210007786A (ko) 2021-01-20

Family

ID=74101823

Family Applications (5)

Application Number Title Priority Date Filing Date
KR1020190121046A KR20210007786A (ko) 2019-07-11 2019-09-30 시각 보조 음성 처리
KR1020210171630A KR102380689B1 (ko) 2019-07-11 2021-12-03 시각 보조 음성 처리
KR1020220037343A KR102451100B1 (ko) 2019-07-11 2022-03-25 시각 보조 음성 처리
KR1020220123895A KR20220139841A (ko) 2019-07-11 2022-09-29 시각 보조 음성 처리
KR1020240030412A KR20240037205A (ko) 2019-07-11 2024-03-04 시각 보조 음성 처리

Family Applications After (4)

Application Number Title Priority Date Filing Date
KR1020210171630A KR102380689B1 (ko) 2019-07-11 2021-12-03 시각 보조 음성 처리
KR1020220037343A KR102451100B1 (ko) 2019-07-11 2022-03-25 시각 보조 음성 처리
KR1020220123895A KR20220139841A (ko) 2019-07-11 2022-09-29 시각 보조 음성 처리
KR1020240030412A KR20240037205A (ko) 2019-07-11 2024-03-04 시각 보조 음성 처리

Country Status (3)

Country Link
US (2) US11257493B2 (ko)
JP (1) JP7242520B2 (ko)
KR (5) KR20210007786A (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11416714B2 (en) * 2017-03-24 2022-08-16 Revealit Corporation Method, system, and apparatus for identifying and revealing selected objects from video
US11011162B2 (en) 2018-06-01 2021-05-18 Soundhound, Inc. Custom acoustic models
US11508374B2 (en) * 2018-12-18 2022-11-22 Krystal Technologies Voice commands recognition method and system based on visual and audio cues
US11663814B2 (en) * 2019-08-23 2023-05-30 Arm Limited Skip predictor for pre-trained recurrent neural networks
KR102231909B1 (ko) * 2019-09-20 2021-03-25 엘지전자 주식회사 인공지능 장치
US11580869B2 (en) * 2019-09-23 2023-02-14 Revealit Corporation Computer-implemented interfaces for identifying and revealing selected objects from video
JP7442631B2 (ja) 2019-10-18 2024-03-04 グーグル エルエルシー エンドツーエンドのマルチスピーカ視聴覚自動音声認識
US11948076B2 (en) * 2019-10-25 2024-04-02 Sony Group Corporation Media rendering device control based on trained network model
EP3855432A1 (en) * 2020-01-22 2021-07-28 Infineon Technologies AG Classification system and method for classifying an external impact on a window or on an access opening of an enclosed structure
US11635299B2 (en) * 2020-02-06 2023-04-25 Mitsubishi Electric Research Laboratories, Inc. Method and system for scene-aware interaction
US11657799B2 (en) * 2020-04-03 2023-05-23 Microsoft Technology Licensing, Llc Pre-training with alignments for recurrent neural network transducer based end-to-end speech recognition
US11450310B2 (en) * 2020-08-10 2022-09-20 Adobe Inc. Spoken language understanding
US11802894B2 (en) * 2020-09-17 2023-10-31 Silicon Laboratories Inc. Compressing information in an end node using an autoencoder neural network
US20220269922A1 (en) * 2021-02-23 2022-08-25 Mcafee, Llc Methods and apparatus to perform deepfake detection using audio and video features
US11908478B2 (en) * 2021-08-04 2024-02-20 Q (Cue) Ltd. Determining speech from facial skin movements using a housing supported by ear or associated with an earphone
CN114120074B (zh) * 2021-11-05 2023-12-12 北京百度网讯科技有限公司 基于语义增强的图像识别模型的训练方法和训练装置
CN114338385B (zh) * 2021-12-31 2024-05-17 上海商汤智能科技有限公司 网络配置方法及***、电子设备和存储介质

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2323693B (en) 1997-03-27 2001-09-26 Forum Technology Ltd Speech to text conversion
US6594629B1 (en) 1999-08-06 2003-07-15 International Business Machines Corporation Methods and apparatus for audio-visual speech detection and recognition
US6633844B1 (en) 1999-12-02 2003-10-14 International Business Machines Corporation Late integration in audio-visual continuous speech recognition
US6442820B1 (en) 2000-10-26 2002-09-03 F & P Mfg., Inc. Method and apparatus for forming a tube having an article inserted therein
US6964023B2 (en) 2001-02-05 2005-11-08 International Business Machines Corporation System and method for multi-modal focus detection, referential ambiguity resolution and mood classification using multi-modal input
JP2002268683A (ja) 2001-03-09 2002-09-20 Canon Inc 情報処理方法及び装置
US6952674B2 (en) 2002-01-07 2005-10-04 Intel Corporation Selecting an acoustic model in a speech recognition system
JP2003241788A (ja) * 2002-02-20 2003-08-29 Ntt Docomo Inc 音声認識装置及び音声認識システム
JP2003271182A (ja) 2002-03-18 2003-09-25 Toshiba Corp 音響モデル作成装置及び音響モデル作成方法
JP2004260641A (ja) 2003-02-27 2004-09-16 Shibasoku:Kk 信号処理装置
JP4100243B2 (ja) * 2003-05-06 2008-06-11 日本電気株式会社 映像情報を用いた音声認識装置及び方法
JP4463526B2 (ja) 2003-10-24 2010-05-19 株式会社ユニバーサルエンターテインメント 声紋認証システム
JP4599244B2 (ja) 2005-07-13 2010-12-15 キヤノン株式会社 動画データから字幕を作成する装置及び方法、プログラム、並びに記憶媒体
US8126274B2 (en) 2007-08-30 2012-02-28 Microsoft Corporation Visual language modeling for image classification
KR100903348B1 (ko) 2007-11-28 2009-06-23 중앙대학교 산학협력단 특징 융합 기반 감정인식 방법 및 시스템
CN101187990A (zh) 2007-12-14 2008-05-28 华南理工大学 一种会话机器人***
US8645123B2 (en) 2008-10-27 2014-02-04 Microsoft Corporation Image-based semantic distance
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
KR101092820B1 (ko) 2009-09-22 2011-12-12 현대자동차주식회사 립리딩과 음성 인식 통합 멀티모달 인터페이스 시스템
US9197736B2 (en) * 2009-12-31 2015-11-24 Digimarc Corporation Intuitive computing methods and systems
TWI399739B (zh) 2009-11-13 2013-06-21 Ind Tech Res Inst 語音留言與傳達之系統與方法
WO2011111221A1 (ja) 2010-03-12 2011-09-15 三菱電機株式会社 エレベータの音声呼び登録装置
JP2012022053A (ja) * 2010-07-12 2012-02-02 Fujitsu Toshiba Mobile Communications Ltd 音声認識装置
JP5666219B2 (ja) * 2010-09-10 2015-02-12 ソフトバンクモバイル株式会社 眼鏡型表示装置及び翻訳システム
US20140214424A1 (en) 2011-12-26 2014-07-31 Peng Wang Vehicle based determination of occupant audio and visual input
US9418674B2 (en) * 2012-01-17 2016-08-16 GM Global Technology Operations LLC Method and system for using vehicle sound information to enhance audio prompting
TWI466101B (zh) 2012-05-18 2014-12-21 Asustek Comp Inc 語音識別方法及系統
US8768693B2 (en) 2012-05-31 2014-07-01 Yahoo! Inc. Automatic tag extraction from audio annotated photos
WO2014024751A1 (ja) * 2012-08-10 2014-02-13 エイディシーテクノロジー株式会社 音声応答装置
WO2014029099A1 (en) 2012-08-24 2014-02-27 Microsoft Corporation I-vector based clustering training data in speech recognition
US9031293B2 (en) * 2012-10-19 2015-05-12 Sony Computer Entertainment Inc. Multi-modal sensor based emotion recognition and emotional interface
US9190058B2 (en) 2013-01-25 2015-11-17 Microsoft Technology Licensing, Llc Using visual cues to disambiguate speech inputs
KR20150031896A (ko) * 2013-09-17 2015-03-25 한국전자통신연구원 음성인식장치 및 그 동작방법
JP6025690B2 (ja) 2013-11-01 2016-11-16 ソニー株式会社 情報処理装置および情報処理方法
US10741182B2 (en) 2014-02-18 2020-08-11 Lenovo (Singapore) Pte. Ltd. Voice input correction using non-audio based input
US9728185B2 (en) 2014-05-22 2017-08-08 Google Inc. Recognizing speech using neural networks
US20160034811A1 (en) 2014-07-31 2016-02-04 Apple Inc. Efficient generation of complementary acoustic models for performing automatic speech recognition system combination
CN104463250B (zh) 2014-12-12 2017-10-27 广东工业大学 一种基于达芬奇技术的手语识别翻译方法
US9697833B2 (en) 2015-08-25 2017-07-04 Nuance Communications, Inc. Audio-visual speech recognition with scattering operators
JP2017090612A (ja) 2015-11-09 2017-05-25 三菱自動車工業株式会社 音声認識制御システム
US20170185676A1 (en) * 2015-12-29 2017-06-29 Picsoneye Segmentation Innovations Ltd System and method for profiling a user based on visual content
US10896681B2 (en) * 2015-12-29 2021-01-19 Google Llc Speech recognition with selective use of dynamic language models
US10964326B2 (en) 2016-02-16 2021-03-30 Carnegie Mellon University, A Pennsylvania Non-Profit Corporation System and method for audio-visual speech recognition
US9824692B1 (en) 2016-09-12 2017-11-21 Pindrop Security, Inc. End-to-end speaker recognition using deep neural network
KR102363794B1 (ko) 2017-03-31 2022-02-16 삼성전자주식회사 정보 제공 방법 및 이를 지원하는 전자 장치
CN107134279B (zh) * 2017-06-30 2020-06-19 百度在线网络技术(北京)有限公司 一种语音唤醒方法、装置、终端和存储介质
CN107507612B (zh) 2017-06-30 2020-08-28 百度在线网络技术(北京)有限公司 一种声纹识别方法及装置
US11290518B2 (en) * 2017-09-27 2022-03-29 Qualcomm Incorporated Wireless control of remote devices through intention codes over a wireless connection
JP2019097016A (ja) 2017-11-22 2019-06-20 株式会社デンソーアイティーラボラトリ コーパス生成装置、コーパス生成方法、およびプログラム
CN109872379B (zh) 2017-12-05 2022-12-02 富士通株式会社 数据处理装置和方法
JP6973110B2 (ja) 2018-01-23 2021-11-24 株式会社リコー 情報処理システム、情報処理端末、情報処理方法及びプログラム
JP2020066472A (ja) * 2018-10-19 2020-04-30 株式会社日立ビルシステム エレベーター、及び、エレベーター用の緊急通信を支援する通信支援方法
US20210065712A1 (en) 2019-08-31 2021-03-04 Soundhound, Inc. Automotive visual speech recognition

Also Published As

Publication number Publication date
US20220139393A1 (en) 2022-05-05
KR102380689B1 (ko) 2022-04-01
US11257493B2 (en) 2022-02-22
KR20220045116A (ko) 2022-04-12
KR20220139841A (ko) 2022-10-17
US20210012769A1 (en) 2021-01-14
KR20210152430A (ko) 2021-12-15
JP7242520B2 (ja) 2023-03-20
JP2021015264A (ja) 2021-02-12
KR20240037205A (ko) 2024-03-21
KR102451100B1 (ko) 2022-10-06

Similar Documents

Publication Publication Date Title
KR102380689B1 (ko) 시각 보조 음성 처리
US20240038218A1 (en) Speech model personalization via ambient context harvesting
US10388284B2 (en) Speech recognition apparatus and method
CN110853618B (zh) 一种语种识别的方法、模型训练的方法、装置及设备
US20210312905A1 (en) Pre-Training With Alignments For Recurrent Neural Network Transducer Based End-To-End Speech Recognition
US20190115011A1 (en) Detecting keywords in audio using a spiking neural network
EP3955245A1 (en) Apparatus, method and program for parsing an utterance using a speaker feature vector
CN113643693B (zh) 以声音特征为条件的声学模型
WO2023030235A1 (zh) 目标音频的输出方法及***、可读存储介质、电子装置
WO2023207541A1 (zh) 一种语音处理方法及相关设备
US11775617B1 (en) Class-agnostic object detection
WO2024114303A1 (zh) 音素识别方法、装置、电子设备及存储介质
CN116612747B (zh) 语音音素识别方法、装置、设备及存储介质
US20240104311A1 (en) Hybrid language translation on mobile devices
US20240127827A1 (en) Matching audio using machine learning based audio representations
US20240112676A1 (en) Apparatus performing based on voice recognition and artificial intelligence and method for controlling thereof
US20230085161A1 (en) Automatic translation between sign language and spoken language
CN115273803A (zh) 模型训练方法和装置、语音合成方法、设备和存储介质
CN117649848A (zh) 语音信号的处理设备及方法
KR20230149894A (ko) 개인화 가능한 기계학습 기반의 운전자 이상행동 감지 시스템
CN117121099A (zh) 自适应视觉语音识别
CN117892778A (zh) 一种服务器、终端设备及模型压缩方法
CN118351835A (zh) 一种显示设备及语音识别方法
CN116312458A (zh) 声学模型训练方法、语音合成方法、装置及计算机设备
KR20200048976A (ko) 전자 장치 및 그 제어 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X601 Decision of rejection after re-examination