KR20200105259A - 전자 장치 및 전자 장치의 제어 방법 - Google Patents

전자 장치 및 전자 장치의 제어 방법 Download PDF

Info

Publication number
KR20200105259A
KR20200105259A KR1020190024192A KR20190024192A KR20200105259A KR 20200105259 A KR20200105259 A KR 20200105259A KR 1020190024192 A KR1020190024192 A KR 1020190024192A KR 20190024192 A KR20190024192 A KR 20190024192A KR 20200105259 A KR20200105259 A KR 20200105259A
Authority
KR
South Korea
Prior art keywords
input data
voice signal
electronic device
module
voice
Prior art date
Application number
KR1020190024192A
Other languages
English (en)
Other versions
KR102615154B1 (ko
Inventor
성호상
민경보
황선호
홍두화
오은미
정종훈
주기현
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020190024192A priority Critical patent/KR102615154B1/ko
Priority to CN202080017465.1A priority patent/CN113498536A/zh
Priority to PCT/KR2020/001581 priority patent/WO2020175810A1/en
Priority to EP20763060.9A priority patent/EP3857542A4/en
Priority to US16/788,418 priority patent/US11587547B2/en
Publication of KR20200105259A publication Critical patent/KR20200105259A/ko
Priority to US18/171,079 priority patent/US20230206897A1/en
Application granted granted Critical
Publication of KR102615154B1 publication Critical patent/KR102615154B1/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
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/08Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/226Validation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • G10L13/04Details of speech synthesis systems, e.g. synthesiser structure or memory management
    • G10L13/047Architecture of speech synthesisers
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/02Preprocessing operations, e.g. segment selection; Pattern representation or modelling, e.g. based on linear discriminant analysis [LDA] or principal components; Feature selection or extraction
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/005Correction of errors induced by the transmission channel, if related to the coding algorithm
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/51Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
    • G10L25/63Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination for estimating an emotional state
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Child & Adolescent Psychology (AREA)
  • Hospice & Palliative Care (AREA)
  • Psychiatry (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Machine Translation (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

전자 장치가 개시된다. 본 전자 장치는 적어도 하나의 명령어를 포함하는 메모리, 메모리에 저장된 적어도 하나의 명령어를 실행하여 전자 장치를 제어하는 프로세서를 포함하고, 프로세서는, TTS 모듈을 통한 음성 출력을 위해 TTS 모듈에 입력될 입력 데이터를 획득하고, TTS 모듈을 통해 입력 데이터에 대응되는 음성 신호를 획득하고, 입력 데이터를 바탕으로 획득된 음성 신호의 오류를 검출하고, 검출 결과를 바탕으로 입력 데이터를 보정하고, TTS 모듈을 통해 보정된 입력 데이터에 대응되는 보정된 음성 신호를 획득한다.

Description

전자 장치 및 전자 장치의 제어 방법 { ELECTRONIC APPARATUS AND METHOD FOR CONTROLLING THEREOF }
본 개시는 전자 장치 및 그 제어 방법에 대한 것으로, 보다 상세하게는, 보다 정확하고 자연스러운 대화 시스템을 구현할 수 있는 전자 장치 및 그 제어 방법에 관한 것이다.
근래에는 인공 지능 시스템이 다양한 분야에서 이용되고 있다. 인공 지능 시스템은 기존의 룰(rule) 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공 지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 룰 기반 스마트 시스템은 점차 딥러닝 기반 인공 지능 시스템으로 대체되고 있다.
근래에는 사용자 음성 입력에 대한 응답을 제공하는 인공지능 에이전트(예로, 빅스비TM, 어시스턴트TM, 알렉사TM 등)를 이용한 다양한 서비스들이 제공되고 있다. 특히, Neural TTS 기술 도입으로 인해 입력 텍스트와 음향 특징의 관계를 통합적으로 모델링하여 전반적으로 자연스러운 합성음을 출력 가능하게 되었다.
그러나, 트레이닝 데이터(training data)가 충분하지 못한 경우 음성 합성 과정에서 텍스트에 대한 오류가 발생할 수 있고, 발화 오류가 발생한 경우 TTS 모델의 파라미터를 직접 수정할 수 없으며, 온 디바이스(on-device) 탑재를 위한 모델의 경량화 등의 과정에서 음질 저하 및 에러 발생이 증가되는 문제가 있었다.
이에 따라, 음성 합성부(TTS(text to speech))의 동작 오류로 인해 자연어 처리부에서 의도한 응답과는 다른 음성이 발화되는 경우, 오류를 인지하고 교정하기 위한 기술의 필요성이 대두되었다.
본 개시는 상술한 필요성에 따라 안출된 것으로, 본 개시의 목적은, TTS 모듈에서 출력된 음성 신호의 오류를 검출 및 보정함으로써, 보다 정확하고 자연스러운 대화 시스템을 구현할 수 있는 전자 장치 및 그 제어 방법을 제공하는 데 있다.
본 개시의 일 실시 예에 따른 전자 장치는, 적어도 하나의 명령어를 포함하는 메모리, 상기 메모리에 저장된 적어도 하나의 명령어를 실행하여 상기 전자 장치를 제어하는 프로세서를 포함하고, 상기 프로세서는, TTS 모듈을 통한 음성 출력을 위해 상기 TTS 모듈에 입력될 입력 데이터를 획득하고, 상기 TTS 모듈을 통해 상기 입력 데이터에 대응되는 음성 신호를 획득하고, 상기 입력 데이터를 바탕으로 상기 획득된 음성 신호의 오류를 검출하고, 상기 검출 결과를 바탕으로 상기 입력 데이터를 보정하고, 상기 TTS 모듈을 통해 상기 보정된 입력 데이터에 대응되는 보정된 음성 신호를 획득한다.
이 경우, 상기 입력 데이터는, 텍스트 데이터를 포함하고, 상기 프로세서는, 상기 획득된 음성 신호를 텍스트 데이터로 변환하고, 상기 입력 데이터에 포함된 텍스트 데이터 및 상기 변환된 텍스트 데이터를 비교하여 상기 획득된 음성 신호의 오류를 검출할 수 있다.
한편, 상기 입력 데이터는, 감정과 관련된 데이터를 포함하고, 상기 프로세서는, 상기 획득된 음성 신호의 주파수 특성에 기초하여 상기 획득된 음성 신호의 감정을 식별하고, 상기 입력 데이터에 포함된 감정 관련된 데이터와 상기 식별된 감정을 비교하여 상기 획득된 음성 신호의 오류를 검출할 수 있다.
한편, 상기 프로세서는, 상기 획득된 음성 신호의 길이와 상기 입력 데이터에 포함된 텍스트 데이터의 길이를 비교하여 상기 획득된 음성 신호의 오류를 검출할 수 있다.
한편, 상기 프로세서는, 상기 획득된 음성 신호의 오류가 검출되면, 상기 입력 데이터에 대한 정보에 포함된 텍스트 데이터의 띄어쓰기 및 문장 부호 중 적어도 하나를 보정하고, 상기 보정된 입력 데이터를 상기 TTS 모듈에 입력할 수 있다.
한편, 상기 프로세서는, 상기 획득된 음성 신호의 오류가 검출되면, 상기 입력 데이터에 포함된 텍스트 데이터에 SSML(Speech Synthesis Markup Language)을 적용하여 상기 입력 데이터를 보정하고, 상기 보정된 입력 데이터를 상기 TTS 모듈에 입력할 수 있다.
한편, 상기 프로세서는, 수신된 사용자 음성을 음성 인식 모듈을 이용하여 텍스트 데이터로 변환하고, 상기 텍스트 데이터의 의도를 분석하여 상기 사용자 음성에 대응되는 응답 정보를 상기 입력 데이터로서 획득할 수 있다.
한편, 스피커를 더 포함하고, 상기 프로세서는, 상기 보정된 음성 신호에 보정되었음을 알리는 인디케이터를 추가하여 상기 스피커를 통해 출력할 수 있다.
한편, 스피커 및 마이크를 더 포함하고, 상기 프로세서는, 상기 스피커를 통해 상기 음성 신호를 출력하고, 상기 스피커를 통해 출력된 음성 신호가 상기 마이크를 통해 수신되면, 상기 입력 데이터를 바탕으로, 상기 마이크를 통해 수신된 음성 신호의 오류를 검출할 수 있다.
이 경우, 상기 프로세서는, 상기 마이크를 통해 수신된 음성 신호의 화자를 식별하고, 상기 화자 식별 결과에 기초하여 상기 마이크를 통해 수신된 음성 신호가 상기 스피커를 통해 출력된 음성 신호이면, 상기 수신된 음성 신호의 오류를 검출하고, 상기 화자 식별 결과에 기초하여 상기 마이크를 통해 수신된 음성 신호가 사용자에 의해 발화된 것이면, 상기 수신된 음성 신호를 음성 인식 모듈을 이용하여 텍스트 데이터로 변환하고, 변환된 텍스트 데이터의 의도를 분석하여 상기 사용자 음성에 대응되는 응답 정보를 상기 입력 데이터로서 획득할 수 있다.
한편, 통신부를 더 포함하고, 상기 프로세서는, 상기 통신부를 통해 상기 획득된 음성 신호를 외부 장치에 전송할 수 있다.
한편, 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법은, TTS 모듈을 통한 음성 출력을 위해 상기 TTS 모듈에 입력될 입력 데이터를 획득하는 단계, 상기 TTS 모듈을 통해 상기 입력 데이터에 대응되는 음성 신호를 획득하는 단계, 상기 입력 데이터를 바탕으로 상기 획득된 음성 신호의 오류를 검출하는 단계, 상기 검출 결과를 바탕으로 상기 입력 데이터를 보정하는 단계 및 상기 TTS 모듈을 통해 상기 보정된 입력 데이터에 대응되는 보정된 음성 신호를 획득하는 단계를 포함한다.
이 경우, 상기 입력 데이터는, 텍스트 데이터를 포함하고, 상기 오류를 검출하는 단계는, 상기 획득된 음성 신호를 텍스트 데이터로 변환하는 단계 및 상기 입력 데이터에 포함된 텍스트 데이터 및 상기 변환된 텍스트 데이터를 비교하여 상기 획득된 음성 신호의 오류를 검출하는 단계를 포함할 수 있다.
한편, 상기 입력 데이터는, 감정과 관련된 데이터를 포함하고, 상기 오류를 검출하는 단계는, 상기 획득된 음성 신호의 주파수 특성에 기초하여 상기 획득된 음성 신호의 감정을 식별하는 단계 및 상기 입력 데이터에 포함된 감정과 관련된 데이터와 상기 식별된 감정을 비교하여 상기 획득된 음성 신호의 오류를 검출하는 단계를 포함할 수 있다.
한편, 상기 오류를 검출하는 단계는, 상기 획득된 음성 신호의 길이와 상기 입력 데이터에 포함된 텍스트 데이터의 길이를 비교하여 상기 획득된 음성 신호의 오류를 검출할 수 있다.
한편, 상기 보정하는 단계는, 상기 획득된 음성 신호의 오류가 검출되면, 상기 입력 데이터에 포함된 텍스트 데이터의 띄어쓰기 및 문장 부호 중 적어도 하나를 보정할 수 있다.
한편, 상기 보정하는 단계는, 상기 획득된 음성 신호의 오류가 검출되면, 상기 입력 데이터에 포함된 텍스트 데이터에 SSML(Speech Synthesis Markup Language)을 적용하여 상기 입력 데이터를 보정할 수 있다.
한편, 상기 입력 데이터를 획득하는 단계는, 수신된 사용자 음성을 음성 인식 모듈을 이용하여 텍스트 데이터로 변환하고, 상기 텍스트 데이터의 의도를 분석하여 상기 사용자 음성에 대응되는 응답 정보를 상기 입력 데이터로서 획득할 수 있다.
한편, 상기 보정된 음성 신호에 보정되었음을 알리는 인디케이터를 추가하여 스피커를 통해 출력하는 단계를 더 포함할 수 있다.
한편, 스피커를 통해 상기 획득된 음성 신호를 출력하는 단계를 더 포함하고, 상기 오류를 검출하는 단계는, 상기 스피커를 통해 출력된 음성 신호를 마이크를 통해 수신하는 단계 및 상기 입력 데이터를 바탕으로, 상기 마이크를 통해 수신된 음성 신호의 오류를 검출하는 단계를 포함할 수 있다.
도 1은 본 개시에 따른 전자 장치의 사용의 일 실시 예를 도시한 도면,
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 간략한 구성을 설명하기 위한 블럭도,
도 3은 도 2에 개시된 전자 장치의 구체적인 구성을 설명하기 위한 블럭도,
도 4, 도 6 및 도 7은 TTS 모듈을 검증하는 다양한 실시 예를 설명하기 위한 도면,
도 5는 입력된 사용자 음성에 대응되는 응답이 TTS 모듈에 입력되는 입력 데이터인 실시 예를 설명하기 위한 도면,
도 8, 도 9 및 도 11은 TTS 모듈의 검증 방법의 다양한 실시 예를 설명하기 위한 도면,
도 10은 본 개시의 일 실시 예에 따라 스피커의 특성을 보정 방식을 설명하기 위한 도면,
도 12 및 도 14는 본 개시의 전자 장치가 엣지 디바이스인 실시 예를 설명하기 위한 도면,
도 13은 도 12의 주변 장치의 구성을 설명하기 위한 블록도,
도 15 및 도 16은 도 12의 전자 장치의 동작의 다양한 실시 예를 설명하기 위한 도면,
도 17은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도,
도 18은 도 15의 전자 장치와 외부 장치의 동작의 일 실시 예를 설명하기 위한 시퀀스도, 그리고,
도 19는 서버, 엣지 디바이스, ambience dot을 포함하는 대화 시스템에서 서버와 엣지 디바이스에 의해 TTS 모듈의 검증이 수행되는 실시 예를 설명하기 위한 시퀀스도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 개시의 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 발명된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특성, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특성들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시의 실시 예에서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 '모듈' 혹은 복수의 '부'는 특정한 하드웨어로 구현될 필요가 있는 '모듈' 혹은 '부'를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
이하에서는 도면을 참조하여 본 발명에 대해 더욱 상세히 설명하기로 한다.
도 1은 본 개시에 따른 전자 장치의 사용의 일 실시 예를 도시한 도면이다.
도 1을 참조하면, 전자 장치(100)는 사용자(10)로부터 사용자 문의를 입력받을 수 있다. 이때, 전자 장치(100)는 도 1에 도시된 바와 같이, 사용자 음성을 통해 사용자 문의를 입력받을 수 있으나, 이는 일 실시 예에 불과할 뿐, 터치 입력, 키보드 입력 등과 같은 다양한 입력 방식을 통해 사용자 문의를 입력받을 수도 있다.
이때, 도 1에서는 전자 장치(100)가 인공지능 스피커인 것으로 도시되었으나, 이에 한정되지 않으며, 스마트폰, 데스크탑 PC, 랩탑 PC. 넷북 컴퓨터, 서버, PDA, PMP, 의료기기, 카메라, TV, 냉장고, 에어컨, 청소기, 오븐, 세탁기, 공기 청정기, 셋톱 박스, 홈 오토메이션 컨트롤 패널, 보안 컨트롤 패널, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(예: XboxTM, PlayStationTM)), 키오스크, 웨어러블 장치(시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD), 의류, 스킨 패드) 등으로 구현될 수도 있다.
전자 장치(100)는 사용자 문의를 입력받기 이전에 인공지능 에이전트 프로그램을 활성화하기 위한 트리거 단어를 포함하는 사용자 음성을 입력받을 수 있다. 예로, 전자 장치(100)는 사용자 문의를 입력받기 이전에 "하이 빅스비"와 같은 트리거 단어를 포함하는 사용자 음성을 입력받을 수 있다. 트리거 단어를 포함하는 사용자 음성이 입력되면, 전자 장치(100)는 인공지능 에이전트 프로그램을 실행 또는 활성화시키고, 사용자 문의의 입력을 대기할 수 있다. 인공지능 에이전트 프로그램은 사용자 문의 및 응답을 자연어로 처리할 수 있는 대화 시스템을 포함할 수 있다.
일 실시 예로, 전자 장치(100)는 사용자(10)로부터 "저게 뭘까?"라는 사용자 음성을 수신할 수 있다. 이때, 전자 장치(100)는 사용자 음성의 의도를 분석하여 "무지개떡 같은데?"를 응답 텍스트로 포함하는 입력 데이터를 획득할 수 있다. 이때, 전자 장치(100)는 구비된 센서 및 카메라를 통해 획득된 정보를 더 이용하여 사용자 음성에 대한 응답을 획득할 수 있다.
한편, 전자 장치(100)는 입력 데이터를 TTS(text to speech) 모듈에 입력하여 음성 신호를 획득하고, 획득된 음성 신호를 스피커를 통해 출력할 수 있다. 만약, 스피커를 통해 출력된 응답 음성은 "무지개 같은데?"인 경우, 이는 사용자의 의도와는 다른 응답이 출력되어 사용자의 혼란을 야기할 수 있다.
한편, 도 1에서는 전자 장치(100)가 사용자의 음성에 대한 응답 음성을 출력하는 것으로만 도시되었으나, 사용자의 조작 입력에 따른 음성 출력을 수행할 시에도 본 개시가 적용될 수 있다. 예를 들어, 사용자가 전자 책 어플리케이션을 사용하면서 ‘책 읽어주기’ 기능을 수행한 경우, 전자 장치(100)는 저장된 전자 책의 텍스트를 TTS 모듈을 이용하여 음성 합성하고, 합성된 음성을 출력할 수 있다.
본 개시에 따르면, 전자 장치(100)는 TTS 모듈로부터 출력된 음성 신호의 오류를 검출하고, 보정된 음성 신호를 출력함으로써, 보다 정확하고 자연스러운 대화 시스템을 구현할 수 있다. 구체적인 음성 신호의 오류 검출 동작 및 보정 동작에 대해서는 이하 도 2 내지 도 19를 참조하여 자세히 설명하기로 한다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 간략한 구성을 설명하기 위한 블럭도이다.
도 2를 참조하면, 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함한다.
메모리(110)는 전자 장치(100)의 동작에 필요한 각종 프로그램 및 데이터를 저장할 수 있다. 구체적으로, 메모리(110)에는 적어도 하나의 명령어가 저장될 수 있다. 프로세서(120)는 메모리(110)에 저장된 명령어를 실행함으로써 상술한 동작을 수행할 수 있다. 메모리(110)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 메모리(110)는 프로세서(120)에 의해 액세스되며, 프로세서(120)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 본 개시에서 메모리라는 용어는 메모리(110), 프로세서(120) 내 롬(미도시), 램(미도시) 또는 전자 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함할 수 있다. 또한, 메모리(110)에는 디스플레이의 디스플레이 영역에 표시될 각종 화면을 구성하기 위한 프로그램 및 데이터 등이 저장될 수 있다.
또한, 메모리(110)는 대화 시스템을 동작하기 위한 인공지능 모델을 저장할 수 있다. 구체적으로, 전자 장치(100)는 사용자 발화에 대한 응답으로 자연어를 생성하기 위하여 인공지능 에이전트(Artificial intelligence agent)를 이용할 수 있다. 이때, 인공지능 에이전트는 AI(Artificial Intelligence) 기반의 서비스(예를 들어, 음성 인식 서비스, 비서 서비스, 번역 서비스, 검색 서비스 등)를 제공하기 위한 전용 프로그램이다. 특히, 인공지능 모델은 기존의 범용 프로세서(예를 들어, CPU) 또는 별도의 AI 전용 프로세서(예를 들어, GPU 등)에 의해 실행될 수 있다.
또한, 메모리(110)는 도 4 및 도 7에 도시된 바와 같은 복수의 구성(또는 모듈)을 포함할 수 있다.
프로세서(120)는 메모리(110)와 전기적으로 연결되어 전자 장치(100)의 동작을 전반적으로 제어할 수 있다. 구체적으로, 프로세서(120)는 메모리(110)에 저장된 적어도 하나의 명령어를 실행하여 전자 장치(100)를 제어할 수 있다.
일 실시 예에 따라 프로세서(120)는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(120)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다.
본 개시의 전자 장치(100)의 프로세서(120)는 수신된 사용자 음성을 음성 인식 모듈을 이용하여 텍스트로 변환할 수 있다. 여기서, 전자 장치(100)는 통신부(도 3의 130)를 통해 외부 장치로부터 사용자 음성을 수신할 수도 있고, 구비된 마이크(도 3의 150)에 의해 사용자 음성을 직접 입력받을 수도 있다. 이때, 외부 장치로는 엣지 디바이스(edge device) 및 주변 장치(ambience dot, thhings) 중 적어도 하나일 수 있다. 이하에서는 대화 시스템에서 사용되는 모듈을 기능별로 구분하여 복수의 모듈로 기재하는데, 여러 모듈이 하나의 모듈로 구현될 수 있으며, 이러한 모듈은 소프트웨어 형태이거나, 하나 이상의 칩 형태로 구현될 수도 있다.
구체적으로, 프로세서(120)는 음성 인식 모듈 중 하나인 자동 음성 인식(automatic speech recognition)(ASR) 모듈을 이용하여 수신된 사용자 음성을 텍스트로 변환할 수 있다.
자동 음성 인식(automatic speech recognition)(ASR) 모듈은, 입력된 사용자 음성(특히, 사용자 문의)을 텍스트 데이터로 변환할 수 있다. 예를 들어, 자동 음성 인식 모듈은 발화 인식 모듈을 포함할 수 있다. 상기 발화 인식 모듈은 음향(acoustic) 모델 및 언어(language) 모델을 포함할 수 있다. 예를 들어, 음향 모델은 발성에 관련된 정보를 포함할 수 있고, 언어 모델은 단위 음소 정보 및 단위 음소 정보의 조합에 대한 정보를 포함할 수 있다. 발화 인식 모듈은 발성에 관련된 정보 및 단위 음소 정보에 대한 정보를 이용하여 사용자 발화를 텍스트 데이터로 변환할 수 있다. 음향 모델 및 언어 모델에 대한 정보는, 예를 들어, 자동 음성 인식 데이터베이스(automatic speech recognition database)(ASR DB)에 저장될 수 있다.
그리고, 프로세서(120)는 변환된 텍스트의 의도를 분석하여 사용자 음성에 응답하는 응답 음성에 대한 정보를 획득할 수 있다. 이때, 프로세서(120)는 자연어 처리(natural language processing)(NLP) 모듈을 이용하여 텍스트의 의도 분석 및 이에 대응되는 응답 정보를 획득할 수 있다. 이때, 자연어 처리 모듈은 자연어 이해(natural language understanding)(NLU) 모듈, 대화 매니저(dialogue manager)(DM) 모듈, 자연어 생성(natural language generator)(NLG) 모듈 등을 포함할 수 있다.
여기서, 자연어 이해 모듈은 문법적 분석(syntactic analyze) 또는 의미적 분석(semantic analyze)을 수행하여 사용자 의도를 파악할 수 있다. 문법적 분석은 사용자 입력을 문법적 단위(예: 단어, 구, 형태소 등)로 나누고, 나누어진 단위가 어떤 문법적인 요소를 갖는지 파악할 수 있다. 의미적 분석은 의미(semantic) 매칭, 룰(rule) 매칭, 포뮬러(formula) 매칭 등을 이용하여 수행할 수 있다. 이에 따라, 자연어 이해 모듈은 사용자 입력이 어느 도메인(domain), 의도(intent) 또는 의도를 표현하는데 필요한 파라미터(parameter)(또는, 슬롯(slot))를 얻을 수 있다.
자연어 이해 모듈은 도메인(domain), 의도(intend) 및 의도를 파악하는데 필요한 파라미터(parameter)(또는, 슬롯(slot))로 나누어진 매칭 규칙을 이용하여 사용자의 의도 및 파라미터를 결정할 수 있다. 예를 들어, 상기 하나의 도메인(예: 알람)은 복수의 의도(예: 알람 설정, 알람 해제 등)를 포함할 수 있고, 하나의 의도는 복수의 파라미터(예: 시간, 반복 횟수, 알람음 등)을 포함할 수 있다. 복수의 룰은, 예를 들어, 하나 이상의 필수 요소 파라미터를 포함할 수 있다. 매칭 규칙은 자연어 인식 데이터베이스(natural language understanding database)(NLU DB)에 저장될 수 있다.
자연어 이해 모듈은 형태소, 구 등의 언어적 특성(예: 문법적 요소)을 이용하여 사용자 입력으로부터 추출된 단어의 의미를 파악하고, 파악된 단어의 의미를 도메인 및 의도에 매칭시켜 사용자의 의도를 결정할 수 있다. 예를 들어, 자연어 이해 모듈은 각각의 도메인 및 의도에 사용자 입력에서 추출된 단어가 얼마나 포함되어 있는 지를 계산하여 사용자 의도를 결정할 수 있다. 일 실시 예에 따르면, 자연어 이해 모듈은 의도를 파악하는데 기초가 된 단어를 이용하여 사용자 입력의 파라미터를 결정할 수 있다. 일 실시 예에 따르면, 자연어 이해 모듈은 사용자 입력의 의도를 파악하기 위한 언어적 특성이 저장된 자연어 인식 데이터베이스를 이용하여 사용자의 의도를 결정할 수 있다.
대화 매니저 모듈은 자연어 이해 모듈에 의해 파악된 사용자의 의도가 명확한지 여부를 판단할 수 있다. 예를 들어, 대화 매니저 모듈은 파라미터의 정보가 충분하지 여부에 기초하여 사용자의 의도가 명확한지 여부를 판단할 수 있다. 대화 매니저 모듈는 자연어 이해 모듈에서 파악된 파라미터가 태스크를 수행하는데 충분한지 여부를 판단할 수 있다. 일 실시 예에 따르면, 대화 매니저 모듈는 사용자의 의도가 명확하지 않은 경우 사용자에게 필요한 정보를 요청하는 피드백을 수행할 수 있다. 예를 들어, 대화 매니저 모듈는 사용자의 의도를 파악하기 위한 파라미터에 대한 정보를 요청하는 피드백을 수행할 수 있다. 또한, 대화 매니저 모듈은 자연어 이해 모듈에 의해 변경된 텍스트를 포함하는 사용자 문의를 확인하기 위한 메시지를 생성하여 출력할 수 있다.
일 실시 예에 따르면, 대화 매니저 모듈은 컨텐츠 제공(content provider) 모듈을 포함할 수 있다. 컨텐츠 제공 모듈은 자연어 이해 모듈에서 파악된 의도 및 파라미터에 기초하여 동작을 수행할 수 있는 경우, 사용자 입력에 대응되는 태스크를 수행한 결과를 생성할 수 있다.
다른 실시 예에 따르면, 대화 매니저 모듈은 지식 데이터베이스를 이용하여 사용자 문의에 대한 응답을 제공할 수 있다. 이때, 지식 데이터베이스는 전자 장치(100) 내에 포함될 수 있으나, 이는 일 실시 예에 불과할 뿐, 외부 서버에 포함될 수 있다. 구체적으로, 대화 매니저 모듈은 분석된 사용자 음성의 의도에 기초하여 사용자 음성에 응답하는 응답 음성에 대한 정보를 획득할 수 있다. 여기서, 응답 음성에 대한 정보는 응답 내용의 텍스트 정보 및 응답 내용에 대응되는 감정 정보를 포함할 수 있다. 여기서, 감정 정보는 보이스 톤 정보, 스타일 정보 및 운율 정보 등을 포함할 수 있다.
자연어 생성 모듈(NLG 모듈)은 지정된 정보를 텍스트 형태로 변경할 수 있다. 상기 텍스트 형태로 변경된 정보는 자연어 발화의 형태일 수 있다. 상기 지정된 정보는, 예를 들어, 추가 입력에 대한 정보, 사용자 입력에 대응되는 동작의 완료를 안내하는 정보 또는 사용자의 추가 입력을 안내하는 정보(예: 사용자 입력에 대한 피드백 정보)일 수 있다. 상기 텍스트 형태로 변경된 정보는 텍스트 음성 변환 모듈(TTS 모듈)에 의해 음성 형태로 변환될 수 있다.
텍스트 음성 변환 모듈(TTS 모듈)은 TTS 모듈에 입력될 입력 데이터에 포함된 텍스트 형태의 정보를 음성 형태의 정보인 음성 신호로 변환할 수 있다. TTS 모듈은 자연어 생성 모듈로부터 텍스트 형태의 정보를 수신하고, 텍스트 형태의 정보를 음성 형태의 정보로 변환하여 출력할 수 있다.
상술한 바와 같이, TTS 모듈에 입력되는 입력 데이터는 입력된 사용자 음성을 분석하여 획득된 응답일 수 있다. 한편, 다른 실시 예로 입력 데이터는 전자 책과 같이 메모리(110)에 기저장되거나, 외부 서버로부터 수신된 텍스트 데이터일 수 있다. 이때, 프로세서(120)는 기저장되거나, 수신된 입력 데이터를 TTS 모듈에 입력하여 입력 데이터에 대응되는 음성 신호를 획득할 수 있다.
설명의 편의를 위하여, 이하에서는 사용자 음성을 분석하여 획득된 응답 음성에 대한 정보, 및 기저장되거나 수신된 텍스트 데이터 모두 TTS 모듈에 입력될 ‘입력 데이터’로 지칭하기로 한다.
이때, 프로세서(120)는 TTS 모듈에서 변환된 음성 신호를 스피커로 출력하지 않고, 검증 모듈에 입력하여 음성 신호의 오류를 검출할 수 있다. 여기서, 음성 신호의 오류는 TTS 모듈의 동작의 오류에 의해 발생된 것일 수 있다.
구체적으로, 프로세서(120)는 TTS 모듈에서 출력된 음성 신호를 검증 모듈에 입력하고, 검증 모듈에서는 TTS 모듈에서 출력된 음성 신호를 텍스트로 변환할 수 있다. 이 경우, 검증 모듈은 자동 음성 인식(ASR) 모듈을 포함할 수 있으며, 이때, 자동 음성 인식 모듈은 상술한 사용자 음성을 텍스트 데이터로 변환하는 구성과 동일한 구성일 수도 있고, 별도의 구성일 수도 있다.
프로세서(120)는 검증 모듈을 통해 변환된 텍스트와 입력 데이터를 비교하여 TTS 모듈에서 출력된 음성 신호의 오류를 검출할 수 있다. 여기서 검증 모듈을 통해 변환된 텍스트와 비교되는 입력 데이터는 기저장되거나 외부 장치로부터 수신된 텍스트 데이터일 수도 있고, 상술한 자연어 생성 모듈에서 출력된 응답 음성에 대한 정보에 포함된 텍스트 데이터일 수도 있다. 이와 같이, TTS 모듈에 입력된 텍스트 데이터와, TTS 모듈에서 출력된 음성 신호를 변환한 텍스트 데이터를 비교하여 TTS 모듈의 동작의 오류를 검출할 수 있다. 텍스트를 비교하여 음성 신호의 오류를 검출하는 실시 예는 이하 도 8을 참조하여 보다 자세히 설명하기로 한다.
한편, 입력 데이터는 텍스트 데이터 뿐만 아니라 텍스트 데이터에 대한 감정과 관련된 데이터를 포함할 수 있다. 이때, 감정과 관련된 데이터는 텍스트 데이터와 함께 기저장되거나 외부 장치로부터 수신된 것일 수도 있고, 자연어 처리(NLP) 모듈에서 텍스트 데이터와 함께 출력된 것일 수도 있다.
한편, 프로세서(120)는 검증 모듈을 통해 TTS 모듈에서 출력된 음성 신호의 주파수 특성에 기초하여 TTS 모듈에서 출력된 음성 신호의 감정을 식별할 수 있다. 이 경우, 프로세서(120)는 TTS 모듈에서 출력된 음성 신호를 텍스트로 변환하는 동작은 생략 가능하다.
프로세서(120)는 감정 데이터베이스를 이용하여 출력된 음성 신호의 감정을 식별할 수 있다. 여기서, 감정 데이터베이스는 사용자의 감정에 따른 음성 신호의 주파수 특성이 저장된 것일 수 있다. 이때, 감정 데이터베이스는 전자 장치(100) 내에 포함될 수 있으나, 이는 일 실시 예에 불과할 뿐, 외부 서버에 포함될 수 있다. 그리고, 프로세서(120)는 식별된 음성 신호의 감정과 TTS 모듈에 입력된 감정과 관련된 데이터를 비교하여 TTS 모듈의 동작의 오류를 검출할 수 있다.
구체적으로, 프로세서(120)는 TTS 모듈에서 출력된 음성 신호의 스펙트럼을 분석하여 주파수 특성을 획득할 수 있다. 예를 들어, 프로세서(120)는 TTS 모듈에서 출력된 음성 신호의 주파수, 진폭, 주기, 데시벨 등을 이용하여 음성 신호의 높낮이와 같은 주파수 특성을 획득하고, 주파수, 진폭 주기의 변화를 이용하여 음성의 높낮이 변화와 같은 주파수 특성을 획득할 수 있다. 그리고, 프로세서(120)는 획득된 음성 신호의 높낮이 및 높낮이의 변화를 이용하여 감정 데이터베이스에서 음성 신호에 대응되는 감정, 보이스 톤, 스타일, 운율 등을 식별할 수 있다. 여기서, 음성 신호에 대응되는 감정은 기쁨, 슬픔, 분노 등 음성에서 느껴지는 감정 상태를 의미할 수 있다. 그리고, 보이스 톤은 음성 신호의 전체적인 음의 높낮이를 의미하는 것일 수 있다. 그리고, 스타일은 말투와 관련된 것으로 자상한 스타일, 발랄한 스타일, 빨리 말하는 스타일 등을 의미할 수 있다. 그리고, 운율은 음성 신호의 음운, 억양, 강세 등을 의미할 수 있다.
한편, 프로세서(120)는 스타일 토큰(style token)에 기초하여 음성 신호의 주파수 특성을 획득할 수도 있다. 여기서, 스타일 토큰이란 음성 신호의 감정, 보이스 톤, 스타일, 운율 정보 등을 포함하는 특성을 결정하기 위한 임의적 요소를 의미할 수 있다. 예를 들어, 스타일 토큰은 글로벌 스타일 토큰(global style token, GST)일 수 있다.
구체적으로, 스타일 토큰은 기저장된 복수의 임의적 요소일 수 있으며, 음성 신호의 특성에 따라 각 임의적 요소에 가중치가 부여될 수 있다. 전자 장치는 가중치가 부여된 임의적 요소를 합하여 원하는 음성 신호의 특성을 획득할 수 있다. 예를 들어, 가중치가 반영된 스타일 토큰을 병합하여 생성된 특성에 기초하여 음성 합성이 수행되는 경우, 화자(여자, 남자, 유명인 등), 감정 및 성격 상태(기쁨, 화남, 바쁨, 부드러움, 퉁명스러움 등) 등을 표현할 수 있게 된다. 이때, 음성 특성에 따른 스타일 토큰 별 가중치에 대한 파라미터는 학습 후 저장된 것일 수 있다.
그리고, 프로세서(120)는 식별된 감정, 보이스 톤, 스타일, 운율 등과 TTS 모듈에 입력된 입력 데이터에 포함된 감정과 관련된 데이터와 비교하여, TTS 모듈의 동작의 오류를 검출할 수 있다. 주파수 특성을 비교하여 음성 신호의 오류를 검출하는 실시 예는 이하 도 9를 참조하여 보다 자세히 설명하기로 한다.
한편, 프로세서(120)는 TTS 모듈에서 출력된 음성 신호의 길이와 TTS 모듈에 입력된 입력 데이터에 포함된 텍스트의 길이를 비교하여 출력된 음성 신호의 오류를 검출할 수 있다. 이때, 프로세서(120)는 시간 관점에서의 음성 신호의 길이와 입력 데이터에 포함된 텍스트의 문자(character) 수 및 어절(word)의 수 등을 바탕으로 획득된 시간의 길이를 비교하여 출력된 음성 신호의 오류를 검출할 수 있다.
구체적으로, 프로세서(120)는 TTS 모듈에서 출력된 음성 신호의 길이와 TTS 모듈에 입력된 입력 데이터에 포함된 텍스트의 길이가 기설정된 값 이상 차이나면, TTS 모듈에서 출력된 음성 신호에 오류가 있는 것으로 판단할 수 있다. 이와 같이, 문장의 길이를 비교하여 음성 신호의 오류를 검출하는 실시 예는 이하 도 10를 참조하여 자세히 설명하기로 한다.
이상에서는 오류를 검출하는 각 실시 예 구분되어 수행되는 것으로 기재되었으나, 실제 구현시에는 오류 검출 방법이 두 개 이상 함께 사용될 수 있다.
또 다른 실시 예로, 프로세서(120)는 TTS 모듈에서 출력된 음성 신호를 스피커(도 3의 140)를 통해 전자 장치(100)의 외부로 사운드로 출력하고, 전자 장치(100)에 구비된 마이크(도 3의 150)를 통해 입력되어 음성 신호로 변환되면, 변환된 음성 신호를 검증 모듈에 입력하여 TTS 모듈에서 출력된 음성 신호의 오류를 검출할 수 있다. 이에 대해서는 이하 도 6 및 도 7을 참조하여 자세히 설명하기로 한다.
한편, 음성 신호의 오류 검출 결과를 바탕으로, 프로세서(120)는 입력 데이터를 보정할 수 있다. 구체적으로, TTS 모듈에서 출력된 음성 신호의 오류가 검출되면, 프로세서(120)는 TTS 모듈에 입력된 입력 데이터를 보정하여 보정된 입력 데이터를 획득할 수 있다.
예를 들어, 음성 신호의 오류가 검출되면, 프로세서(120)는 입력 데이터에 포함된 텍스트의 띄어쓰기 및 문장 부호 중 적어도 하나를 보정할 수 있다. 일 실시 예로, TTS 모듈에 입력된 입력 데이터에 포함된 텍스트가 "무지개떡 같은데"이고, TTS 모듈에서 출력된 음성 신호는 "무지개 같은데"와 같이, 텍스트 또는 문장 길이가 다른 경우, 프로세서(120)는 "무∨지∨개∨떡 같은데"와 같이 오류가 발생한 "무지개떡"의 띄어쓰기를 조절할 수 있다. 다른 실시 예로, 프로세서(120)는 "무.지.개.떡 같은데"와 같이 오류가 발생한 "무지개떡"의 문장 부호를 조절(추가, 삭제)할 수 있다.
다른 실시 예로, 음성 신호의 오류가 검출되면, 프로세서(120)는 입력 데이터에 포함된 텍스트 데이터에 마크업 언어(Markup Language)를 적용하여 입력 데이터를 보정할 수 있다. 여기서, 마크업 언어는 문서나 데이터의 구조를 명기하는 언어 중 하나로, 텍스트 데이터와는 별도로 교정 부호, 주석, 문서의 구조를 표현하는 역할을 한다.
예를 들어, 마크업 언어는 음성 신호와 텍스트 데이터 간 연결을 위한 색인 기능을 제공하는 HVML(HyperVoice Markup Language), SSML(Speech Synthesis Markup Language) CCXML(Call Control eXtensible Markup Language), VXML(Voice eXtensible Markup Language) 등을 포함할 수 있다.. 여기서, SSML은 TTS 모듈에서 음성의 높낮이 또는 빠르기 등의 여러 효과를 지원하기 위한 음성 합성 생성 언어를 의미하는 것일 수 있다.
예를 들어, 음성 신호의 오류가 검출되면, 프로세서(120)는 입력 데이터에 포함된 텍스트 데이터를 "<emphasis> 무지개떡 </emphasis> 같은데"와 같이 보정할 수 있다.
<emphasis>는 음성 신호에서 '무지개떡'이라는 단어를 강조하는 효과를 제공하는 태그이다. 이외에도 음성의 볼륨, 속도 및 피치를 제어하기 위한 태그인 <prosody>, 단락 사이에 일시 중지를 추가하기 위한 태그인 <p>, 문장 사이에 일시 중지를 추가하기 위한 태그인 <s> 등의 다양한 태그가 사용될 수 있다.
한편, TTS 모듈에 입력된 입력 데이터 포함된 텍스트 데이터가 영어인 경우에도 본 개시의 기술은 적용될 수 있다. 예를 들어, TTS 모듈에 입력된 입력 데이터에 포함된 텍스트 데이터가 "I miss you, Grandad"이고, TTS 모듈에서 출력된 음성 신호는 "I kiss you, Grandad"와 같이, 텍스트 또는 문장 길이가 다른 경우, 프로세서(120)는 "I miss. you. Grandad"와 같이 오류가 발생한 "miss"의 문장 부호를 조절할 수 있다. 또 다른 실시 예로, 음성 신호의 오류가 검출되면, 프로세서(120)는 입력 데이터에 포함된 텍스트 데이터를 "I <emphasis> miss </emphasis> you, Grandad"와 같이 보정할 수 있다.
그리고, 프로세서(120)는 보정된 입력 데이터를 다시 TTS 모듈에 입력하여 보정된 입력 데이터에 대응되는 보정된 음성 신호를 획득할 수 있다. 그리고, 프로세서(120)는 보정된 음성 신호를 TTS 모듈로부터 출력할 수 있다. 여기서, TTS 모듈에서 출력된 보정된 음성 신호는 전자 장치(100)에 구비된 스피커(도 3의 140)를 통해 전자 장치(100)의 외부로 출력될 수 있다. 또 다른 실시 예로, TTS 모듈에서 출력된 보정된 음성 신호는 검증 모듈로 다시 입력될 수 있다.
이때, 프로세서(120)는 스피커(도 3의 140)를 통해 음성 신호를 출력한 후, 검증 동작에 따라 출력된 음성 신호와 다른 보정된 음성 신호가 획득되면, 보정된 음성 신호와, 음성 신호가 보정되었음을 알리는 인디케이터를 함께 출력할 수 있다. 이에 대해서는 이하 도 3을 참조하여 자세히 설명하기로 한다.
상술한 바와 같이, TTS 모듈에 입력된 입력 데이터를 이용하여 TTS 모듈에서 출력된 음성 신호의 오류를 검출 및 보정함으로써, 더욱 정확한 대화 시스템 구현이 가능해지는 효과가 있다.
도 3은 도 2에 개시된 전자 장치의 구체적인 구성을 설명하기 위한 블럭도이다.
도 3을 참조하면, 전자 장치(100)는 메모리(110), 프로세서(120), 통신부(130), 스피커(140), 마이크(150) 및 디스플레이(160)를 포함할 수 있다.
여기서, 메모리(110) 및 프로세서(120)의 일부 구성은 도 2에 도시된 구성과 동일한 바, 중복된 기재는 생략한다.
통신부(130)는 다양한 유형의 통신 방식에 따라 다양한 유형의 외부 장치와 통신을 수행하는 구성이다. 여기서, 전자 장치(100)와 통신하는 외부 장치는 서버 또는 사용자 단말 장치 등일 수 있다.
통신부(130)가 외부 장치와 통신 연결되는 것은 제3 기기(예로, 중계기, 허브, 엑세스 포인트, 서버 또는 게이트웨이 등)를 거쳐서 통신하는 것을 포함할 수 있다. 무선 통신은, 예를 들면, LTE, LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용하는 셀룰러 통신을 포함할 수 있다. 일 실시예에 따르면, 무선 통신은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(Zigbee), NFC(near field communication), 자력 시큐어 트랜스미션(Magnetic Secure Transmission), 라디오 프리퀀시(RF), 또는 보디 에어리어 네트워크(BAN) 중 적어도 하나를 포함할 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 무선 통신 또는 유선 통신이 수행되는 네트워크는 텔레커뮤니케이션 네트워크, 예를 들면, 컴퓨터 네트워크(예: LAN 또는 WAN), 인터넷, 또는 텔레폰 네트워크 중 적어도 하나를 포함할 수 있다.
프로세서(120)는 통신부(130)를 통해 TTS 모듈에서 출력된 음성 신호를 외부 장치에 전송할 수 있다. 구체적으로, TTS 모듈에서 출력된 음성 신호는 음성 파형 형태의 정보일 수 있다. 이때, 외부 장치는 수신된 음성 파형 형태의 정보를 출력하는 스피커를 포함한 장치일 수 있다.
한편, 통신부(130)를 통해 외부 장치로부터 음성 신호가 수신될 수 있다. 일 실시 예로, 통신부(130)를 통해 수신되는 음성 신호는 외부 장치에 구비된 마이크를 통해 수신된 음성 신호일 수 있다. 여기서, 마이크를 통해 수신된 음성 신호는 외부 장치에 구비된 스피커를 통해 출력된 음성 신호일 수 있다. 그리고, 여기서, 외부 장치에 구비된 스피커를 통해 출력된 음성 신호는 전자 장치(100)로부터 통신부(130)를 통해 외부 장치로 전송된 음성 신호일 수 있다.
그리고, 프로세서(120)는 TTS 모듈에 입력된 입력 데이터를 바탕으로 외부 장치로부터 통신부(130)를 통해 수신된 음성 신호의 오류를 검출할 수 있다.
그리고, 통신부(130)를 통해 수신된 음성 신호의 오류가 검출되면, 프로세서(120)는 보정된 음성 신호를 획득하여, 통신부(130)를 통해 다시 외부 장치로 재전송할 수 있다. 오류 검출 방법 및 오류 보정 방법에는 본 개시의 검출 방법 및 보정 방법이 모두 적용될 수 있다.
스피커(140)는 오디오 처리부에 의해 디코딩이나 증폭, 노이즈 필터링과 같은 다양한 처리 작업이 수행된 각종 오디오 데이터뿐만 아니라 각종 알림 음이나 음성 메시지를 출력하는 구성이다. 특히, 스피커(140)는 음성 파형 형태의 음성 신호를 자연어 형태의 사운드로 출력할 수 있다. 이때, 출력되는 음성은 전자 책과 같은 기저장된 텍스트 데이터에 대응되는 것이거나, 사용자 문의에 대한 응답이 자연어 형태의 음성 메시지로 출력되는 것일 수 있다. 한편, 오디오를 출력하기 위한 구성은 스피커로 구현될 수 있으나, 이는 일 실시 예에 불과할 뿐, 오디오 데이터를 출력할 수 있는 출력 단자로 구현될 수 있다.
마이크(150)는 발화하는 사용자 음성을 입력받기 위한 구성이다. 마이크(150)는 프로세서(120)의 제어에 의해 외부에서부터 수신되는 음성(speech) 또는 사운드(sound)를 전기적인 신호로 생성(또는, 변환)한다. 마이크(150)에서 생성된 전기적인 신호는 프로세서(120)의 제어에 의해 변환되어 메모리(110)에 저장될 수 있다.
프로세서(120)는 마이크(150)를 통해 수신된 사용자 음성 신호를 음성 인식 모듈에 입력하여 사용자 음성 신호를 텍스트로 변환할 수 있다. 이때, 프로세서(120)는 마이크(150)를 통해 트리거링 워드(triggering word)가 포함된 사용자 음성 신호가 수신되면, 입력된 사용자 음성 신호를 음성 인식 모듈에 입력할 수 있다.
한편, 프로세서(120)는 마이크(150)를 통해 수신된 음성 신호를 검증 모듈에 입력할 수 있다. 이때, 마이크(150)를 통해 수신된 음성은 스피커(140)를 통해 출력된 음성일 수 있다.
이때, 프로세서(120)는 마이크(150)를 통해 수신된 음성 신호의 화자를 식별하고, 식별 결과에 따라 수신된 음성 신호를 음성 인식 모듈에 입력하거나, 검증 모듈에 입력할 수 있다. 구체적으로, 프로세서(120)는 마이크(150)를 통해 수신된 음성 신호의 화자를 식별한 결과, 음성 신호가 사용자에 의해 발화된 것이면, 수신된 음성 신호를 음성 인식 모듈에 입력하여 텍스트로 변환할 수 있다.
한편, 프로세서(120)는 마이크(150)를 통해 수신된 음성 신호가 스피커(140)에 의해 출력된 응답 음성 신호이면, 수신된 음성 신호를 검증 모듈에 입력하여 수신된 음성 신호의 오류를 검출할 수 있다. 이때, 프로세서(120)는 스피커(140)로 출력된 음성 신호의 출력을 위해 TTS 모듈에 입력된 입력 데이터를 이용하여 마이크(150)를 통해 수신된 음성 신호의 오류를 검출할 수 있다. 구체적으로, 프로세서(120)는 마이크(150)를 통해 수신된 음성 신호를 음성 인식 모듈을 이용하여 텍스트로 변환한 후 입력 데이터에 포함된 텍스트 데이터와 비교하거나, 주파수 특성을 이용하여 마이크(150)를 통해 수신된 음성 신호의 오류를 검출할 수 있다. 또는, 프로세서(120)는 마이크(150)를 통해 수신된 음성 신호의 길이와 입력 데이터에 포함된 텍스트 데이터의 길이를 비교하여 마이크(150)를 통해 수신된 음성 신호의 오류를 검출할 수도 있다.
이때, 마이크(150)를 통해 수신된 음성 신호의 오류가 검출되면, 프로세서(120)는 입력 데이터에 포함된 텍스트의 띄어쓰기를 변경하거나, 문장 부호를 변경하거나 SSML을 적용하여, 보정된 입력 데이터를 획득할 수 있다. 그리고, 프로세서(120)는 보정된 입력 데이터를 TTS 모듈에 입력하여 보정된 음성 신호를 획득할 수 있다. 그리고, 프로세서(120)는 보정된 음성 신호를 스피커(140)를 통해 출력하는 경우, 보정된 음성임을 알리는 인디케이터를 함께 출력할 수 있다.
이때, 인디케이터는 "그게 아니고", "음~", "다시 말하면", "아!아니다" 등의 추임새 음성을 포함할 수 있다. 이러한 추임새 음성은 보정된 입력 데이터에 포함된 감정 정보, 스타일 정보, 텍스트 정보에 따라 선택될 수 있다. 추임새 음성은 메모리(110)에 기저장된 녹음 음성일 수도 있고, TTS 모듈에 의해 합성된 합성음일 수도 있고, 연산량 및 대역폭 효율화를 위한 캐싱(caching) 방법 등에 의해 이전에 재생된 음성 신호를 재사용하는 방식으로 획득될 수도 있다.
예를 들어, 대화 시스템이 구현되는 상황이 진지한 분위기이면, 프로세서(120)는 복수의 인디케이터 중 “음.. 다시 말하면,”과 같은 추임새 음성을 선택할 수 있다. 이때, 프로세서(120)는 GPS 센서를 통한 위치 센싱 결과 전자 장치(100)가 위치한 장소가 사무실인 경우, 화자를 식별한 결과 화자가 회사 대표 등의 특정인인 경우, 입력 데이터에 포함된 출력 음성의 목소리가 아나운서의 목소리로 선택된 경우, 카메라 등으로 주변을 인물의 표정 등을 감지한 결과 등에 기초하여 대화 시스템이 구현되는 상황이 진지한 분위기임을 감지할 수 있다.
한편, 대화 시스템이 구현되는 상황이 즐거운 분위기이면, 프로세서(120)는 복수의 인디케이터 중 “아! 실수~ 그게 아니고~”와 같은 추임새 음성을 선택할 수 있다. 이때, 프로세서(120)는 GPS 센서를 통한 위치 센싱 결과, 전자 장치(100)의 위치가 산 또는 바다 등의 야외인 경우, 캘린더 어플리케이션에 저장된 일정 정보에 외부 활동이 포함된 경우, 식별된 화자가 어린이인 경우, 입력 데이터에 포함된 출력 음성의 목소리가 코미디언인 경우 등에 기초하여 대화 시스템이 구현되는 상황이 즐거운 분위기임을 감지할 수 있다.
그리고, 프로세서(120)는 "그게 아니고", "음~", "다시 말하면", "아!아니다" 등의 인디케이터를 스피커(140)를 통해 먼저 출력하고, 이어 보정된 음성 신호를 출력할 수 있다.
디스플레이(160)는 프로세서(120)의 제어에 따라 다양한 정보를 표시할 수 있다.
구체적으로, 디스플레이(160)는 음성 신호로 출력될 텍스트 데이터를 표시할 수 있다.
또는, 실시 예에 따라, 디스플레이(160)는 사용자 음성 명령에 대응되는 응답 정보를 표시할 수 있다. 또는 디스플레이(160)는 응답 정보가 수정되었음을 알리는 메시지를 표시할 수 있다. 디스플레이(160)는 터치 패널과 함께 터치 스크린으로 구현될 수 있다.
한편, 도 3에는 스피커(140), 마이크(150) 및 디스플레이(160)가 모두 포함된 것으로 도시되었으나, 실제 구현시에는 실시 예에 따라, 스피커(140), 마이크(150) 및 디스플레이(160) 중 적어도 하나는 생략될 수도 있다. 예를 들어, 전자 장치(100)가 서버인 경우에는, 전자 장치(100)는 메모리(110), 프로세서(120), 통신부(130)만을 포함할 수 있다.
한편, 도 3에는 도시되지 않았지만, 실시 예에 따라 전자 장치(100)는 주변 환경을 센싱하기 위한 센서, 카메라, 외부 단자와 연결하기 위한 다양한 외부 입력 포트, 다양한 세서 등을 더 포함할 수 있음은 물론이다.
도 4, 도 6 내지 도 9 및 도 11은 TTS 모듈을 검증하는 다양한 실시 예를 설명하기 위한 도면이다. 도 4, 도 6, 도 7에서는 설명의 편의를 위하여 일반적인 음성 인식 동작 과정은 실선으로 도시하였으며, 검증 동작 과정은 점선으로 도시하였다.
구체적으로, 도 4는 TTS 모듈에 의해 출력된 음성 신호를 스피커(140)를 통해 출력하지 않은 상태로 검증 동작을 수행하는 실시 예를 도시한 것이다.
전자 장치(100)는 음성 합성(TTS) 모듈(410)에 입력될 입력 데이터(40)를 획득하고, 획득된 입력 데이터(40)를 TTS 모듈(410)에 입력(41)하여 음성 신호를 획득할 수 있다. 이때, 전자 장치(100)는 메모리(미도시)에 기저장된 데이터 또는 외부 장치로부터 수신된 데이터를 입력 데이터(40)로 획득하거나, 사용자(10)가 발화한 음성을 분석하여 자연어 처리 모듈에서 출력된 응답 정보를 입력 데이터(40)로 획득할 수 있다. 입력된 사용자(10)의 음성을 분석하여 입력 데이터(40)를 획득하는 동작은 이하 도 5를 참조하여 자세히 설명하기로 한다.
그리고, 전자 장치(100)는 TTS 모듈(410)에 의해 획득된 음성 신호를 스피커(140)를 통해 출력할 수 있다(42). 그리고, 전자 장치(100)는 TTS 모듈(410)에 의해 획득된 음성 신호를 검증 모듈(420)에 입력(43)하여 음성 신호의 오류를 검출할 수 있다. 이때, 도 4에서는 획득된 음성 신호를 스피커(140)를 통해 출력하면서 검증 동작을 수행하는 것으로 도시하였으나, 실제 구현시에는 TTS 모듈(410)에 의해 획득된 음성 신호를 스피커(140)를 통해 출력(42)하기 전에 검증 동작을 수행할 수도 있다. 즉, TTS 모듈(410)에 의해 획득된 음성 신호를 스피커(140)를 통해 출력(42)하는 동작은 생략될 수 있다.
구체적으로, 전자 장치(100)는 입력 데이터(40)를 검증 모듈(420)에 입력(44)하고, 입력된 음성 신호와 입력 데이터(40)를 비교하여 음성 신호의 오류를 검증할 수 있다.
이때, 전자 장치(100)는 검증 모듈(420)을 통해 텍스트 비교, 주파수 특성 비교, 문장 길이 비교 등을 통해 음성 신호의 오류를 검출할 수 있다. 이에 대해서는 이하 도 8, 도 9 및 도 11을 참조하여 보다 자세히 설명하기로 한다.
검증을 수행한 결과, 음성 신호에 오류가 없으면, 전자 장치(100)는 TTS 모듈(410)에서 획득된 음성 신호를 스피커(140)를 통하여 출력할 수 있다. 또는, 입력 데이터(40)를 다시 TTS 모듈(410)에 입력(42)하여 획득된 음성 신호를 스피커(140)를 통해 출력(42)할 수도 있다. 또는, 획득된 음성 신호를 스피커(140)를 통해 출력하고 있었다면, 음성 신호의 출력(42)을 계속 진행할 수 있다.
한편, 음성 신호에 오류가 있는 것으로 판단되면, 전자 장치(100)는 입력데이터를 보정하고, 보정된 입력 데이터를 포함하는 검증 결과를 TTS 모듈(410)에 입력(45)할 수 있다. 여기서, 보정된 입력 데이터는 텍스트 데이터의 띄어쓰기를 변경, 문장 부호를 변경, 마크업 언어를 적용한 것이거나, 감정과 관련된 데이터에 포함된 주파수 특성을 변경한 것일 수 있다. 도 4에서는 검증 모듈(420)에서 보정된 입력 데이터를 획득하는 것으로 도시하였으나, 실제 구현시에는 별도의 모듈에서 구현될 수도 있다.
그리고, 전자 장치(100)는 TTS 모듈(410)에서 출력된 보정된 음성 신호를 다시 검증 모듈로 입력(43)하여 재검증하거나, 스피커(140)를 통해 출력(42)할 수 있다.
이때, 기존 음성 신호를 스피커(140)를 통해 출력하고 있었다면, 전자 장치(100)는 음성 신호가 보정되었음을 알리는 인디케이터를 출력하고, 보정된 음성 신호를 출력할 수 있다. 예를 들어, 전자 장치(100)는 인디케이터로써 "그게 아니고", "음~", "다시 말하면", "아!아니다" 등을 스피커(140)를 통해 먼저 출력한 후, 이어 보정된 음성 신호를 출력할 수 있다.
상술한 바와 같이, TTS 모듈(410)에 입력된 입력 데이터와 TTS 모듈(410)에서 출력된 음성 신호를 비교하여 TTS 모듈에서의 음성 합성 동작의 오류를 검출할 수 있으며, 입력 데이터의 보정을 통해 보다 정확한 대화 시스템을 구현할 수 있게 된다.
한편, 이상에 기재한 도 4에서는 TTS 모듈(410)에서 출력된 음성 신호가 검증 모듈(420)로 전달되었으나, 도 6에 도시된 바와 같이 TTS 모듈(410)에서 획득된 음성 신호를 스피커(140)를 통해 외부로 출력하고, 마이크(150)를 통해 수신된 응답 음성 신호를 검증 모듈(420)로 전달할 수도 있다.
도 5는 입력된 사용자 음성에 대응되는 응답이 TTS 모듈에 입력되는 입력 데이터인 실시 예를 설명하기 위한 도면이다.
도 5를 참조하면, 전자 장치(100)는 마이크(150)를 통해 사용자가 발화한 사용자 음성을 수신하고, 수신된 사용자 음성을 음성 인식(ASR) 모듈(510)에 입력하여 텍스트 데이터로 변환할 수 있다. 그리고, 전자 장치(100)는 변환된 텍스트 데이터를 자연어 처리(NLP) 모듈(520)에 입력하여 사용자 음성에 대한 응답 음성에 대한 정보를 입력 데이터(40)로 획득할 수 있다. 여기서, 입력 데이터(40)는 응답 내용의 텍스트 데이터 및 응답 내용에 대응되는 감정(emotion)과 관련된 정보를 포함할 수 있다. 여기서, 감정과 관련된 정보는 보이스 톤 정보, 스타일 정보 및 운율 정보 등을 포함할 수 있다.
이와 같이 전자 장치(100)는 사용자 음성을 분석하여 획득된 입력 데이터(40)를 TTS 모듈에 입력하여 사용자 음성에 대한 응답 음성 신호를 획득할 수 있다.
도 6은 TTS 모듈에서 출력된 음성 신호를 스피커를 통해 출력하고, 마이크를 통해 출력된 음성 신호를 다시 수신하여 입력 데이터와 비교함으로써 TTS 모듈의 음성 합성 동작이 정상인지 검증하는 실시 예를 도시한 것이다.
도 6을 참조하면, 전자 장치(100)는 음성 합성(TTS) 모듈(410)에 입력될 입력 데이터(40)를 획득하고, 획득된 입력 데이터(40)를 TTS 모듈(410)에 입력(61)하여 음성 신호를 획득할 수 있다. 이때, 전자 장치(100)는 메모리(미도시)에 기저장된 데이터 또는 외부 장치로부터 수신된 데이터를 입력 데이터로 획득하거나, 도 5에 도시된 바와 같이, 사용자(10)가 발화한 음성을 마이크(150)를 통해 수신하고, 수신된 사용자 음성을 자동 음성 인식(ASR) 모듈 및 자연어 처리 모듈(NLP)을 통해 처리하여 사용자 음성에 대한 응답 정보를 획득하고, 획득된 응답 정보를 입력 데이터(40)로 획득할 수 있다.
그리고, 전자 장치(100)는 TTS 모듈(410)에서 출력된 음성 신호를 스피커(140)를 통해 출력할 수 있다(62). 그리고, 스피커(140)를 통해 출력된 음성 신호는 마이크(150)를 통해 수신(63)될 수 있다.
그리고, 전자 장치(100)는 마이크(150)를 통해 수신된 음성 신호를 검증 모듈(420)에 입력하여 응답 음성 신호의 오류를 검출할 수 있다(64).
여기서, 전자 장치(100)는 입력 데이터(40)를 검증 모듈(420)에 입력(65)하고, 검증 모듈(420)은 입력 데이터(40)를 이용하여 마이크(150)를 통해 입력된 음성 신호의 오류를 검출할 수 있다. 구체적으로, 전자 장치(100)는 텍스트 비교, 주파수 특성 비교, 문장 길이 비교 등을 통해 음성 신호의 오류를 검출할 수 있다. 이에 대해서는 이하 도 8, 도 9 및 도 11을 참조하여 보다 자세히 설명하기로 한다.
검증을 수행한 결과, 음성 신호에 오류가 없으면, 전자 장치(100)는 TTS 모듈(410)에서 출력된 음성 신호를 스피커(140)로 계속 출력하여 음성 신호의 출력을 완료할 수 있다.
한편, 음성 신호에 오류가 있는 것으로 판단되면, 전자 장치(100)는 검증 모듈(420)을 통해 입력 데이터(40)를 보정하고, 보정된 입력 데이터를 TTS 모듈(410)에 입력(66)할 수 있다. 구체적으로, 입력 데이터(40)에 포함된 텍스트 데이터의 띄어쓰기를 변경, 문장 부호를 변경, 마크업 언어를 적용한 것이거나, 감정과 관련된 정보에 포함된 주파수 특성을 변경한 것일 수 있다. 도 6에서는 검증 모듈(420)에서 보정된 입력 데이터를 획득하는 것으로 도시하였으나, 실제 구현시에는 별도의 모듈에서 구현될 수도 있다.
그리고, 전자 장치(100)는 TTS 모듈(410)에서 출력된 보정된 음성 신호를 스피커(140)를 통해 출력(62)할 수 있다.
이때, 기존 음성 신호를 스피커(140)를 통해 출력하고 있었다면, 전자 장치(100)는 음성 신호가 보정되었음을 알리는 인디케이터를 출력하고, 보정된 음성 신호를 출력할 수 있다. 예를 들어, 전자 장치(100)는 인디케이터로써 "그게 아니고", "음~", "다시 말하면", "아!아니다" 등을 스피커(140)를 통해 먼저 출력한 후, 이어 보정된 음성 신호를 출력할 수 있다.
한편, 실시 예에 따라 도 4에 도시된 검증 동작 및 도 6에 도시된 검증 동작이 함께 구현될 수도 있다.한편, 전자 장치(100)는 마이크(150)를 통해 수신된 음성 신호(71)를 음성 인식 모듈로 전달(72)할지, 검증 모듈로 전달(77)할지 식별하기 위해, 도 7에 도시된 바와 같이 수신된 음성 신호의 화자를 인식(710)할 수 있다.
도 7을 참조하면, 전자 장치(100)는 우선 사용자(10)가 발화한 사용자 음성을 마이크(150)를 통해 수신하고, 수신된 음성 신호(71)의 화자를 인식할 수 있다. 그리고, 전자 장치(100)는 화자 인식(710) 결과에 따라 수신된 음성 신호를 다르게 처리할 수 있다. 화자 인식 결과, 수신된 음성 신호의 화자가 사용자(10)인 것으로 판단되면, 전자 장치(100)는 수신된 음성 신호를 음성 인식(ASR) 모듈(510)에 입력(72)할 수 있다. 그리고, 전자 장치(100)는 음성 인식(ASR) 모듈(510) 및 자연어 처리(NLP)모듈(520) 을 이용하여 TTS 모듈(410)에 입력될 입력 데이터(40)를 획득할 수 있다.
한편, 전자 장치(100)는 화자를 인식(710)한 결과 화자가 어떤 사용자인지 식별할 수 있으며, 화자 식별 결과에 기초하여 입력 데이터(40)를 획득할 수 있다. 구체적으로, 전자 장치(100)는 화자를 인식(710)한 결과에 기초하여 자연어 처리(NLP) 모듈(520)를 통해 식별된 사용자에 따라 다른 응답 음성에 대한 정보를 입력 데이터(40)로서 획득할 수 있다. 예를 들어, 가정과 같이 복수의 사용자가 전자 장치(100)를 사용할 수 있는 환경에서, 사용자 음성이 입력되면, 전자 장치(100)는 화자를 인식(710)하고, 화자가 어느 사용자인지 식별할 수 있다. 이때, 화자가 제1 사용자인 것으로 식별되면, 전자 장치(100)는 제1 사용자에 대응되는 응답 음성에 대한 정보를 입력 데이터(40)로서 획득할 수 있다. 예를 들어, 전자 장치(100)는 응답 텍스트와 관련된 감정 정보 뿐만 아니라, 제1 사용자가 선호하는 보이스 톤 정보, 음성 스타일 정보, 운율 정보 등을 입력 데이터(40)로써 획득할 수 있다.
그리고, 전자 장치(100)는 획득된 입력 데이터(40)를 TTS 모듈(410)에 입력(73)할 수 있다.
각 모듈에서의 동작은 도 4 내지 도 6과 동일한 바, 중복되는 설명은 생략하기로 한다.
한편, 전자 장치(100)는 TTS 모듈(410)에서 출력된 입력 데이터에 대한 음성 신호를 스피커(140)를 통해 출력(74)할 수 있다. 그리고, 스피커(140)를 통해 출력된 음성 신호는 마이크(150)를 통해 수신(76)될 수 있다. 이때, 실시 예에 따라, 전자 장치(100)는 TTS 모듈(410)에서 출력된 음성 신호를 검증 모듈(420)로 입력(75)할 수도 있다.
이때, 전자 장치(100)는 마이크(150)를 통해 수신되는 음성 신호(71)가 사용자 음성 신호인지 스피커(140)에서 출력된 응답 음성 신호인지 식별하기 위해 화자를 인식(710)할 수 있다. 마이크(150)를 통해 수신된 음성 신호의 화자가 사용자인 것으로 판단되면, 전자 장치(100)는 일반적인 음성 인식 동작을 수행하기 위해, 수신된 음성을 음성 인식(ASR) 모듈(510)로 입력(72)할 수 있다.
한편, 마이크(150)를 통해 수신된 음성 신호가 스피커(140)를 통해 출력된 것으로 판단되면, 전자 장치(100)는 수신된 음성 신호를 검증 모듈(420)로 입력(77)할 수 있다. 검증 모듈(420)은 도 8, 도 9 및 도 11에 도시된 바와 같이 텍스트를 이용한 검증 모듈, 주파수 특성을 이용한 검증 모듈, 문장 길이를 이용한 검증 모듈 중 적어도 하나를 포함할 수 있다. 구체적으로, 전자 장치(100)는 TTS 모듈(410)에 입력된 입력 데이터(40)를 검증 모듈(420)에 입력(78)하고, 검증 모듈(420)은 입력 데이터(40)와 입력(77)된 음성 신호를 비교하여 음성 신호의 오류를 검출할 수 있다.
한편, 화자 인식(710) 동작은 선택적인 것으로, 실시 예에 따라 전자 장치(100)는 스피커(140)를 통한 응답 음성 신호의 출력 후 기설정된 시간 이내에 마이크(150)를 통해 수신되는 음성 신호는 화자 인식(710) 동작 없이 바로 검증 모듈(420)에 입력할 수도 있다.
이때, 전자 장치(100)는 화자 식별 결과에 기초한 응답 음성에 대한 정보를 입력 데이터(40)로 검증 모듈(420)에 입력하여, TTS 모듈(410)에서 출력된 음성 신호를 비교하여 TTS 모듈에서의 음성 합성 동작의 오류를 검출할 수 있다.
그리고, 전자 장치(100)는 검증 결과에 기초하여, 음성 신호에 오류가 없으면, 음성 신호의 출력을 계속 진행하여 음성 출력을 완료할 수 있다. 한편, 음성 신호에 오류가 있으면, 전자 장치(100)는 자연어 처리 모듈(520)에서 출력된 입력 데이터(40)를 보정하고, 보정된 입력 데이터를 TTS 모듈(410)에 입력(79)할 수 있다.
일 실시 예로, 식별된 화자인 제1 사용자에 대응되는 응답 음성은 높은 음의 응답 음성인 반면, TTS 모듈(410)에서 출력된 음성 신호(74, 75)의 음은 다소 낮은 음일 때, 검증 모듈(420)은 음성의 피치(pitch)를 좀 더 높이도록 보정된 입력 데이터를 TTS 모듈(410)에 입력(79)할 수 있다. 예를 들어, 전자 장치(100)는 입력 데이터를 아래와 같이 보정할 수 있다.
<speak version=”1.0”>
<prosody pitch=”150Hz”> Transpose pitch to 150Hz </prosody>
</speak>
그리고, 전자 장치(100)는 TTS 모듈(410)을 통해 획득된 보정된 음성 신호를 스피커(140)를 통해 다시 출력(74)할 수 있다. 이때, 전자 장치(100)는 응답 음성 신호가 보정되었음을 알리는 인디케이터를 함께 출력할 수 있다.
도 8은 텍스트 비교를 통해 응답 음성 신호의 오류를 검출하는 실시 예를 설명하기 위한 도면이다. 도 8의 검증 모듈은 도 4, 도 6 및 도 7의 검증 모듈(420)과 동일한 구성일 수 있다.
도 8을 참조하면, 검증 모듈은 음성 인식(ASR) 모듈(810) 및 텍스트 검증 모듈(820)을 포함할 수 있다. 도 8에서는 설명의 편의를 위하여 복수의 모듈로 구분하여 설명하였으나, 실제 구현시에는 하나의 모듈로 구현되거나, 소프트웨어로 구현될 수도 있다.
구체적으로, 전자 장치는 TTS 모듈에서 출력된 음성 신호를 음성 인식 모듈(810)에 입력하여 음성 신호에 대응되는 텍스트 데이터를 획득할 수 있다. 이때, 음성 인식 모듈(810)에 입력되는 음성 신호는, TTS 모듈에서 출력된 후 음성 인식 모듈(810)로 바로 입력된 것이거나, TTS 모듈에서 스피커를 통해 외부로 출력된 후 마이크를 통해 입력된 음성 신호일 수 있다.
도 8에서는 도 5 및 도 7에 도시된 음성 인식 모듈(510)과 검증 모듈에 포함된 음성 인식 모듈(810)이 별개인 것으로 도시되었으나, 동일한 구성일 수도 있다.
그리고, 전자 장치는 음성 인식 모듈(810)에서 출력된 텍스트 데이터를 텍스트 검증 모듈(820)에 입력하여 음성 신호의 오류를 검출할 수 있다. 구체적으로, 텍스트 검증 모듈(820)은 TTS 모듈에 입력된 입력데이터에 포함된 텍스트 데이터와 음성 인식 모듈(810)에서 출력된 텍스트가 다르면, 음성 신호에 오류가 있는 것으로 판단할 수 있다.
한편, 음성 신호에 오류가 있는 것으로 판단되면, 텍스트 검증 모듈(780)은 입력 데이터를 보정할 수 있다.. 구체적으로, 텍스트 검증 모듈(820)은 입력 데이터에 포함된 텍스트 데이터의 띄어쓰기를 변경, 문장 부호를 변경 및 마크업 언어의 적용 중 적어도 하나를 수행하여 입력 데이터를 보정할 수 있다.. 예를 들어, 입력 데이터에 포함된 텍스트 데이터가 "무지개떡 같은데"이고, 음성 인식 모듈(810)에서 출력된 텍스트 데이터는 "무지개 같은데"와 같이, 텍스트가 다르면, 텍스트 검증 모듈(820)은 "무∨지∨개∨떡 같은데"와 같이 오류가 발생한 "무지개떡"의 띄어쓰기를 조절하거나, "무.지.개.떡 같은데"와 같이 오류가 발생한 "무지개떡"의 문장 부호를 조절하거나, "<emphasis> 무지개떡 </emphasis> 같은데"와 같이 텍스트 데이터에 마크업 언어, 예를 들어, SSML(Speech Synthesis Markup Language)을 적용하여 입력 데이터를 보정할 수 있다. 한편, 도 8에서는 텍스트 검증 모듈(820)이 입력 데이터를 보정하는 것으로 도시하였으나, 실제 구현시에는 텍스트 검증 모듈(820)에서는 보정 값만을 획득하고, 별도의 보정 모듈에서 보정 값을 반영하여 입력 데이터를 보정할 수도 있다.
그리고, 전자 장치는 보정된 입력 데이터를 포함하는 검증 결과를 TTS 모듈에 입력하여 보정된 음성 신호를 출력할 수 있다.
도 9는 주파수 특성 비교를 통해 음성 신호의 오류를 검출하는 실시 예를 설명하기 위한 도면이다. 도 9의 검증 모듈은 도 4, 도 6 및 도 7의 검증 모듈(420)과 동일한 구성일 수 있다.
도 9를 참조하면, 검증 모듈은 주파수 특성 분석 모듈(910) 및 주파수 특성 검증 모듈(920)을 포함할 수 있다. 도 9에서는 설명의 편의를 위하여 복수의 모듈로 구분하여 설명하였으나, 실제 구현시에는 하나의 모듈로 구현되거나, 소프트웨어로 구현될 수도 있다.
구체적으로, 전자 장치는 TTS 모듈에서 출력된 음성 신호를 주파수 특성 분석 모듈(910)에 입력하여 음성 신호의 주파수 특성을 획득할 수 있다. 이때, 주파수 특성 분석 모듈(910)에 입력되는 음성 신호는, TTS 모듈에서 출력된 후 주파수 특성 모듈(910)로 바로 입력된 것이거나, TTS 모듈에서 스피커를 통해 외부로 출력된 후 마이크를 통해 입력된 음성 신호일 수 있다.
이때, 주파수 특성 분석 모듈(910)은 음성 신호의 스펙트럼을 분석하여 주파수 특성을 획득할 수 있다. 예를 들어, 주파수 특성 분석 모듈(910)은 음성 신호의 주파수, 진폭, 주기, 데시벨 등을 이용하여 음성 신호의 높낮이와 같은 주파수 특성을 획득하고, 주파수, 진폭 주기의 변화를 이용하여 음성의 높낮이 변화와 같은 주파수 특성을 획득할 수 있다.
그리고, 주파수 특성 분석 모듈(910)은 획득된 음성 신호의 높낮이 및 높낮이의 변화를 이용하여 감정 데이터베이스에서 음성 신호의 감정, 보이스 톤, 스타일, 운율 등을 식별할 수 있다.
그리고, 전자 장치는 주파수 특성 분석 모듈(910)에서 획득된 음성 신호의 주파수 특성 분석 결과를 주파수 특성 검증 모듈(920)에 입력하여 음성 신호의 오류를 검출할 수 있다.
주파수 특성 검증 모듈(920)은 주파수 특성 분석 모듈(910)에 의해 식별된 음성 신호에 대한 감정, 보이스 톤, 스타일, 운율 등과 TTS 모듈에 입력된 입력 데이터에 포함된 감정과 관련된 데이터와 비교하여, 음성 신호에 오류가 있는 것으로 판단할 수 있다.
한편, 음성 신호에 오류가 있는 것으로 판단되면, 주파수 특성 검증 모듈(920)은 입력 데이터를 보정할 수 있다.. 구체적으로, 주파수 특성 검증 모듈(920)은 TTS 모듈에 입력된 입력 데이터에 포함된 텍스트 데이터에 마크업 언어, 예를 들어 SSML을 적용하여 입력 데이터를 보정할 수 있다.. 예를 들어, 주파수 특성 검증 모듈(920)은 <prosody pitch="150Hz> Transpose pitch to 150Hz </prosody>와 같이 SSML 적용을 통해 주파수 피치를 조절하여 음성의 높낮이 변경을 통해 의도된 감정이 표현되게 할 수 있다. 또 다른 예로, 주파수 특성 검증 모듈(920)은 'attributeName: Tone', 'attributevalue: 고음 보강, 저음 보강'과 같이 음성의 스펙트럼을 보정할 수 있다.
한편, 음성 신호의 감정, 스타일 등의 주파수 특성이 스타일 토큰을 이용하여 획득된 것인 경우, 주파수 특성 검증 모듈(920)은 스타일 토큰 별 가중치를 변경하여 입력 데이터를 보정할 수 있다.
한편, 음성 신호에 오류가 있는 것으로 판단되면, 주파수 특성 검증 모듈(920)은 출력 하드웨어(DAC(digital analog converter), 앰프 등)의 필터 수치 등을 조절하거나, 도 15에 도시된 바와 같이 전자 장치에 구비된 스피커의 특성을 조절할 수 있다. 이 경우, 주파수 특성 분석 모듈(910)에 입력되는 음성 신호는 스피커를 통한 출력 후 마이크에 의해 수신된 것일 수 있다.
일반적으로 AI 스피커, 로봇 등의 전자 장치에 장착된 스피커는 이상적인 결과를 만들지 못하는 경우 비일비재하며, 도 10에서는 이러한 환경에서 음성을 듣는 사용자가 제대로 된 소리를 듣게 하기 위해 스피커 출력을 보정하는 방식을 기술한다. 스피커를 통해 발성된 목소리가 잘 발성이 되었는지를 확인하려면 시스템에 포함된 마이크를 이용한 분석이 필요할 수 있다. 그런데, 이 마이크 조차 이상적이지 않은 경우, 잘못된 스피커 보정이 발생할 수 있다.
도 10을 참조하면, 이러한 문제점을 해결하기 위해 전자 장치는 먼저 정위상의 Test tone(1010) 및 역위상의 Test tone(1020)을 이용하여 마이크 특성(1030)을 도출할 수 있다. 여기서, Test tone은 전자 장치에서 출력된 정위상 또는 역위상의 Sweep 신호를 마이크가 수신함에 따라 생성된 스펙트럼을 의미하며, Sweep 신호는 저주파부터 고주파까지 전주파수 대역을 시간별로 표현하는 테스트 신호를 의미한다. 이때, Test tone(1010, 1020)의 가로축은 주파수 대역을 의미하고, 세로축은 주파수 대역 별 에너지 값의 분포를 의미할 수 있다. 그리고, 마이크 특성(1030)은 정위상 Sweep 신호의 스펙트럼(1010) 및 역위상 Sweep 신호의 스펙트럼(1020)의 차이로 획득될 수 있다.
그리고, 전자 장치는 실제 마이크에서 입력된 신호(1040)에서 획득된 마이크 특성(1030)을 제거하여 스피커만의 특성(1050)을 추출할 수 있다(마이크 입력-마이크 특성 = 스피커 특성). 여기서, 실제 마이크에서 입력된 신호(1040)는 스피커와 마이크 특성이 모두 포함된 주파수 특성을 가질 수 있다.
한편, 전자 장치는 전자 장치에 연결 가능한 하나 이상의 마이크의 특성을 저장할 수 있다. 이때, 전자 장치에 연결 가능한 하나 이상의 마이크는 전자 장치에 구비된 것이거나, 전자 장치와 연결된 외부 장치에 구비된 마이크일 수도 있다. 그리고, 전자 장치는 사용자 음성을 수신한 마이크가 연결 가능한 마이크 중 어떤 마이크인지 식별하고, 식별된 마이크의 특성을 반영하여 스피커만의 특성을 추출할 수 있다. 이때, 테스트 신호를 출력하는 스피커 또한 전자 장치에 구비된 것일 수도 있고, 전자 장치와 연결된 외부 장치에 구비된 것일 수도 있다. 또한, 테스트 신호를 출력한 스피커와 출력된 테스트 신호를 수신한 마이크는 동일 장치에 구비된 것일 수도 있고, 다른 장치에 구비된 것일 수도 있다.
그리고, 전자 장치는 추출된 스피커만의 특성(1050)에 맞게 EQ(Equalizer) 보정 값(1060)을 적용하여 reference 값(1070)을 출력할 수 있다. 여기서, EQ 보정은, 전자 장치마다 미리 정의해둔 reference 출력이 나오도록 보정하는 것을 의미하며, 도 10에 도시된 바와 같이 reference 값(1070)은 평탄한 스펙트럼일 수 있다.
도시되지는 않았지만 전자 장치는 추가적으로, 노이즈 스펙트럼 분석으로 환경 소음 레벨이 클 경우, EQ 게인(Gain)을 추가로 보정할 수 있다. 예를 들어, 전자 장치는 마이크를 통해 특정 주파수 대역의 에너지가 큰 음성 신호가 아닌, 주파수 대역 전체에 걸쳐 수신되는 소리를 환경 소음으로 판단할 수 있다. 그리고, 전자 장치는 환경 소음의 에너지의 크기에 따라 EQ 게인 보정 시에 출력 신호를 좀 더 큰 방향으로 상향 조정할 수 있다. 구체적으로, 환경 소음의 에너지의 크기의 평균이 기준 값보다 큰 경우, 크기의 평균 값과 기준 값의 차이에 비례하도록 출력 신호의 크기를 전체 주파수 대역에 걸쳐 상향 조정할 수 있다. 예를 들어, 환경 소음 크기의 평균이 기준 값보다 제1 값만큼 크면, 전자 장치는 출력 신호의 크기를 주파수 대역 전체적으로 3dB만큼 상향 조절할 수 있으며, 환경 소음 크기의 평균이 기준 값보다, 제1 값보다 큰 제2 값만큼 크면, 전자 장치는 출력 신호의 크기를 주파수 대역 전체적으로 4dB만큼 상향 조절할 수 있다. 또 다른 실시 예로, 환경 소음에서 특정 주파수의 에너지가 큰 경우, EQ 게인 보정시에 해당 주파수 내역의 신호만을 상향 조정할 수도 있다.
상술한 바와 같이, 스피커 특성을 기설정된 기준(reference) 출력과 일치되도록 보정함으로써 보다 정확한 대화 시스템을 제공할 수 있게 된다.
한편, 주파수 특성 분석을 통하여 의도된 감정을 표현하기 위한 보정은 사용자 음성이 입력될 때마다 수행될 수 있으며, 주파수 분석을 통하여 음성 스펙트럼 보정하거나, 출력 하드웨어의 필터 수치 조정, 스피커 특성의 보정 등은 기설정된 주기 또는 전자 장치가 대화 시스템을 최초 수행하는 경우에만 수행될 수 있다.
한편, 도 9에서는 주파수 특성 검증 모듈(920)이 입력 데이터를 보정하는 것으로 도시하였으나, 실제 구현시에는 주파수 특성 검증 모듈(920)에서는 보정 값만을 획득하고, 별도의 보정 모듈에서 입력 데이터를 보정할 수도 있다.
그리고, 전자 장치는 보정된 입력 데이터를 포함하는 검증 결과를 TTS 모듈에 입력하여 보정된 음성 신호를 출력할 수 있다.
도 11을 참조하면, 검증 모듈은 문장 길이 추정 모듈(1110) 및 문장 길이 검증 모듈(1120)을 포함할 수 있다. 도 11에서는 설명의 편의를 위하여 복수의 모듈로 구분하여 설명하였으나, 실제 구현시에는 하나의 모듈로 구현되거나, 소프트웨어로 구현될 수도 있다.
구체적으로, 전자 장치는 TTS 모듈에서 출력된 음성 신호를 문장 길이 추정 모듈(1110)에 입력하여 음성 신호에 대응되는 문장 길이를 획득할 수 있다. 이때, 문장 길이 추정 모듈(1110)에 입력되는 음성 신호는, TTS 모듈에서 출력된 후 문장 길이 추정 모듈(1110)로 바로 입력된 것이거나, TTS 모듈에서 스피커를 통해 외부로 출력된 후 마이크를 통해 입력된 음성 신호일 수 있다.
구체적으로, 문장 길이 추정 모듈(1110)은 음성 신호의 길이로 문장 길이를 추정할 수 있다.
그리고, 전자 장치는 문장 길이 추정 모듈(1110)에서 획득된 음성 신호의 문장 길이에 대한 정보를 문장 길이 검증 모듈(1120)에 입력하여 음성 신호의 오류를 검출할 수 있다.
구체적으로, 문장 길이 검증 모듈(1120)은 음성 신호의 문장 길이와 입력 데이터에 포함된 텍스트 데이터의 길이를 비교하여 음성 신호의 오류를 검출할 수 있다. 이때, 문장 길이 검증 모듈(1120)은 입력 데이터에 포함된 텍스트의 문자(character) 수 및 어절(word)의 수 등을 바탕으로 획득된 시간의 길이와 문장 길이 추정 모듈(1110)에서 획득된 음성 신호의 문장 길이를 비교하여 기설정된 값 이상 차이나면, TTS 모듈에서 출력된 음성 신호에 오류가 있는 것으로 판단할 수 있다.
상술한 바와 같이, TTS 모듈에서 출력된 음성 신호를 텍스트로 변경하지 않고 보다 간단하게 오류 검출이 가능할 수 있다.
추가적으로, 문장 길이 검증 모듈(1120)은 문장 길이가 기설정된 값 이상 차이나면, TTS 모듈에서 출력된 음성 신호를 음성 인식 모듈에 입력하여 텍스트를 획득하고, 획득된 텍스트와 입력 데이터에 포함된 텍스트를 비교하여 보다 정확한 오류를 검출할 수도 있다.
한편, 음성 신호에 오류가 있는 것으로 판단되면, 문장 길이 검증 모듈(1120)은 입력 데이터를 보정할 수 있다. 구체적으로, 문장 길이 검증 모듈(1120)은 입력 데이터에 포함된 텍스트 데이터의 띄어쓰기를 변경, 문장 부호를 변경 및 마크업 언어, 예를 들어, SSML의 적용 중 적어도 하나를 수행하여 입력 데이터를 보정할 수 있다.
한편, 도 11에서는 문장 길이 검증 모듈(1120)이 보정된 정보를 획득하는 것으로 도시하였으나, 실제 구현시에는 문장 길이 검증 모듈(1120)에서는 보정 값만을 획득하고, 별도의 보정 모듈에서 입력 데이터를 보정할 수도 있다.
그리고, 전자 장치는 보정된 입력 데이터를 포함하는 검증 결과를 TTS 모듈에 입력하여 보정된 음성 신호를 출력할 수 있다.
도 12 및 도 14는 본 개시의 전자 장치가 엣지 디바이스인 실시 예를 설명하기 위한 도면이다. 구체적으로, 도 12 및 도 14는 IoT 환경에서 전자 장치가 아닌 전자 장치의 주변 장치(ambience dot, things)가 음성 신호를 사용자에게 제공하는 실시 예를 도시한 것이다. 즉, 도 4, 도 6 및 도 7에 도시된 스피커(140)가 전자 장치(100)에 구비된 것이 아니라 외부 스피커 장치로 구현된 것이다. 한편, 본 개시에서 주변 장치는 전자 장치와는 별개의 장치를 의미하는 것으로, 본 명세서에서 주변 장치는 외부 장치 등으로 지칭될 수도 있다.
도 12를 참조하면, 엣지 디바이스(edge)인 전자 장치(100)는 네트워크를 통해 연결된 적어도 하나의 주변 장치(200)에 음성 신호를 전송할 수 있다. 이때, 전자 장치(100)와 주변 장치(200)는 무선 네트워크 또는 유선 네트워크를 통해 연결될 수 있다. 도 12에서는 전자 장치(100)가 인공지능 스피커인 것으로 도시되었으나, 전자 장치(100)의 종류는 이에 한정되지 않으며, 모바일 장치, TV, 서버 등일 수도 있다.
이때, 주변 장치(200)는 도 13에 도시된 바와 같은 구성을 포함할 수 있다.
도 13을 참고하면, 주변 장치(200)는 메모리(210), 프로세서(220), 통신부(230), 스피커(240) 및 마이크(250)를 포함할 수 있다.
메모리(210)는 주변 장치(200)의 동작에 필요한 각종 프로그램 및 데이터를 저장할 수 있다. 구체적으로, 메모리(210)에는 적어도 하나의 명령어가 저장될 수 있다. 프로세서(220)는 메모리(210)에 저장된 명령어를 실행함으로써 상술한 동작을 수행할 수 있다. 메모리(210)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 메모리(210)는 프로세서(220)에 의해 액세스되며, 프로세서(220)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 본 개시에서 메모리라는 용어는 메모리(210), 프로세서(220) 내 롬(미도시), 램(미도시) 또는 주변 장치(200)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함할 수 있다.
프로세서(220)는 메모리(210)와 전기적으로 연결되어 주변 장치(200)의 동작을 전반적으로 제어할 수 있다. 구체적으로, 프로세서(220)는 메모리(210)에 저장된 적어도 하나의 명령어를 실행하여 주변 장치(200)를 제어할 수 있다.
일 실시 예에 따라 프로세서(120)는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(120)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다.
통신부(230)는 다양한 유형의 통신 방식에 따라 다양한 유형의 타 장치와 통신을 수행하는 구성이다. 여기서, 주변 장치(200)와 통신하는 타 장치는 서버 또는 사용자 단말 장치인 전자 장치(100)일 수 있다.
통신부(230)가 외부 장치와 통신 연결되는 것은 제3 기기(예로, 중계기, 허브, 엑세스 포인트, 서버 또는 게이트웨이 등)를 거쳐서 통신하는 것을 포함할 수 있다. 무선 통신은, 예를 들면, LTE, LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용하는 셀룰러 통신을 포함할 수 있다. 일 실시예에 따르면, 무선 통신은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(Zigbee), NFC(near field communication), 자력 시큐어 트랜스미션(Magnetic Secure Transmission), 라디오 프리퀀시(RF), 또는 보디 에어리어 네트워크(BAN) 중 적어도 하나를 포함할 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 무선 통신 또는 유선 통신이 수행되는 네트워크는 텔레커뮤니케이션 네트워크, 예를 들면, 컴퓨터 네트워크(예: LAN 또는 WAN), 인터넷, 또는 텔레폰 네트워크 중 적어도 하나를 포함할 수 있다.
프로세서(220)는 통신부(230)를 통해 전자 장치로부터 음성 신호를 수신할 수 있다. 그리고, 프로세서(220)는 전자 장치로부터 수신된 음성 신호를 스피커(240)를 통해 출력할 수 있다.
스피커(240)는 프로세서(220)에 의해 디코딩이나 증폭, 노이즈 필터링과 같은 다양한 처리 작업이 수행된 각종 오디오 데이터뿐만 아니라 각종 알림 음이나 음성 메시지를 출력하는 구성이다. 특히, 스피커(240)는 음성 파형 형태의 음성 신호를 자연어 형태의 사운드로 출력할 수 있다. 이때, 출력되는 음성은 전자 책과 같은 기저장된 텍스트 데이터에 대응되는 것이거나, 사용자 문의에 대한 응답이 자연어 형태의 음성 메시지로 출력되는 것일 수 있다. 한편, 오디오를 출력하기 위한 구성은 스피커로 구현될 수 있으나, 이는 일 실시 예에 불과할 뿐, 오디오 데이터를 출력할 수 있는 출력 단자로 구현될 수 있다.
마이크(250)는 발화하는 사용자 음성을 입력받기 위한 구성이다. 마이크(250)는 프로세서(220)의 제어에 의해 외부에서부터 수신되는 음성(speech) 또는 사운드(sound)를 전기적인 신호로 생성(또는, 변환)한다. 마이크(250)에서 생성된 전기적인 신호는 프로세서(220)의 제어에 의해 변환되어 메모리(210)에 저장될 수 있다.
이때, 마이크(250)를 통해 입력받은 음성은 사용자가 직접 발화한 음성이거나, 주변 장치(200)에 구비된 스피커(240)를 통해 출력된 음성이거나 타 장치에 구비된 스피커에 의해 출력된 음성일 수 있다.
한편, 프로세서(220)는 마이크(250)를 통해 입력받은 음성 신호를 통신부(230)를 통해 전자 장치(100)에 전송할 수 있다. 이때, 전자 장치(100)는 주변 장치(200)로부터 수신된 음성 신호를 검증하여 TTS 모듈의 오류 동작을 검출할 수 있다. 이후, 통신부(230)를 통해 보정된 음성 신호가 수신되면, 프로세서(220)는 보정된 음성 신호를 스피커(240)를 통해 출력할 수 있다. 이때, 출력되는 음성이 보정되었음을 알리는 인디케이터를 먼저 출력할 수 있다. 여기서, 인디케이터는 전자 장치(100)로부터 수신될 수 있으며, 주변 장치(200)에 기저장된 것일 수도 있다.
한편, 도 13에서는 주변 장치(200)가 스피커(240) 및 마이크(250)를 모두 구비하는 것으로 도시하였으나, 실시 예에 따라 스피커(240) 및 마이크(250) 중 어느 하나만을 구비할 수도 있으며, 디스플레이(미도시) 등을 더 포함할 수도 있다.
한편, 전자 장치(100)는 도 14에 도시된 바와 같이 검증 모듈(420)을 포함할 수 있다.
일 실시 예에 따라, 전자 장치(100)는 입력 데이터를 TTS 모듈에 입력하여 음성 신호를 획득할 수 있다. 그리고, 전자 장치(100)는 획득된 음성 신호를 스피커(240)를 포함하는 주변 장치(200)에 전송할 수 있다. 이때, 주변 장치(200)는 전자 장치(100)로부터 획득된 음성 신호를 출력할 수 있다.
이때, 전자 장치(100)는 구비된 마이크(150)를 통해 주변 장치(200)의 스피커(240)에서 출력된 음성 신호(1410)를 수신할 수 있다. 그리고, 전자 장치(100)는 검증 모듈(420)을 이용하여 마이크(150)를 통해 수신된 음성 신호 및 TTS 모듈에 입력된 입력 데이터를 비교하여 TTS 모듈에 의해 획득된 음성 신호의 오류를 검출할 수 있다.
만약, 오류가 검출되면, 전자 장치(100)는 입력 데이터를 보정하고, 보정된 입력 데이터를 TTS 모듈에 입력하여 보정된 음성 신호를 획득할 수 있다. 그리고, 전자 장치(100)는 획득된 보정된 음성 신호를 주변 장치(200)에 전송하여, 주변 장치(200)에서 보정된 음성 신호를 스피커(240)를 통해 출력하도록 할 수 있다.
한편, 도 14에서는 주변 장치(200)의 스피커(240)에서 출력된 음성 신호를 전자 장치(100)의 마이크(150)가 수신하는 것으로 도시되었지만, 이에 한정되지는 않으며, 주변 장치(200)의 스피커(240)에서 출력된 음성 신호를 주변 장치(200)의 마이크가 수신할 수도 있다. 이 경우, 주변 장치(200)의 마이크를 통해 수신된 음성 신호를 전자 장치(100)에 전송하고, 전자 장치(100)는 수신된 음성 신호의 오류를 검출할 수 있다. 또 다른 실시 예로, 전자 장치(100)의 스피커에서 출력된 음성 신호를 주변 장치(200)의 마이크가 수신할 수도 있다. 이 경우, 주변 장치(200)의 마이크를 통해 수신된 음성 신호를 전자 장치(100)에 전송하고, 전자 장치(100)는 수신된 음성 신호의 오류를 검출할 수 있다. 즉, 주변 장치(200)는 실시 예에 따라 스피커(240)만을 구비할 수도 있고, 마이크만을 구비할 수도 있고, 스피커와 마이크를 모두 구비할 수도 있다. 도 15 및 도 16은 도 12의 전자 장치의 동작의 다양한 실시 예를 설명하기 위한 도면이다. 이때, 전자 장치(100)는 단말 장치이거나, 서버일 수 있다.
도 15를 참조하면, 전자 장치(100) 는 컴퓨팅 성능이 뛰어난 서버일 수 있다.
도 15를 참조하면, 전자 장치(100)는 외부 장치(200)로부터 음성 신호를 수신(1501)하고, 수신된 음성 신호의 화자를 인식할 수 있다(1502). 이때, 외부 장치(200)로부터 수신된 음성 신호는 사용자(10)가 발화한 음성을 외부 장치(200)에 구비된 마이크(250)에 의해 수신된 음성 신호일 수 있다. 한편, 도 15에서는 마이크(250)가 주변 장치(200)에 구비된 것으로 도시되었으나, 주변 장치(200)가 엣지 디바이스인 경우에는, 전자 장치(100)는 주변 장치(200)와 연결된 다른 제2 주변 장치(예로, ambience dot, things)에 구비된 마이크를 통해 수신된 음성 신호를 수신(1501)할 수도 있다. 이때, 제2 주변 장치에 구비된 마이크를 통해 수신된 음성 신호는 제2 주변 장치에서 주변 장치(200)를 통해 전자 장치(100)에 전송되거나, 제2 주변 장치에서 전자 장치(100)로 바로 전송될 수도 있다.
그리고, 전자 장치(100)는 화자 인식 결과에 따라 수신된 음성 신호를 다르게 처리할 수 있다. 화자 인식 결과, 수신된 음성 신호의 화자가 사용자인 것으로 식별되면, 전자 장치(100)는 수신된 음성 신호를 자동 음성 인식(ASR) 모듈(510)에 입력(1503)할 수 있다. 그리고, 전자 장치(100)는 음성 인식(ASR) 모듈(510) 및 자연어 처리(NLP)모듈(520)을 이용하여 TTS 모듈(410)에 입력될 입력 데이터(40)를 획득할 수 있다. 한편, 전자 장치(100)는 화자 인식 결과에 기초하여 화자가 어느 사용자인지 식별할 수 있고, 화자 식별 결과에 기초하여 입력 데이터(40)를 획득할 수 있다. 그리고, 전자 장치(100)는 획득된 입력 데이터(40)를 TTS 모듈(410)에 입력(1504)할 수 있다.
각 모듈에서의 동작은 도 4 내지 도 7과 동일한 바, 중복되는 설명은 생략하기로 한다.
한편, 전자 장치(100)는 TTS 모듈(410)에서 출력된 입력 데이터에 대한 음성 신호를 외부 장치(200)에 전송(1505)할 수 있다. 그리고, 음성 신호를 수신한 외부 장치(200)는 구비된 스피커(240)를 통해 수신된 음성 신호를 출력할 수 있다. 그리고, 외부 장치(200)의 스피커(240)를 통해 출력된 음성 신호는 외부 장치(200)의 마이크(250)를 통해 수신(1507)될 수 있다. 이때, 실시 예에 따라, 전자 장치(100)는 TTS 모듈(410)에서 출력된 음성 신호를 검증 모듈(420)로 입력(1506)할 수도 있다.
한편, 전자 장치(100)는 외부 장치(200)의 마이크(250)를 통해 수신된 음성 신호(1501)를 수신할 수 있다.
한편, 도 15에서는 외부 장치(200)에 구비된 스피커(240)를 통해 출력된 음성 신호가 외부 장치(200)에 구비된 마이크(250)를 통해 수신되는 것으로 기재하였으나, 주변 장치(200)가 엣지 디바이스인 경우에는, 주변 장치(200)가 주변 장치(200)와 연결된 제2 주변 장치에 음성 신호를 전송하여, 제2 주변 장치에 구비된 스피커를 통해 음성 신호가 출력되고, 제2 주변 장치에 구비된 마이크를 통해 출력된 음성 신호가 입력되고, 주변 장치(200)는 제2 주변 장치로부터 입력된 음성 신호를 수신하여 전자 장치(100)에 전송할 수 있다. 한편, 실시 예에 따라, 제2 주변 장치의 스피커에서 출력된 음성 신호를 주변 장치(200)의 마이크(250)에서 수신하여 전자 장치(100)에 전송할 수도 있고, 주변 장치(200)의 스피커(240)에서 출력된 음성 신호를 제2 주변 장치의 마이크가 수신하여 전자 장치(100)에 바로 전송하거나, 주변 장치(200)를 통하여 전자 장치(100)에 전송할 수도 있다.
그리고, 수신된 음성 신호(1501)가 사용자가 발화한 음성 신호인지 스피커(240)에서 출력된 음성 신호인지 식별하기 위해 화자를 인식(1502)할 수 있다. 만약, 수신된 음성 신호의 화자가 사용자인 것으로 판단되면, 전자 장치(100)는 일반적인 음성 인식 동작을 수행하기 위해, 수신된 음성을 음성 인식(ASR) 모듈(510)로 입력(1503)할 수 있다.
한편, 외부 장치(200)로부터 수신된 음성 신호가 TTS 모듈(410)에서 출력된 것으로 판단되면, 전자 장치(100)는 수신된 음성 신호를 검증 모듈(420)로 입력(1508)할 수 있다. 검증 모듈(420)은 도 8, 도 9 및 도 11에 도시된 바와 같이 텍스트를 이용한 검증 모듈, 주파수 특성을 이용한 검증 모듈, 문장 길이를 이용한 검증 모듈 중 적어도 하나를 포함할 수 있다. 구체적으로, 전자 장치(100)는 TTS 모듈(410)에 입력된 입력 데이터(40)를 검증 모듈(420)에 입력(1509)하고, 검증 모듈(420)은 입력 데이터(40)와 입력(1508)된 음성 신호를 비교하여 음성 신호의 오류를 검출할 수 있다.
한편, 화자 인식(1502) 동작은 선택적인 것으로, 실시 예에 따라 전자 장치(100)는 TTS 모듈(410)에서 출력된 음성 신호를 외부 장치(200)에 전송(1505) 후 기설정된 시간 이내에 외부 장치(200)로부터 수신(1501)되는 음성 신호는 화자 인식(1502) 동작 없이 바로 검증 모듈(420)에 입력할 수도 있다.
그리고, 전자 장치(100)는 검증 결과에 기초하여, 음성 신호에 오류가 없으면, 음성 신호의 출력을 계속 진행하여 음성 출력을 완료할 수 있다. 한편, 음성 신호에 오류가 있으면, 전자 장치(100)는 자연어 처리 모듈(520)에서 출력된 입력 데이터(40)를 보정하고, 보정된 입력 데이터를 TTS 모듈(410)에 입력(1510)할 수 있다. 그리고, 전자 장치(100)는 TTS 모듈(410)을 통해 획득된 보정된 음성 신호를 외부 장치(200)에 다시 전송(1505)할 수 있다. 이때, 전자 장치(100)는 음성 신호가 보정되었음을 알리는 인디케이터를 함께 전송할 수 있다.
한편, 도 15에서는 전자 장치(100)가 음성 인식(ASR) 모듈(510), 자연어 처리(NLP) 모듈(520), TTS 모듈(410) 및 화자 인식 모듈(1502)의 기능을 모두 수행하는 것으로 도시되었으나, 이에 한정되지 않고, 도 16에 도시된 바와 같이 적어도 일부의 기능은 외부 장치(200)에 의해 수행될 수 있다. 이는 전자 장치(100)의 적어도 일부의 구성이 인공 지능 모듈을 사용하여 데이터 처리량이 과도하므로, 컴퓨팅 성능이 좋은 외부 장치(200)를 통해 일부 기능을 수행하여 전자 장치(100)의 부담을 줄일 수 있다.
한편, 도 16에서는 검증 모듈(420) 이외의 화자 인식 모듈(1410), 자동 음성 인식(ASR) 모듈(1420), 자연어 처리(NLP) 모듈(1430), TTS 모듈(1440)의 기능이 외부 장치(200)에서 수행되는 것으로 도시되었으나, 이에 한정되지 않으며, 화자 인식 모듈(1410), 자동 음성 인식(ASR) 모듈(1420), 자연어 처리(NLP) 모듈(1430), TTS 모듈(1440)의 기능 중 적어도 일부는 전자 장치(100)에서 수행될 수 있음은 물론이다.
도 16을 참조하면, 외부 장치(200)는 구비된 마이크(250)를 통해 사용자(10)가 발화한 음성을 입력 받을 수 있다. 한편, 도 16에서는 마이크(250)가 주변 장치(200)에 구비된 것으로 도시되었으나, 주변 장치(200)가 엣지 디바이스인 경우에는, 전자 장치(100)는 주변 장치(200)와 연결된 다른 제2 주변 장치(예로, ambience dot, things)에 구비된 마이크를 통해 수신된 음성 신호를 수신할 수도 있다. 이때, 제2 주변 장치에 구비된 마이크를 통해 수신된 음성 신호는 제2 주변 장치에서 주변 장치(200)를 통해 전자 장치(100)에 전송될 수 있다.
그리고, 수신된 음성 신호를 화자 인식 모듈(1610)에 입력(1601)할 수 있다. 이때, 외부 장치(200)는 화자 인식 결과에 따라 입력된 음성 신호를 다르게 처리할 수 있다. 화자 인식 결과, 수신된 음성 신호의 화자가 사용자인 것으로 식별되면, 외부 장치(200)는 입력된 음성 신호를 자동 음성 인식(ASR) 모듈(1620)에 입력할 수 있다. 그리고, 외부 장치(200)는 음성 인식(ASR) 모듈(1620) 및 자연어 처리(NLP)모듈(1630)을 이용하여 사용자 음성에 대한 응답 정보를 TTS 모듈(1640)에 입력될 입력 데이터(1602)로써 획득할 수 있다. 그리고, 외부 장치(200)는 획득된 입력 데이터(1602)를 TTS 모듈(1640)에 입력할 수 있다. 그리고, 실시 예에 따라, 외부 장치(200)는 자연어 처리 모듈(1630)에서 출력된 입력 데이터(1602)를 전자 장치(100)의 검증 모듈(420)로 전송(1606)할 수 있다.
이때, 외부 장치(200)의 각 모듈에서의 동작은 도 4 내지 도 7에 기재된 전자 장치의 각 모듈의 동작 동일한 바, 중복되는 설명은 생략하기로 한다.
한편, 외부 장치(200)는 TTS 모듈(1640)에서 출력된 입력 데이터(1602)에 대한 음성 신호를 스피커(240)를 통해 출력할 수 있다. 그리고, 외부 장치(200)의 스피커(240)를 통해 출력된 음성 신호는 외부 장치(200)의 마이크(250)를 통해 입력(1604)될 수 있다.
한편, 도 16에서는 외부 장치(200)에 구비된 스피커(240)를 통해 출력된 음성 신호가 외부 장치(200)에 구비된 마이크(250)를 통해 수신되는 것으로 기재하였으나, 주변 장치(200)가 엣지 디바이스인 경우에는, 주변 장치(200)가 주변 장치(200)와 연결된 제2 주변 장치에 음성 신호를 전송하여, 제2 주변 장치에 구비된 스피커를 통해 음성 신호가 출력되고, 제2 주변 장치에 구비된 마이크를 통해 출력된 음성 신호가 입력되고, 주변 장치(200)는 제2 주변 장치로부터 입력된 음성 신호를 수신하여 전자 장치(100)에 전송할 수 있다. 한편, 실시 예에 따라, 제2 주변 장치의 스피커에서 출력된 음성 신호를 주변 장치(200)의 마이크(250)에서 수신하여 전자 장치(100)에 전송할 수도 있고, 주변 장치(200)의 스피커(240)에서 출력된 음성 신호를 제2 주변 장치의 마이크가 수신하여 전자 장치(100)에 바로 전송하거나, 주변 장치(200)를 통하여 전자 장치(100)에 전송할 수도 있다.
이때, 실시 예에 따라, 외부 장치(200)는 TTS 모듈(1640)에서 출력된 음성 신호를 전자 장치(100)의 검증 모듈(420)로 전송할 수도 있다(1607). 이 경우, 전자 장치(100)의 검증 모듈(420)은 외부 장치(200)로부터 수신(1606)된 입력 데이터 및 외부 장치(200)로부터 수신(1607)된 음성 신호를 비교하여 음성 신호의 오류를 검출할 수 있다. 전자 장치(100)의 검증 모듈(420)은 도 8, 도 9 및 도 11에 도시된 바와 같이 텍스트를 이용한 검증 모듈, 주파수 특성을 이용한 검증 모듈, 문장 길이를 이용한 검증 모듈 중 적어도 하나를 포함할 수 있다.
한편, 실시 예에 따라, 외부 장치(200)를 통해 수신된 음성 신호(1601)가 사용자(10)가 발화한 음성에 대한 음성 신호인지 스피커(240)에서 출력된 음성 신호인지 식별하기 위해 화자를 인식(1610)할 수 있다. 마이크(250)를 통해 수신된 음성 신호의 화자가 사용자(10)인 것으로 판단되면, 외부 장치(200)는 일반적인 음성 인식 동작을 수행하기 위해, 수신된 음성을 음성 인식(ASR) 모듈(1620)로 입력할 수 있다.
한편, 마이크(250)를 통해 수신된 음성 신호가 스피커(240)를 통해 출력된 것으로 판단되면, 외부 장치(200)는 수신된 음성 신호를 전자 장치(100)의 검증 모듈(420)로 전송(1605)할 수 있다. 구체적으로, 전자 장치(100)는 외부 장치(200)로부터 수신(1606)된 입력 데이터 및 외부 장치(200)로부터 수신(1605)된 음성 신호를 비교하여 음성 신호의 오류를 검출할 수 있다.
한편, 화자 인식(1610) 동작은 선택적인 것으로, 실시 예에 외부 장치(200)는 스피커(240)를 통한 음성 신호의 출력 후 기설정된 시간 이내에 마이크(250)를 통해 수신되는 음성 신호는 화자 인식(1610) 동작 없이 바로 전자 장치(100)의 검증 모듈(420)로 전송할 수도 있다.
그리고, 전자 장치(100)는 검증 결과에 기초하여, 음성 신호에 오류가 없으면, 외부 장치(200)에 별도의 피드백이 없거나, 오류가 없음을 알리는 피드백을 전송할 수 있다. 한편, 음성 신호에 오류가 있으면, 전자 장치(100)는 외부 장치(200)로부터 수신된 입력 데이터를 보정하고, 보정된 입력 데이터를 외부 장치(200)의 TTS 모듈(1640)에 입력(1608)할 수 있다. 그리고, 외부 장치(200)는 TTS 모듈(1640)을 통해 획득된 보정된 음성 신호를 스피커(240)를 통해 다시 출력(1603)할 수 있다. 이때, 외부 장치(200)는 음성 신호가 보정되었음을 알리는 인디케이터를 함께 출력할 수 있다.
한편, 도 16에서는, 입력 데이터(1602)가 사용자(10)의 음성에 대한 응답 정보인 것으로 도시하였으나, 실제 구현시에는 전자 책과 같이 기저장된 데이터이거나, 외부 서버 등으로부터 수신된 데이터일 수도 있다.
도 17은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
도 17을 참조하면, 우선 전자 장치는 TTS 모듈에 입력될 입력 데이터를 획득할 수 있다(S1710). 이때, 입력 데이터는 텍스트 데이터 및 감정과 관련된 데이터일 수 있다. 그리고, 입력 데이터는 기저장된 데이터, 외부 장치로부터 수신된 데이터이거나, 사용자 음성을 분석하여 획득된 응답 정보일 수 있다.
그리고, 전자 장치는 TTS 모듈을 통해 입력 데이터에 대응되는 음성 신호를 획득할 수 있다. (S1720). 구체적으로, 전자 장치는 입력 데이터를 TTS 모듈에 입력하여, 입력 데이터에 대응되는 음성 신호를 획득할 수 있다. 이때, TTS 모듈에서 출력된 응답 음성 신호는 전자 장치에 구비된 스피커에 의해 바로 출력될 수도 있고, 바로 출력되지 않을 수도 있다.
그리고, 전자 장치는 입력 데이터를 바탕으로 획득된 음성 신호의 오류를 검출할 수 있다(S1730). 구체적으로, 전자 장치는 TTS 모듈로부터 출력된 음성 신호와 TTS 모듈에 입력된 입력 데이터를 비교하여, 음성 신호의 오류를 검출할 수 있다. 구체적으로, 전자 장치는 출력된 음성 신호와 입력 데이터에 포함된 텍스트 비교, 주파수 특성 비교, 문장 길이 비교 등을 통해 출력된 음성 신호의 오류를 검출할 수 있다.
그리고, 출력된 음성 신호의 오류가 검출되면, 전자 장치는 입력 데이터를 보정할 수 있다(S1740). 구체적으로, 전자 장치는 입력 데이터에 포함된 텍스트의 띄어쓰기, 문장 부호 등을 변경하거나 마크업 언어, 예를 들어, SSML을 적용하여 입력 데이터를 보정할 수 있다. 또는, 전자 장치는 실시 예에 따라 출력 하드웨어의 필터 수치를 보정하거나, 스피커 특성을 보정할 수도 있다.
그리고, 전자 장치는 보정된 입력 데이터에 대응되는 보정된 음성 신호를 출력할 수 있다(S1750). 구체적으로, 전자 장치는 보정된 입력 데이터를 TTS 모듈에 다시 입력하여 보정된 음성 신호를 출력할 수 있다.
이때, 전자 장치는 보정된 음성 신호를 다시 검증 모듈에 입력하여 재검증을 수행하거나, 스피커를 통해 사용자게 제공할 수 있다. 스피커를 통해 사용자에게 제공하는 경우, 전자 장치는 음성 신호가 보정되었음을 알리는 인디케이터를 함께 출력할 수 있다.
그리고, 도 18은 도 15의 전자 장치와 외부 장치의 동작의 일 실시 예를 설명하기 위한 시퀀스도이다. 이때, 전자 장치(100)는 단말 장치 또는 서버일 수 있다. 한편, 도 18은 전자 장치(100)에 TTS 모듈 및 검증 모듈만이 포함된 실시 예를 한정하여 도시하였으나, 이에 한정되지는 않는다.
도 18을 참조하면, 우선 외부 장치(200)는 입력 데이터를 획득할 수 있다(S1810). 여기서, 입력 데이터는 TTS 모듈을 통한 음성 출력을 위해 TTS 모듈에 입력되는 데이터일 수 있다. 구체적으로, 입력 데이터는 전자 책과 같이 기저장되거나 외부 장치로부터 수신된 텍스트 데이터 또는 사용자 음성을 분석하여 획득된 응답 텍스트 데이터를 포함할 수 있다. 이때, 입력 데이터는 텍스트 데이터에 대응되는 감정과 관련된 데이터를 더 포함할 수 있다.
특히, 입력 데이터가 사용자 음성에 대응되는 응답 데이터인 경우, 외부 장치(200)는 자동 음성 인식(ASR) 모듈, 자연어 처리(NLP) 모듈 등을 포함할 수 있으며, 외부 장치(200)는 별개의 음성 인식 서버를 통해 사용자 음성에 대응되는 응답 데이터를 획득할 수도 있다.
그리고, 외부 장치(200)는 획득된 입력 데이터를 전자 장치(100)에 전송할 수 있다(S1820).
그리고, 전자 장치(100)는 TTS 모듈을 통해 외부 장치(200)로부터 수신된 입력 데이터에 대응되는 음성 신호를 획득할 수 있다(S1830).
그리고, 전자 장치(100)는 입력 데이터를 바탕으로 음성 신호의 오류를 검출할 수 있다(S1840). 구체적으로, 전자 장치(100)는 TTS 모듈에서 출력된 음성 신호와 입력 데이터에 포함된 텍스트 비교, 주파수 특성 비교, 문장 길이 비교 등을 통해 출력된 음성 신호의 오류를 검출할 수 있다.
음성 신호에 오류가 검출되면, 전자 장치(100)는 보정된 입력 데이터를 획득할 수 있다(S1850). 구체적으로, 전자 장치(100)는 입력 데이터에 포함된 텍스트의 띄어쓰기, 문장 부호 등을 변경하거나 마크업 언어, 예를 들어, SSML을 적용하여 입력 데이터를 보정할 수 있다. 또는, 전자 장치(100)는 실시 예에 따라 출력 하드웨어의 필터 수치를 보정하거나, 스피커 특성을 보정할 수도 있다.
그리고, 전자 장치(100)는 보정된 입력 데이터에 대응되는 보정된 음성 신호를 출력할 수 있다(S1860). 구체적으로, 전자 장치(100)는 보정된 입력 데이터를 TTS 모듈에 다시 입력하여 보정된 음성 신호를 획득할 수 있다.
그리고, 전자 장치(100)는 보정된 음성 신호를 외부 장치(200)에 전송할 수 있다(S1870). 이때, 전자 장치(100)는 음성 신호가 보정되었음을 알리는 인디케이터를 함께 전송할 수 있다. 한편, 전자 장치(100)는 보정된 음성 신호를 다시 검증 모듈에 입력하여 재검증을 수행할 수도 있다.
그리고, 외부 장치(200)는 전자 장치(100)로부터 수신된 보정된 음성 신호를 출력할 수 있다(S1880). 구체적으로, 외부 장치(200)는 수신된 음성 신호를 구비된 스피커를 통해 출력할 수 있다. 한편, 외부 장치(200)는 전자 장치(100)로부터 인디케이터를 수신한 경우, 보정된 음성 신호를 출력하기 전 인디케이터를 먼저 출력할 수 있다.
도 19는 서버, 엣지 디바이스, ambience dot을 포함하는 대화 시스템에서 서버와 엣지 디바이스에 의해 TTS 모듈의 검증이 수행되는 실시 예를 설명하기 위한 시퀀스도이다.
도 19를 참조하면, ambience dot(200)은 구비된 마이크를 통해 사용자 음성을 입력받을 수 있다(S1901). 그리고, ambience dot(200)은 입력된 사용자 음성을 엣지 디바이스(100-1)에 전송할 수 있다(S1902).
그리고, 엣지 디바이스(100-1)는 ambience dot(200)로부터 수신된 사용자 음성에 기초하여 입력 데이터를 획득할 수 있다(S1903). 구체적으로, 엣지 디바이스(100-1)는 수신된 음성 신호를 자동 음성 인식(ASR) 모듈, 자연어 처리(NLP) 모듈을 이용하여 TTS 모듈에 입력될 입력 데이터를 획득할 수 있다.
그리고, 엣지 디바이스(100-1)는 TTS 모듈을 통해 입력 데이터에 대응되는 음성 신호를 획득할 수 있다(S1904). 한편, 도 19에서는 ASR 모듈, NLP 모듈 및 TTS 모듈이 엣지 디바이스(100-1)에 구비된 것으로 도시되었으나, 실제 구현시에는 ASR 모듈, NLP 모듈 및 TTS 모듈 중 적어도 하나의 모듈의 기능이 서버(100-2)에 의해 수행될 수도 있다.
그리고, 엣지 디바이스(100-1)는 TTS 모듈에서 출력된 음성 신호를 ambience dot(200)에 전송할 수 있다(S1905). TTS 모듈이 서버(100-2)에 구비된 경우에는 서버(100-2)가 엣지 디바이스(100-1) 또는 ambience dot(200)에 TTS 모듈에서 출력된 음성 신호를 전송할 수 있다.
그리고, 음성 신호를 수신한 ambience dot(200)은 수신된 음성 신호를 구비된 스피커를 통해 출력할 수 있다(S1906). 그리고, ambience dot(200)은 구비된 마이크를 통해 스피커에서 출력된 음성 신호를 수신할 수 있다(S1907). 한편, 도 19에서는 ambience dot(200)에 구비된 스피커 및 마이크를 통해 음성 신호를 출력 및 수신하는 것으로 도시하였으나, 실시 예에 따라, 엣지 디바이스(100-1)에 구비된 스피커를 통해 음성 신호가 출력되고, ambience dot(200)에 구비된 마이크를 통해 음성 신호가 수신되거나, ambience dot(200)에 구비된 스피커를 통해 음성 신호가 출력되고, 엣지 디바이스(100-1)에 구비된 마이크를 통해 음성 신호가 수신될 수도 있다.
한편, ambience dot(200)을 통해 음성 신호가 수신된 경우, ambience dot(200)은 수신된 음성 신호를 엣지 디바이스(100-1)에 전송할 수 있다(S1908). 이때, 엣지 디바이스(100-1)는 음성 신호의 오류를 검출할 수 있다(S1909). 구체적으로, 엣지 디바이스(100-1)는 입력 데이터와 TTS 모듈에서 출력된 음성 신호를 비교하여 음성 신호의 오류를 검출할 수 있다.
그리고, 엣지 디바이스(100-1)는 음성 신호의 오류가 검출되면, 엣지 디바이스(100-1)에서 보정 가능한지 판단할 수 있다(S1910). 예를 들어, 텍스트의 띄어쓰기, 문장 부호 변경 등의 비교적 간단한 보정이 필요한 경우, 엣지 디바이스(100-1)는 보정이 가능하다고 판단(S1910-Y)할 수 있다. 그리고, 엣지 디바이스(100-1)는 보정된 입력 데이터를 획득할 수 있다(S1911).
한편, 음성 신호의 주파수 특성을 분석하여 SSML을 적용하거나, 스타일 토큰의 가중치를 변경하는 등 비교적 복잡한 보정이 필요한 경우, 엣지 디바이스(100-1)는 자체적으로는 보정이 불가능하다고 판단(S1910-N)할 수 있다. 이 경우, 엣지 디바이스(100-1)는 음성 신호와 입력 데이터를 서버(100-2)로 전송할 수 있다(S1912).
그리고, 서버(100-2)는 입력 데이터에 SSML을 적용하거나 스타일 토큰의 가중치를 변경하여 보정된 입력 데이터를 획득할 수 있다(S1913).
이때, TTS 모듈의 기능이 엣지 디바이스(100-1)에서 수행된다면, 엣지 디바이스(100-1)는 TTS 모듈을 이용하여 보정된 입력 데이터에 대한 보정된 음성 신호를 획득할 수 있다(S1914). 이때, 보정된 입력 데이터는 엣지 디바이스(100-1)에서 획득된 것일 수도 있고, 서버(100-2)로부터 수신된 것일 수도 있다.
그리고, 엣지 디바이스(100-1)는 획득된 보정된 음성 신호를 ambience dot(200)에 전송하고(S1915), 보정된 음성 신호를 수신한 ambience dot(200)은 보정된 음성 신호를 스피커를 통해 출력할 수 있다(S1916).
이상에 기재한 다양한 실시 예에 따라, TTS 모듈에 입력된 응답 음성에 대한 정보를 이용하여 TTS 모듈에서 출력된 응답 음성 신호의 오류를 검출 및 보정함으로써, 더욱 정확한 대화 시스템 구현이 가능해지는 효과가 있다.
한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합된 것을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 하드웨어적인 구현에 의하면, 본 개시에서 설명되는 실시 예들은 ASICs(Application Specific Integrated Circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서(processors), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 전기적인 유닛(unit) 중 적어도 하나를 이용하여 구현될 수 있다. 일부의 경우에 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상기 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법은 비일시적 판독 가능 매체(non-transitory readable medium) 에 저장될 수 있다. 이러한 비일시적 판독 가능 매체는 다양한 장치에 탑재되어 사용될 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 방법을 수행하기 위한 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
100 : 전자 장치 110 : 메모리
120 : 프로세서

Claims (20)

  1. 전자 장치에 있어서,
    적어도 하나의 명령어를 포함하는 메모리;
    상기 메모리에 저장된 적어도 하나의 명령어를 실행하여 상기 전자 장치를 제어하는 프로세서;를 포함하고,
    상기 프로세서는,
    TTS 모듈을 통한 음성 출력을 위해 상기 TTS 모듈에 입력될 입력 데이터를 획득하고,
    상기 TTS 모듈을 통해 상기 입력 데이터에 대응되는 음성 신호를 획득하고,
    상기 입력 데이터를 바탕으로 상기 획득된 음성 신호의 오류를 검출하고,
    상기 검출 결과를 바탕으로 상기 입력 데이터를 보정하고,
    상기 TTS 모듈을 통해 상기 보정된 입력 데이터에 대응되는 보정된 음성 신호를 획득하는 전자 장치.
  2. 제1항에 있어서,
    상기 입력 데이터는, 텍스트 데이터를 포함하고,
    상기 프로세서는,
    상기 획득된 음성 신호를 텍스트 데이터로 변환하고,
    상기 입력 데이터에 포함된 텍스트 데이터 및 상기 변환된 텍스트 데이터를 비교하여 상기 획득된 음성 신호의 오류를 검출하는 전자 장치.
  3. 제1항에 있어서,
    상기 입력 데이터는, 감정과 관련된 데이터를 포함하고,
    상기 프로세서는,
    상기 획득된 음성 신호의 주파수 특성에 기초하여 상기 획득된 음성 신호의 감정을 식별하고,
    상기 입력 데이터에 포함된 감정 관련된 데이터와 상기 식별된 감정을 비교하여 상기 획득된 음성 신호의 오류를 검출하는 전자 장치.
  4. 제1항에 있어서,
    상기 프로세서는,
    상기 획득된 음성 신호의 길이와 상기 입력 데이터에 포함된 텍스트 데이터의 길이를 비교하여 상기 획득된 음성 신호의 오류를 검출하는 전자 장치.
  5. 제1항에 있어서,
    상기 프로세서는,
    상기 획득된 음성 신호의 오류가 검출되면, 상기 입력 데이터에 대한 정보에 포함된 텍스트 데이터의 띄어쓰기 및 문장 부호 중 적어도 하나를 보정하고, 상기 보정된 입력 데이터를 상기 TTS 모듈에 입력하는 전자 장치.
  6. 제1항에 있어서,
    상기 프로세서는,
    상기 획득된 음성 신호의 오류가 검출되면, 상기 입력 데이터에 포함된 텍스트 데이터에 SSML(Speech Synthesis Markup Language)을 적용하여 상기 입력 데이터를 보정하고, 상기 보정된 입력 데이터를 상기 TTS 모듈에 입력하는 전자 장치.
  7. 제1항에 있어서,
    상기 프로세서는,
    수신된 사용자 음성을 음성 인식 모듈을 이용하여 텍스트 데이터로 변환하고,
    상기 텍스트 데이터의 의도를 분석하여 상기 사용자 음성에 대응되는 응답 정보를 상기 입력 데이터로서 획득하는 전자 장치.
  8. 제1항에 있어서,
    스피커;를 더 포함하고,
    상기 프로세서는,
    상기 보정된 음성 신호에 보정되었음을 알리는 인디케이터를 추가하여 상기 스피커를 통해 출력하는 전자 장치.
  9. 제1항에 있어서,
    스피커; 및
    마이크;를 더 포함하고,
    상기 프로세서는,
    상기 스피커를 통해 상기 음성 신호를 출력하고,
    상기 스피커를 통해 출력된 음성 신호가 상기 마이크를 통해 수신되면, 상기 입력 데이터를 바탕으로, 상기 마이크를 통해 수신된 음성 신호의 오류를 검출하는 전자 장치.
  10. 제9항에 있어서,
    상기 프로세서는,
    상기 마이크를 통해 수신된 음성 신호의 화자를 식별하고,
    상기 화자 식별 결과에 기초하여 상기 마이크를 통해 수신된 음성 신호가 상기 스피커를 통해 출력된 음성 신호이면, 상기 수신된 음성 신호의 오류를 검출하고,
    상기 화자 식별 결과에 기초하여 상기 마이크를 통해 수신된 음성 신호가 사용자에 의해 발화된 것이면, 상기 수신된 음성 신호를 음성 인식 모듈을 이용하여 텍스트 데이터로 변환하고, 변환된 텍스트 데이터의 의도를 분석하여 상기 사용자 음성에 대응되는 응답 정보를 상기 입력 데이터로서 획득하는 전자 장치.
  11. 제1항에 있어서,
    통신부;를 더 포함하고,
    상기 프로세서는,
    상기 통신부를 통해 상기 획득된 음성 신호를 외부 장치에 전송하는 전자 장치.
  12. 전자 장치의 제어 방법에 있어서,
    TTS 모듈을 통한 음성 출력을 위해 상기 TTS 모듈에 입력될 입력 데이터를 획득하는 단계;
    상기 TTS 모듈을 통해 상기 입력 데이터에 대응되는 음성 신호를 획득하는 단계;
    상기 입력 데이터를 바탕으로 상기 획득된 음성 신호의 오류를 검출하는 단계;
    상기 검출 결과를 바탕으로 상기 입력 데이터를 보정하는 단계; 및
    상기 TTS 모듈을 통해 상기 보정된 입력 데이터에 대응되는 보정된 음성 신호를 획득하는 단계;를 포함하는 전자 장치의 제어 방법.
  13. 제12항에 있어서,
    상기 입력 데이터는, 텍스트 데이터를 포함하고,
    상기 오류를 검출하는 단계는,
    상기 획득된 음성 신호를 텍스트 데이터로 변환하는 단계; 및
    상기 입력 데이터에 포함된 텍스트 데이터 및 상기 변환된 텍스트 데이터를 비교하여 상기 획득된 음성 신호의 오류를 검출하는 단계;를 포함하는 전자 장치의 제어 방법.
  14. 제12항에 있어서,
    상기 입력 데이터는, 감정과 관련된 데이터를 포함하고,
    상기 오류를 검출하는 단계는,
    상기 획득된 음성 신호의 주파수 특성에 기초하여 상기 획득된 음성 신호의 감정을 식별하는 단계; 및
    상기 입력 데이터에 포함된 감정과 관련된 데이터와 상기 식별된 감정을 비교하여 상기 획득된 음성 신호의 오류를 검출하는 단계;를 포함하는 전자 장치의 제어 방법.
  15. 제12항에 있어서,
    상기 오류를 검출하는 단계는,
    상기 획득된 음성 신호의 길이와 상기 입력 데이터에 포함된 텍스트 데이터의 길이를 비교하여 상기 획득된 음성 신호의 오류를 검출하는 전자 장치의 제어 방법.
  16. 제12항에 있어서,
    상기 보정하는 단계는,
    상기 획득된 음성 신호의 오류가 검출되면, 상기 입력 데이터에 포함된 텍스트 데이터의 띄어쓰기 및 문장 부호 중 적어도 하나를 보정하는 전자 장치의 제어 방법.
  17. 제12항에 있어서,
    상기 보정하는 단계는,
    상기 획득된 음성 신호의 오류가 검출되면, 상기 입력 데이터에 포함된 텍스트 데이터에 SSML(Speech Synthesis Markup Language)을 적용하여 상기 입력 데이터를 보정하는 전자 장치의 제어 방법.
  18. 제12항에 있어서,
    상기 입력 데이터를 획득하는 단계는,
    수신된 사용자 음성을 음성 인식 모듈을 이용하여 텍스트 데이터로 변환하고,
    상기 텍스트 데이터의 의도를 분석하여 상기 사용자 음성에 대응되는 응답 정보를 상기 입력 데이터로서 획득하는 전자 장치의 제어 방법.
  19. 제12항에 있어서,
    상기 보정된 음성 신호에 보정되었음을 알리는 인디케이터를 추가하여 스피커를 통해 출력하는 단계;를 더 포함하는 전자 장치의 제어 방법.
  20. 제12항에 있어서,
    스피커를 통해 상기 획득된 음성 신호를 출력하는 단계;를 더 포함하고,
    상기 오류를 검출하는 단계는,
    상기 스피커를 통해 출력된 음성 신호를 마이크를 통해 수신하는 단계; 및
    상기 입력 데이터를 바탕으로, 상기 마이크를 통해 수신된 음성 신호의 오류를 검출하는 단계;를 포함하는 전자 장치의 제어 방법.
KR1020190024192A 2019-02-28 2019-02-28 전자 장치 및 전자 장치의 제어 방법 KR102615154B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020190024192A KR102615154B1 (ko) 2019-02-28 2019-02-28 전자 장치 및 전자 장치의 제어 방법
CN202080017465.1A CN113498536A (zh) 2019-02-28 2020-02-03 电子装置及其控制方法
PCT/KR2020/001581 WO2020175810A1 (en) 2019-02-28 2020-02-03 Electronic apparatus and method for controlling thereof
EP20763060.9A EP3857542A4 (en) 2019-02-28 2020-02-03 ELECTRONIC DEVICE AND METHOD OF CONTROLLING THEREOF
US16/788,418 US11587547B2 (en) 2019-02-28 2020-02-12 Electronic apparatus and method for controlling thereof
US18/171,079 US20230206897A1 (en) 2019-02-28 2023-02-17 Electronic apparatus and method for controlling thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190024192A KR102615154B1 (ko) 2019-02-28 2019-02-28 전자 장치 및 전자 장치의 제어 방법

Publications (2)

Publication Number Publication Date
KR20200105259A true KR20200105259A (ko) 2020-09-07
KR102615154B1 KR102615154B1 (ko) 2023-12-18

Family

ID=72236808

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190024192A KR102615154B1 (ko) 2019-02-28 2019-02-28 전자 장치 및 전자 장치의 제어 방법

Country Status (5)

Country Link
US (2) US11587547B2 (ko)
EP (1) EP3857542A4 (ko)
KR (1) KR102615154B1 (ko)
CN (1) CN113498536A (ko)
WO (1) WO2020175810A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11763799B2 (en) 2020-11-12 2023-09-19 Samsung Electronics Co., Ltd. Electronic apparatus and controlling method thereof

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11854538B1 (en) * 2019-02-15 2023-12-26 Amazon Technologies, Inc. Sentiment detection in audio data
KR102615154B1 (ko) * 2019-02-28 2023-12-18 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법
US11368799B2 (en) * 2020-02-04 2022-06-21 Securboration, Inc. Hearing device customization systems and methods
US20220284887A1 (en) * 2021-03-03 2022-09-08 Samsung Electronics Co., Ltd. Electronic device for correcting speech input of user and operating method thereof

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081780A (en) * 1998-04-28 2000-06-27 International Business Machines Corporation TTS and prosody based authoring system
US20090299733A1 (en) * 2008-06-03 2009-12-03 International Business Machines Corporation Methods and system for creating and editing an xml-based speech synthesis document

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6246672B1 (en) * 1998-04-28 2001-06-12 International Business Machines Corp. Singlecast interactive radio system
EP1190416A1 (en) * 2000-02-10 2002-03-27 Cellon France SAS Error correction method with pitch change detection
JP2002244688A (ja) * 2001-02-15 2002-08-30 Sony Computer Entertainment Inc 情報処理方法及び装置、情報伝送システム、情報処理プログラムを情報処理装置に実行させる媒体、情報処理プログラム
JP2003108170A (ja) * 2001-09-26 2003-04-11 Seiko Epson Corp 音声合成学習方法および音声合成学習装置
DE10304229A1 (de) * 2003-01-28 2004-08-05 Deutsche Telekom Ag Kommunikationssystem, Kommunikationsendeinrichtung und Vorrichtung zum Erkennen fehlerbehafteter Text-Nachrichten
US7617106B2 (en) * 2003-11-05 2009-11-10 Koninklijke Philips Electronics N.V. Error detection for speech to text transcription systems
JP4678440B2 (ja) * 2006-07-27 2011-04-27 日本電気株式会社 音声データ復号装置
US20080091426A1 (en) * 2006-10-12 2008-04-17 Rod Rempel Adaptive context for automatic speech recognition systems
US20090043583A1 (en) * 2007-08-08 2009-02-12 International Business Machines Corporation Dynamic modification of voice selection based on user specific factors
KR100918644B1 (ko) 2009-06-17 2009-09-25 김정중 대화 시스템 및 대화 문장 생성 방법
US8965768B2 (en) * 2010-08-06 2015-02-24 At&T Intellectual Property I, L.P. System and method for automatic detection of abnormal stress patterns in unit selection synthesis
KR101221188B1 (ko) 2011-04-26 2013-01-10 한국과학기술원 감정 음성 합성 기능을 가지는 보조 로봇 및 보조 로봇용 감정 음성 합성 방법 및 기록 매체
US9275633B2 (en) 2012-01-09 2016-03-01 Microsoft Technology Licensing, Llc Crowd-sourcing pronunciation corrections in text-to-speech engines
CN103366731B (zh) 2012-03-31 2019-02-01 上海果壳电子有限公司 语音合成方法及系统
KR20140008835A (ko) * 2012-07-12 2014-01-22 삼성전자주식회사 음성 인식 오류 수정 방법 및 이를 적용한 방송 수신 장치
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9293129B2 (en) 2013-03-05 2016-03-22 Microsoft Technology Licensing, Llc Speech recognition assisted evaluation on text-to-speech pronunciation issue detection
US9978359B1 (en) * 2013-12-06 2018-05-22 Amazon Technologies, Inc. Iterative text-to-speech with user feedback
KR20150086086A (ko) * 2014-01-17 2015-07-27 삼성전자주식회사 서버 및 이의 음성 인식 결과에 대한 오류 수정 방법
EP2933070A1 (en) 2014-04-17 2015-10-21 Aldebaran Robotics Methods and systems of handling a dialog with a robot
KR20160080711A (ko) * 2014-12-30 2016-07-08 한국전자통신연구원 통신 기반 통역 장치, 방법 및 시스템
WO2016161432A1 (en) 2015-04-03 2016-10-06 Xsell Technologies Method and apparatus to increase personalization and enhance chat experiences on the internet
JP6605995B2 (ja) * 2016-03-16 2019-11-13 株式会社東芝 音声認識誤り修正装置、方法及びプログラム
US10133612B2 (en) * 2016-03-17 2018-11-20 Nuance Communications, Inc. Session processing interaction between two or more virtual assistants
US9972304B2 (en) * 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10276149B1 (en) * 2016-12-21 2019-04-30 Amazon Technologies, Inc. Dynamic text-to-speech output
JP2018109663A (ja) 2016-12-28 2018-07-12 シャープ株式会社 音声処理装置、対話システム、端末装置、プログラム及び音声処理方法
KR20180087942A (ko) * 2017-01-26 2018-08-03 삼성전자주식회사 음성 인식 방법 및 장치
WO2018168427A1 (ja) * 2017-03-13 2018-09-20 ソニー株式会社 学習装置、学習方法、音声合成装置、音声合成方法
US10319364B2 (en) * 2017-05-18 2019-06-11 Telepathy Labs, Inc. Artificial intelligence-based text-to-speech system and method
CN109979427A (zh) 2017-12-28 2019-07-05 东莞迪芬尼电声科技有限公司 检测音响的系统和方法
US10431201B1 (en) * 2018-03-20 2019-10-01 International Business Machines Corporation Analyzing messages with typographic errors due to phonemic spellings using text-to-speech and speech-to-text algorithms
CN109461435B (zh) * 2018-11-19 2022-07-01 北京光年无限科技有限公司 一种面向智能机器人的语音合成方法及装置
KR102615154B1 (ko) * 2019-02-28 2023-12-18 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법
CN110600002B (zh) 2019-09-18 2022-04-22 北京声智科技有限公司 语音合成方法、装置及电子设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081780A (en) * 1998-04-28 2000-06-27 International Business Machines Corporation TTS and prosody based authoring system
US20090299733A1 (en) * 2008-06-03 2009-12-03 International Business Machines Corporation Methods and system for creating and editing an xml-based speech synthesis document

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11763799B2 (en) 2020-11-12 2023-09-19 Samsung Electronics Co., Ltd. Electronic apparatus and controlling method thereof

Also Published As

Publication number Publication date
CN113498536A (zh) 2021-10-12
KR102615154B1 (ko) 2023-12-18
EP3857542A4 (en) 2021-11-24
EP3857542A1 (en) 2021-08-04
US20200279551A1 (en) 2020-09-03
US20230206897A1 (en) 2023-06-29
US11587547B2 (en) 2023-02-21
WO2020175810A1 (en) 2020-09-03

Similar Documents

Publication Publication Date Title
KR102615154B1 (ko) 전자 장치 및 전자 장치의 제어 방법
US11514886B2 (en) Emotion classification information-based text-to-speech (TTS) method and apparatus
US8306819B2 (en) Enhanced automatic speech recognition using mapping between unsupervised and supervised speech model parameters trained on same acoustic training data
KR20220004737A (ko) 다국어 음성 합성 및 언어간 음성 복제
CN110473525B (zh) 获取语音训练样本的方法和装置
US20220180872A1 (en) Electronic apparatus and method for controlling thereof
US20150356967A1 (en) Generating Narrative Audio Works Using Differentiable Text-to-Speech Voices
CN110197655B (zh) 用于合成语音的方法和装置
CN107705782B (zh) 用于确定音素发音时长的方法和装置
KR20200056261A (ko) 전자 장치 및 이의 제어 방법
US8620670B2 (en) Automatic realtime speech impairment correction
JP6625772B2 (ja) 検索方法及びそれを用いた電子機器
US20090177473A1 (en) Applying vocal characteristics from a target speaker to a source speaker for synthetic speech
KR20180012639A (ko) 음성 인식 방법, 음성 인식 장치, 음성 인식 장치를 포함하는 기기, 음성 인식 방법을 수행하기 위한 프로그램을 저장하는 저장 매체, 및 변환 모델을 생성하는 방법
KR102020773B1 (ko) 음성합성엔진을 이용한 멀티미디어 음성인식 자동 평가시스템
Panda et al. An efficient model for text-to-speech synthesis in Indian languages
CN112908308B (zh) 一种音频处理方法、装置、设备及介质
KR102622350B1 (ko) 전자 장치 및 그 제어 방법
CN113192484A (zh) 基于文本生成音频的方法、设备和存储介质
KR20190002003A (ko) 음성 합성 방법 및 장치
CN117558269B (zh) 声音识别方法、装置、介质和电子设备
US20230410789A1 (en) System and Method for Secure Data Augmentation for Speech Processing Systems
JP5049310B2 (ja) 音声学習・合成システム及び音声学習・合成方法
US20230038118A1 (en) Correction method of synthesized speech set for hearing aid
KR20180103273A (ko) 음성 합성 장치 및 음성 합성 방법

Legal Events

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