KR102414159B1 - 보류 상태를 관리하기 위한 방법 및 장치 - Google Patents
보류 상태를 관리하기 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR102414159B1 KR102414159B1 KR1020217042192A KR20217042192A KR102414159B1 KR 102414159 B1 KR102414159 B1 KR 102414159B1 KR 1020217042192 A KR1020217042192 A KR 1020217042192A KR 20217042192 A KR20217042192 A KR 20217042192A KR 102414159 B1 KR102414159 B1 KR 102414159B1
- Authority
- KR
- South Korea
- Prior art keywords
- hold
- communication session
- voice communication
- response
- client
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 72
- 238000004891 communication Methods 0.000 claims abstract description 196
- 230000004044 response Effects 0.000 claims abstract description 167
- 238000012544 monitoring process Methods 0.000 claims abstract description 31
- 230000003993 interaction Effects 0.000 claims description 13
- 230000009471 action Effects 0.000 claims description 7
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 230000002452 interceptive effect Effects 0.000 claims description 4
- 238000009877 rendering Methods 0.000 claims description 3
- 230000000007 visual effect Effects 0.000 claims description 3
- 230000001052 transient effect Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 8
- 230000008569 process Effects 0.000 description 23
- 238000010801 machine learning Methods 0.000 description 22
- 238000001514 detection method Methods 0.000 description 14
- 230000015654 memory Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000000926 separation method Methods 0.000 description 7
- 230000005236 sound signal Effects 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 239000000463 material Substances 0.000 description 5
- 238000003062 neural network model Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/82—Line monitoring circuits for call progress or status discrimination
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/02—Constructional features of telephone sets
- H04M1/18—Telephone sets specially adapted for use in ships, mines, or other places exposed to adverse environment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/7243—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages
- H04M1/72436—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages for text messaging, e.g. short messaging services [SMS] or e-mails
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/22—Arrangements for supervision, monitoring or testing
- H04M3/2272—Subscriber line supervision circuits, e.g. call detection circuits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/428—Arrangements for placing incoming calls on hold
- H04M3/4285—Notifying, informing or entertaining a held party while on hold, e.g. Music On Hold
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/428—Arrangements for placing incoming calls on hold
- H04M3/4286—Notifying a held subscriber when his held call is removed from hold
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/7243—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages
- H04M1/72433—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages for voice messaging, e.g. dictaphones
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2201/00—Electronic components, circuits, software, systems or apparatus used in telephone systems
- H04M2201/40—Electronic components, circuits, software, systems or apparatus used in telephone systems using speech recognition
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/16—Communication-related supplementary services, e.g. call-transfer or call-hold
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Human Computer Interaction (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Telephonic Communication Services (AREA)
- Telephone Function (AREA)
Abstract
세션이 보류 상태에 있을 때 세션이 더 이상 보류 상태가 아닌 시기를 결정하기 위한 음성 통신 세션의 모니터링이 자동화된다. 세션이 더 이상 보류 상태가 아닌 것으로 결정되면, 세션을 시작한 호출 사용자가 인식할 수 있고 세션의 보류 상태가 중지되었음을 나타내는 사용자 인터페이스 출력이 렌더링된다. 일부 구현에서, 세션의 오디오 스트림은 오디오 스트림의 처리에 기초하여, 보류 상태의 후보 종료를 결정하기 위해 모니터링될 수 있다. 이에 응답하여, 응답 요청 신호가 오디오의 인출 부분에 삽입된다. 오디오 스트림이 응답 요청 신호에 대한 응답(있는 경우)에 대해 추가로 모니터링될 수 있다. 응답(있는 경우)은 처리되어 보류 상태의 종료가 보류 상태의 실제 종료인지 여부를 결정할 수 있다.
Description
사람들은 다양한 클라이언트 디바이스를 사용하여 음성 통신 세션(예를 들어, 전화 통화)에 참여할 수 있다. 개인(본 명세서에서 "호출자" 또는 "사용자"로 지칭함)이 특정 번호로 호출하고 걸고 현재 호출을 받을 수 있는 사람이 없는 경우, 많은 기관은 호출자를 보류 상태로 만들 수 있다. 보류 상태는 호출자가 담당자(본 명세서에서 사용자"로도 지칭됨)와 상호 작용하려고 기다리고 있음을 나타낸다. 사용자가 보류 상태로 대기하는 동안 사용자를 위해 음악이 자주 재생된다. 또한 음악은 사용자가 호출한 기관에 관한 정보(예를 들어, 기관의 웹 사이트, 기관의 정상 업무 시간 등)와 같은 추가 정보를 제공할 수 있는 사람의 다양한 녹음 음성에 의해 중지될 수 있다. 추가적으로, 자동 음성은 사용자가 얼마나 더 보류 상태를 유지할지를 나타내기 위해 예상 잔여 대기 시간을 사용자에게 업데이트할 수 있다.
호출이 보류 중일 때, 호출자는 서비스 담당자와 같은 제2 사용자가 호출에서 활성화되는 시기를 결정하기 위해 호출을 면밀히 모니터링해야 한다. 예를 들어 보류 중 음악이 사람 음성으로 전환되면, 호출자는 자신이 듣고 있는 음성이 사전 녹음된 음성인지 또는 실제 서비스 담당자인지 여부를 확인해야 한다. 클라이언트 디바이스를 통해 시작된 보류 호출의 근접 모니터링을 활성화하기 위해, 호출자는 호출 볼륨을 높이고, 호출의 오디오 출력을 스피커폰 방식으로 위치시키거나, 호출이 보류 동안 (호출이 여전히 활성 상태이고 보류 상태인지 확인하기 위해) 클라이언트 디바이스의 화면을 반복적으로 활성화할 수 있다. 호출자의 이러한 및/또는 다른 보류중 모니터링 활동은 클라이언트 디바이스의 전력 소비를 증가시킬 수 있다. 예를 들어, 이러한 활동은 호출에 사용되는 휴대폰의 전력 소비를 증가시킬 수 있으며, 이로 인해 휴대폰 배터리가 빠르게 소모될 수 있다. 추가적으로, 이러한 및/또는 다른 보류중 모니터링 활동은 호출자가 볼륨을 높이고 스피커폰 방식을 활성화하고 및/또는 화면을 활성화하는 입력과 같이 클라이언트 디바이스에서 많은 양의 입력을 수행하도록 요구할 수 있다.
본 명세서에 설명된 구현은 세션이 보류 상태에 있을 때 세션이 더 이상 보류 상태에 있지 않는 시기를 결정(확인)하기 위한 음성 통신 세션의 자동화 모니터링에 관한 것이다. 세션이 더 이상 보류 상태에 있지 않은 것으로 결정되었을 때, 세션을 시작한 호출 사용자에게 인식될 수 있고 세션의 보류 상태가 중지되었음을 나타내는 사용자 인터페이스 출력이 렌더링된다. 다양한 구현에서, (예를 들어, 음성 통신 세션을 시작한 클라이언트 디바이스에서 적어도 부분적으로 작동하는) 보류 클라이언트는 세션이 더 이상 보류 상태가 아닌 시기를 결정하기 위해 세션의 오디오 스트림의 적어도 인입(incoming) 부분을 모니터링하는데 사용될 수 있다. 이러한 다양한 구현들 중 일부에서, 보류 클라이언트는 오디오 스트림의 처리에 기초하여 보류 상태의 후보 종료(end)를 결정한다. 보류 상태의 후보 종료는 오디오 스트림에서 하나 이상의 이벤트 발생을 검출하는 것에 기초할 수 있다. 비-제한적인 예로, 보류 상태의 후보 종료는 오디오 스트림에서 전환(예를 들어, 임의의 전환 또는 "보류 음악"에서 사람의 음성으로의 전환)을 검출하고, (예를 들어, 음성 활동 검출을 사용하여) 임의의 사람의 음성을 검출하고, (예를 들어, 화자 분리를 사용하여) 새로운 사람의 음성을 검출하고, 특정 용어 및/또는 문구(예를 들어, "안녕하세요", "하이" 및/또는 호출하는 사용자의 이름) 및/또는 다른 이벤트 의 발생을 검출하는 것에 기초할 수 있다.
이러한 다양한 구현의 일부 버전에서, 보류(on hold) 클라이언트는 보류 상태에 대한 후보 종료를 검출하는 것에 응답하여 (피호출자에 의해 "청취"될 수 있도록) 응답 요청 신호가 오디오 스트림의 인출(outgoing) 부분에 삽입되도록 한다. 응답 요청 신호는 하나 이상의 단어를 말하는 녹음 인간 음성 또는 하나 이상의 단어를 말하는 합성 생성 음성일 수 있다. 하나 이상의 단어는 예를 들어 "안녕하세요", "거기 계십니까", "하이, 회선에 계십니까"등이 될 수 있다. 보류 클라이언트는 응답 요청 신호에 대한 응답(있는 경우)을 추가로 모니터링하여, 응답이 보류 상태의 후보 종료가 보류 상태의 실제 종료임을 나타내는지 여부를 결정할 수 있다. 그런 경우, 보류 클라이언트는 세션을 시작한 호출 사용자에게 인식될 수 있고 세션의 보류 상태가 중지되었음을 나타내는(즉 음성 통신 세션이 더 이상 보류되지 않음) 사용자 인터페이스 출력이 렌더링되도록 할 수 있다. 그렇지 않은 경우, 보류 클라이언트는 하나의 보류 상태의 후보 종료의 다른 발생을 계속 모니터링할 수 있다. 일부 구현에서, 보류 클라이언트는 응답이 사람의 음성일 가능성을 결정하는 것에 기초하고; (예를 들어, 음성-텍스트 변환 프로세서를 사용하여) 응답을 텍스트로 변환하여 텍스트가 응답 요청 신호에 응답하는지 여부를 결정하는 것에 기초하고; 응답이 (예를 들어, 음성 통신 세션에 대해 사전 녹음된 음성(들)과 구별되는 음성 특성(들)을 포함하는) 사전 녹음된 음성이 아니라는 결정에 기초하고; 및/또는 다른 기준/기준(criterion/criteria)에 기초하여, 보류 상태의 후보 종료가 보류 상태의 실제 종료임을 응답이 나타내는지 여부를 결정한다. 보류 클라이언트는 응답이 사람 음성일 가능성을 결정할 때 트레이닝된 기계 학습 모델을 선택적으로 활용할 수 있다.
이들 및 다른 방식에서, 보류 클라이언트는 보류 세션의 오디오 스트림의 인입 부분을 모니터링하여 응답 요청 신호를 제공할 시기를 동적으로 결정할 수 있다. 또한, 보류 클라이언트는 세션의 보류 상태가 중지되었는지 여부를 결정할 때 응답 요청 신호에 대한 응답(있는 경우)을 활용할 수 있다. 보류 클라이언트에 의한 이러한 액션들은 호출 사용자의 개입없이 그리고 클라이언트 디바이스가 음성 통신 세션의 오디오 스트림을 청각적으로 렌더링할 필요없이 수행될 수 있다. 또한, 본 명세서에 설명된 바와 같이, 다양한 구현에서 보류 클라이언트는 자동으로(요구되는 사용자 입력없이) 또는 최소 사용자 입력(예를 들어, 그래픽 엘리먼트의 단일 탭 또는 단일 음성 명령)으로 시작될 수 있다.
음성 통신 세션은 VoIP, PSTN, PBX, 임의의 다양한 비디오 및/또는 오디오 화상 회의 서비스와 같은 다양한 프로토콜 및/또는 인프라를 활용할 수 있다. 다양한 구현에서, 음성 통신 세션은 (음성 통신 세션을 시작하는) 호출 사용자의 클라이언트 디바이스와 피호출자의 하나 이상의 디바이스 사이에 있다. 음성 통신 세션은 호출 사용자와 피호출자간의 양방향 오디오 통신을 가능하게 한다. 음성 통신 세션은 호출 사용자의 클라이언트 디바이스와 피호출자의 디바이스 사이의 직접적인 피어-투-피어 세션일 수 있고 및/또는 다양한 서버, 네트워크 및/또는 기타 자원를 통해 라우팅될 수 있다. 음성 통신 세션은 다양한 디바이스간에 발생할 수 있다. 예를 들어, 음성 통신 세션은 호출 사용자의 클라이언트 디바이스(예를 들어, 휴대폰, 독립형 대화형 스피커, 태블릿, 랩탑)와 피호출자의 유선 전화 사이; 호출 사용자의 클라이언트 디바이스와 피호출자의 클라이언트 디바이스; 호출 사용자의 클라이언트 디바이스와 피호출자의 PBX사이에 있을 수 있다.
본 명세서에 설명된 일부 구현에서, 클라이언트 디바이스에서 적어도 부분적으로 동작하는 보류 클라이언트는 (클라이언트 디바이스에 의해 시작된) 음성 통신 세션이 보류 상태가 되었음을 검출하는 클라이언트 디바이스에 응답하여 시작될 수 있다. 휴대폰과 같은 클라이언트 디바이스는 음성 통신 세션의 오디오 스트림을 검사하고 다양한 방법으로 세션이 보류 상태인지 결정할 수 있다. 일 예로서, 클라이언트 디바이스는 일반적인 "보류 음악"과 같이 오디오 스트림의 인입 부분에서 음악을 검출하는 것에 기초하여 세션이 보류 상태인지 결정할 수 있다. 예를 들어, 오디오 스트림의 인입 부분이 처리되고, 공지된 보류 음악 목록과 비교(예를 들어, 오디오 스트림의 오디오 특성이 공지된 보류 음악의 오디오 특성과 비교)되어 오디오 스트림의 인입 부분이 일반적인 보류 음악인지 여부를 결정할 수 있다. 이러한 목록은 클라이언트 디바이스 및/또는 클라이언트 디바이스가 네트워크(예를 들어, 셀룰러 네트워크)를 통해 연결할 수 있는 원격 서버에 로컬로 저장될 수 있다. 추가적으로 또는 대안적으로, 오디오 스트림의 인입 부분이 처리되어 공지된 보류 음성 목록과 비교될 수 있다. 다른 예로서, 클라이언트 디바이스는 오디오 스트림의 인입 부분에서 임의의 음악을 검출하는 것에 기초하여 세션이 보류 상태인지 결정할 수 있다. 또 다른 예로서, 클라이언트 디바이스는 세션에 대해 다이얼링한 번호를 보류 상태인 호출자에게 알려진 전화 번호 목록과 비교하는 것에 기초하여 세션이 보류 상태인지 추가적으로 또는 대안적으로 결정할 수 있다. 예를 들어, 사용자가 "가상 유틸리티 회사"에 전화를 걸면, 클라이언트 디바이스는 실제 담당자와 통화할 수 있기 전에 일반적으로 호출자를 보류 상태로 만드는 번호로 저장된 "가상 유틸리티 회사"와 관련된 전화 번호를 가질 수 있다. 또한, 호출자를 보류 상태로 만들기 위한 공지된 전화 번호 목록은 해당 번호에 의해 사용된 공지 보류 음악 및/또는 공지 보류 음성 목록을 가질 수 있다. 추가적으로 또는 대안적으로, 사용자는 일반적으로 호출자를 보류 상태로 만드는 전화 번호를 클라이언트 디바이스로 제공할 수 있다. 사용자의 허가를 받아, 사용자가 제공한 전화 번호들은 클라이언트 디바이스사이에 공유될 수 있으며, 일반적으로 사람들을 다른 클라이언트 디바이스상에서 보류 상태로 만드는 번호 목록에 추가될 수 있다.
일부 구현에서, 사용자는 클라이언트 디바이스에 자신이 보류 상태임을 나타낼 수 있다. 이러한 구현의 일부 버전에서, 클라이언트 디바이스는 사용자가 보류 상태일 가능성이 있음을 검출하고, 사용자가 보류 클라이언트를 시작하려는 경우 사용자에게 프롬프트하는 사용자 인터페이스 출력(예를 들어, 선택 가능한 그래픽 엘리먼트 및/또는 청각적 프롬프트)을 제공할 수 있다. 사용자가 긍정적인 사용자 인터페이스 입력(예를 들어, 선택 가능한 그래픽 엘리먼트의 선택 및/또는 음성 긍정 입력)으로 응답하면 보류 클라이언트가 시작될 수 있다. 이러한 구현의 일부 다른 버전에서, 사용자는 클라이언트 디바이스가 사용자가 보류 상태일 가능성이 있음을 검출하지 않고 및/또는 클라이언트 디바이스가 사용자에게 프롬프트하지 않고 보류 클라이언트를 시작할 수 있다. 예를 들어, 사용자는 보류 클라이언트를 시작하기 위해 음성 명령(예를 들어, "어시스턴트, 보류 모니터링 시작해")을 제공할 수 있고 및/또는 사용자가 보류 상태일 가능성이 있는지 여부를 결정하는데 의존하지 않는 선택 가능한 그래픽 엘리먼트를 선택할 수 있다. 많은 구현에서, 클라이언트 디바이스는 전체 음성 통신 세션의 오디오 스트림을 모니터링하고 사용자가 세션의 시작 지점이 아닌 일부 지점에서 보류 상태에 있었는지 검출할 수 있다. 예를 들어, 사용자는 세션을 제2 담당자에게 전달하는 동안 사용자를 보류하는 담당자와 상호 작용할 수 있다. 다양한 구현에서, 보류 클라이언트는 음성 통신 세션이 보류된 시기를 검출하기 위해 백그라운드에서 동작할 수 있으며, (예를 들어, 음성 통신 세션이 더 이상 보류되지 않는 시기를 검출하기 위해) 본 개시의 다른 양태를 수행하는 보류 클라이언트에서 "시작"(예를 들어, "활성" 상태로 전환)될 수 있다는 점에 유의한다.
보류 클라이언트가 시작될 때, 보류 클라이언트는 음성 통신 세션이 더 이상 보류 상태가 아닌 시기를 결정하기 위해 음성 통신 세션의 오디오 스트림의 적어도 인입 부분을 모니터링할 수 있다. 세션이 더 이상 보류 상태가 아닌 경우, 호출 사용자는 회사의 담당자, 의사 사무실의 안내원 등과 같은 실제 사람과 상호 작용할 수 있다. 보류 클라이언트를 사용하여 음성 통신 세션의 오디오 스트림을 모니터링하는 것은 사용자의 직접적인 상호 작용없이 수행될 수 있다(예를 들어, 사용자는 보류 세션을 청취할 필요가 없음).
일부 구현에서, 보류 클라이언트는 보류 음악이 사람 음성으로 변경되는 시기를 결정할 수 있다. 사람 목소리는 때때로 사람의 녹음일 수 있으므로 보류 클라이언트는 녹음이 재생 상태인지 또는 실제 사람이 세션에 참여했는지 여부를 결정한다. 다양한 구현에서, 보류 클라이언트는 검출된 음성에 질문(본 명세서에서 "응답 요청 신호"라고 함)을 물을 수 있고 음성이 그 질문에 응답하는지 확인할 수 있다. 예를 들어, 세션의 오디오 신호에서 사람 음성이 검출되면 보류 클라이언트는 "거기 계십니까?" 라고 물을 수 있고 음성이 그 질문에 응답하는지 확인한다. 보류 클라이언트가 시작한 질문에 대한 적절한 응답은 그 보류가 종료되었으며 두 번째 사람이 세션에 참여했음을 나타낸다. 다른 구현에서, 질문이 무시되고 보류 클라이언트가 두 번째 사람이 세션에 참여하지 않았음을 결정할 수 있다. 예를 들어 보류 클라이언트가 오디오 신호에 대한 입력으로 "거기 누구 계십니까"를 전송하고 응답을 수신하지 못하는 경우(예를 들어, 대신 보류 음악이 계속 재생됨), 이는 음성이 녹음 중이고 세션이 여전히 보류 중임을 나타낼 수 있다.
일부 구현에서, 보류가 종료될 수 있는 시기를 결정하기 위해 "후보 보류 종료 이벤트"가 사용될 수 있다. 많은 구현에서, 이 후보 보류 종료 이벤트는 음성이 사람인지 확인하기 위해 세션의 오디오 채널을 통해 응답 요청 신호를 송신하는 보류 클라이언트를 시작할 수 있다. 이 후보 보류 종료 이벤트는 다양한 방법으로 검출할 수 있다. 예를 들어, 클라이언트 디바이스는 음악 재생이 중지되거나 사람이 말하기 시작하는 시기를 검출할 수 있다. 음악에서 말하는 사람으로의 변경은 이산 푸리에 변환(DFT)을 포함하는 다양한 오디오 지문 프로세스를 사용하여 결정될 수 있다. DFT는 보류 세션의 블록들을 모니터링하고, 이전 블록과 비교되는 한 블록에서 충분한 변경이 검출되는 시기를 결정할 수 있다(예를 들어, 음악 재생이 중지되고 추가 블록에서 음악으로부터 사람의 음성으로 변경되는 시시를 검출함). 다양한 구현에서, 하나 이상의 기계 학습 모델이 트레이닝되어 보류 세션이 오디오에서 사람의 음성으로 변경되는 시기를 결정하는데 사용될 수 있다.
많은 구현에서, 오디오 신호를 통해 질문(종종 "응답 요청 신호"로 지칭됨)할 시기를 결정하기 위한 임계값은 낮고 질문을 하는데 계산 자원이 거의 필요하지 않기 때문에(그리고 사람이 현재 세션의 다른 쪽 끝에 있지 않으면 불쾌감을 유발하지 않기 때문에) 보류 클라이언트는 자주 질문을 할 것이다. 이러한 구현 중 일부에서, 제1 기계 학습 모델이 후보 보류 종료 이벤트를 검출하고 오디오 신호에 대한 입력으로 질문할 시기를 결정하는데 사용될 수 있다. 응답이 검출되었는지 확인하는 것은 추가 계산 자원이 필요할 수 있으며, 다양한 구현에서 (제1 기계 학습 모델에 추가하여) 제2 기계 학습 모델이 사람이 질문에 응답했는지 여부를 결정할 수 있다. 사람이 응답 요청 신호에 응답했는지 여부를 검출하는데 사용되는 제2 기계 학습 모델은 클라이언트 디바이스에 로컬로 및/또는 클라이언트 디바이스로부터 외부적으로, 예를 들어 종종 "클라우드"로 지칭되는 하나 이상의 원격 컴퓨팅 시스템에 저장될 수 있다. 일부 구현에서, 보류 클라이언트는 단일 기계 학습 모델을 사용하여 보류 세션을 처리하는 모든 부분을 결합할 수 있다. 이러한 구현 중 일부에서, 기계 학습 모델은 오디오 스트림을 처리하고 세션이 보류 상태일 가능성을 나타내는 출력을 제공하는데 사용될 수 있다. 이러한 구현의 일부 버전에서, 가능성에 대한 임계값을 충족하기 쉬운 첫 번째는 보류 상태의 후보 종료를 결정하는데 활용될 수 있으며, 가능성에 대한 임계값을 충족하기 어려운 두 번째는 보류 상태의 실제 종료를 결정하는데 사용될 수 있다.
다양한 구현에서, 하나 이상의 기계 학습 모델은 오디오 스트림을 입력으로 활용할 수 있으며, 하나 이상의 모델은 음성 통신 세션이 보류되었다는 결정, 보류가 잠재적으로 종료되어 응답 요청 신호가 음성 통신 세션의 오디오 스트림에 대한 입력으로서 전송되어야 한다는 결정 및/또는 음성 통신 세션 보류가 종료되어 응답 요청 신호를 전송할 필요가 없다는 결정을 포함하는 다양한 출력을 생성할 수 있다. 일부 구현에서, 단일 기계 학습 모델은 보류 클라이언트에 대한 모든 오디오 스트림 분석을 수행할 수 있다. 다른 구현에서, 다른 기계 학습 모델의 출력이 보류 클라이언트에 제공될 수 있다. 추가적으로 또는 대안적으로, 일부 구현에서 보류 클라이언트의 일부는 하나 이상의 기계 학습 모델에 입력을 제공하고 및/또는 그로부터 출력을 수신할 수 있는 반면, 보류 클라이언트의 일부는 임의의 기계 학습 모델과 상호 작용하지 않는다.
추가적으로 또는 대안적으로, 보류 상태인 일부 음성 통신 세션들은 예상 잔여 보류 시간을 구두로 나타낼 수 있다. 많은 구현에서, 보류 클라이언트는 음성 통신 세션의 오디오 스트림 내의 자연어를 분석함으로써 예상 잔여 보류 시간을 결정할 수 있고, 예상 잔여 보류 시간을 사용자에게 표시할 수 있다. 이러한 일부 구현에서, 예상 잔여 보류 시간은 "가상 수도 회사"와의 당신의 보류중인 호출에 10분의 업데이트된 잔여 예상 보류 시간이 제공되었습니다"라는 팝업 메시지를 푸시하는 것과 같은 디스플레이 화면을 갖는 클라이언트 디바이스의 대화 상자로 사용자에게 렌더링될 수 있다. 이 메시지는 보류 클라이언트의 일부, 화면의 새로운 팝업, 문자 메시지 등을 포함하여 다양한 방식으로 클라이언트 디바이스에 표시될 수 있다. 또한, 클라이언트 디바이스는 클라이언트 디바이스와 관련된 하나 이상의 스피커를 사용하여 구두 표시로서 사용자에게 이 정보를 추가로 또는 대안적으로 렌더링할 수 있다. 일부 구현에서, 보류 클라이언트는 알려진 숫자로 사용자가 보류중에 소비하는 평균 시간량을 학습하여, 보다 구체적인 추정치를 알 수없는 경우 사용자에게 평균 보류 시간(예를 들어, 카운트 다운 포함)을 제공할 수 있다. 보류 클라이언트와 관련된 기계 학습 모델은 오디오 스트림을 입력으로 사용할 때, 예상 잔여 보류 길이가 오디오 스트림에 표시된 시기를 학습하고 및/또는 알려진 숫자에 대한 예상 보류 시간을 학습할 수 있다.
기계 학습 모델은 피드 포워드 신경망, 순환 신경망(RNN), 컨볼루션 신경망 (CNN) 등을 포함할 수 있다. 기계 학습 모델은 주어진 입력에 해당하는 레이블이 지정된 출력과 함께 지도 학습 데이터 세트를 사용하여 트레이닝될 수 있다. 일부 구현에서, 이전에 기록된 보류 음성 통신 세션 세트의 레이블이 지정된 오디오 스트림은 기계 학습 모델에 대한 트레이닝 세트로 사용될 수 있다.
다양한 구현에서, 보류 클라이언트는 개별 음성을 검출하기 위해 세션의 오디오 스트림을 분할할 수 있는 화자 분리를 활용할 수 있다. 화자 분리는 화자 신원에 따라 입력 오디오 스트림을 동종 세그먼트로 분할하는 프로세스이다. 다중 화자 환경에서 "누가 언제 말했지"라는 질문에 답한다. 예를 들어, 화자 분리는 입력 오디오 스트림의 제1 세그먼트는 제1 인간 화자에 기인(귀속)한다고 식별하는데(특히 제1 인간 화자가 누구인지는 식별하지 않음) 사용될 수 있고, 입력 오디오 스트림의 제2 세그먼트는 전혀 다른 제2 인간 화자에 기인(귀속)한다고 식별하는데(특히 제1 인간 화자가 누구인지 식별하지 않음) 사용될 수 있으며, 입력 오디오 스트림의 제3 세그먼트는 제1 인간 화자에 기인(귀속)한다고 식별하는데 사용될 수 있다. 특정 음성이 검출되면, 보류 클라이언트는 음성을 질의하여 응답을 수신하는지 확인할 수 있다. 음성이 보류 클라이언트의 질문(예를 들어, "안녕하세요, 거기 계십니까")에 응답하지 않는 경우, 보류 클라이언트는 식별된 음성이 녹음이고 보류가 끝났다는 표시가 아니라고 결정할 수 있다. 보류 클라이언트는 특정 음성을 음성 녹음으로 학습할 수 있어, 음성 통신 세션 보류 중에 해당 음성이 다시 들리는 경우 무시할 것이다. 예를 들어, 특정 음성 및/또는 특정 음성으로 말한 단어(들)의 음성 특성(들)이 식별될 수 있으며, 음성 통신 세션에서 이러한 음성 특성(들) 및/또는 단어(들)의 향후 발생은 무시될 수 있다. 즉, 사람이 보류 중일 때 여러번 사용자를 위해 재생되는 녹음은 동일한 녹음(또는 여러 녹음 중 하나)에 의해 중지된 음악을 포함하는 루프이다. 이 보류 녹음 루프 내에서 녹음으로 식별된 음성은 음성 통신 세션 보류가 동일한 식별 음성으로 루프백되는 경우 무시된다(즉, 동일한 음성을 질문으로 다시 프롬프트하지 않음). 일부 이러한 구현에서, 녹음된 음성은 알려진 음성 녹음으로서 많은 클라이언트 디바이스에 걸쳐 공유될 수 있다.
일부 구현에서, 오디오 신호에서 검출된 컨텐츠는 인간 사용자가 응답 요청 신호가 필요하지 않은 회선에 있다는 강력한 표시자가 될 것이다. 예를 들어, 보류 클라이언트가 호출자의 이름, 호출자의 성, 호출자의 전체 이름과 같은 키워드 및/또는 문구 목록 중 하나를 검출하면, 보류 클라이언트는 음성 통신 세션의 오디오 스트림을 통해 질문하지 않고 실제 사용자가 회선에 있는지 확인할 수 있다. 추가적으로 또는 대안적으로, 서비스 담당자는 사용자와 상호 작용할 때 자주 스크립트를 따른다. 보류 클라이언트는 오디오 스트림을 통해 질문을 보내지 않고 보류가 종료되었음을 식별하기 위해 특정 회사의 서비스 담당자로부터의 일반적인 스크립트된 인사말을 모니터링할 수 있다. 예를 들어, 사용자가 특정 번호로 "가상 유틸리티 회사"를 호출한다고 가정한다. 보류 클라이언트는 서비스 담당자가 음성 통신 세션에 답변할 때 "가상 유틸리티 회사" 사용에서 스크립트된 응답 서비스 담당자를 학습할 수 있다. 다시 말해, 보류 클라이언트는 "가상 유틸리티 회사"에서 서비스 담당자를 학습하여 보류가 종료된 후에 "안녕하세요, 제 이름은 [서비스 담당자의 이름]이며 저는 가상 유틸리티 회사에서 근무합니다. 제가 오늘 무엇을 도와 드릴까요?"와 같은 스크립트된 메시지로 사용자와 음성 통신 세션을 시작할 수 있다. 스크립트된 메시지를 검출하면 음성을 질의하여 실제 제2 사용자인지 확인할 필요 없이 보류 클라이언트 종료를 트리거할 수 있다.
일단 보류 클라이언트가 보류의 종료를 검출하면, 다양한 구현에서 보류 클라이언트는 이제 세션에서도 활성 상태인 제2 사용자에게 스크립트된 메시지를 보낼 수 있다. 예를 들어, 보류 클라이언트는 "안녕하세요. 저는 제인 도우를 대표합니다, 그녀에게 알리고 있으며 그녀는 잠시 여기에 올 것입니다"라는 메시지를 보낼 수 있다. 이 메시지는 세션을 시작한 사용자에게 보류 종료를 알리는 동안 제2 사용자가 회선을 계속 유지하는데 도움이 된다. 추가적으로 또는 대안적으로, 음성 통신 세션은 세션과 상호 작용하기 위해 사용자에게 다시 돌아가는 대신 추가 클라이언트로 핸드오프될 수 있다. 일부 이러한 구현에서, 추가 클라이언트는 사용자에 관한 알려진 정보 및/또는 사용자가 특정 음성 통신 세션에 관해 추가 클라이언트에 제공한 정보를 사용하여 음성 통신 세션과 상호 작용할 수 있다. 예를 들어, 사용자는 "가상 팬시 레스토랑"에서 저녁 식사 예약을 원하는 시기에 관한 정보를 추가 클라이언트에게 제공할 수 있으며, 추가 클라이언트는 사용자를 위한 저녁 식사를 예약하기 위해 추가 실제 인간 사용자와 상호 작용할 수 있다.
많은 구현에서, 보류 클라이언트가 보류 상태가 종료되었다고 결정할 때(즉, 보류가 종료되고 사람이 회선에 있음) 세션을 시작한 사용자에게 통지된다. 일부 구현에서, 사용자는 보류 클라이언트가 시작될 때 또는 그와 거의 동시에 통지 받을 방법을 선택할 수 있다. 다른 구현에서, 사용자는 보류 클라이언트 내의 설정으로 통지 받을 방법을 선택할 수 있다. 사용자는 클라이언트 디바이스 자체를 사용하여 통지 받을 수 받을 수 있다. 예를 들어, 클라이언트 디바이스는 클라이언트 디바이스가 벨소리를 렌더링하고, 클라이언트 디바이스가 진동시키고, 클라이언트 디바이스가 음성 출력("당신은 더 이상 보류 상태가 아닙니다"을 제공하도록 함으로써 사용자에게 통지할 수 있다. 예를 들어, 보류가 끝나면 클라이언트 디바이스는 진동할 수 있으며 사용자는 클라이언트 디바이스의 버튼을 눌러 세션과 상호 작용을 시작할 수 있다.
추가적으로 또는 대안적으로, 보류 클라이언트는 예를 들어 동일한 네트워크에서 공유되고 및/또는 사용자의 제어하에 있는 클라이언트 디바이스들의 동일한 조정된 "에코 시스템"의 일부를 형성하는 하나 이상의 다른 클라이언트 디바이스 및/또는 주변 디바이스(예를 들어, 사물 인터넷(IoT) 디바이스)를 통해 사용자에게 통지할 수 있다. 보류 클라이언트는 디바이스 토폴로지를 통해 네트워크상의 다른 디바이스에 대한 정보를 가질 수 있다. 예를 들어, 보류 클라이언트가 사용자가 스마트 조명(들)이 있는 방에 있음을 알고 있는 경우, 사용자는 스마트 조명(들)의 상태(들)를 변경하고(예를 들어, 조명(들) 점명 온 및오프, 조명(들) 디밍), 조명(들)의 세기를 증가시키고, 조명(들)의 색상을 변경함으로써 통지를 받도록 선택할 수 있다. 다른 예로서, 스마트 텔레비전과 같은 디스플레이 화면에 참여하는 사용자는 스마트 텔레비전 디스플레이 화면에 나타나는 메시지로 알림을 받도록 선택할 수 있다. 즉, 사용자는 세션이 보류 동안 TV를 시청할 수 있고 보류가 종료된 TV를 통해 보류 클라이언트에 의해 사용자가 세션에 다시 들어갈 수 있음을 통지 받을 수 있다. 또 다른 예로서, 음성 통신 세션은 휴대폰을 통해 이루어질 수 있고, 통지는 하나 이상의 스마트 스피커 및/또는 다른 클라이언트 디바이스(들)를 통해 렌더링될 수 있다. 다양한 구현에서, 음성 통신 세션에 사용되는 클라이언트 디바이스는 휴대폰일 수 있다. 대체 클라이언트 디바이스가 음성 통신 세션에 사용될 수 있다. 예를 들어, 음성 통신 세션에 사용되는 클라이언트 디바이스는 사용자를 위한 음성 통신 세션을 만드는 기능을 가진 전용 자동화 어시스턴트 디바이스(예를 들어, 스마트 스피커 및/또는 다른 전용 어시스턴트 디바이스)를 포함할 수 있다.
본 명세서에 설명된 구현들은 클라이언트 디바이스가 보류 음성 통신 세션과 상호 작용하는 시간을 줄임으로써 클라이언트 디바이스의 유용성을 향상시킬 수 있다. 보류 음성 통신 세션과 완전히 상호 작용하는 클라이언트 디바이스 대신에 보류 클라이언트 프로세스를 컴퓨팅 디바이스의 백그라운드에서 실행함으로써 컴퓨팅 자원를 절약할 수 있다. 예를 들어, 많은 사용자는 클라이언트 디바이스와 관련된 스피커를 통해 보류 음성 통신 세션을 출력한다. 스피커에서 세션을 출력하는 것과 비교하여 음성 통신 세션의 백그라운드 모니터링은 클라이언트 디바이스에 의한 계산 처리를 덜 필요로 한다. 추가적으로 또는 대안적으로, 클라이언트 디바이스의 백그라운드에서 보류 프로세스를 수행하면 클라이언트 디바이스와 관련된 하나 이상의 스피커를 통해 보류 음성 통신 세션을 출력하는 것과 비교할 때 클라이언트 디바이스의 배터리 수명을 보존할 수 있다(이는 클라이언트 디바이스가 귀 옆에 있을 때 사용자가 들을 수 있는 오디오 스트림의 출력 및 외부 스피커에서 출력되는 보류 음성 통신 세션의 오디오 스트림을 모두 포함할 수 있음).
위의 내용은 본 명세서에 개시된 다양한 구현들의 개요로서 제공된다. 이러한 다양한 구현 및 추가 구현에 관한 추가 세부 사항이 본 명세서에 제공된다.
일부 구현에서, 하나 이상의 프로세서에 의해 구현되는 방법이 제공되어 음성 통신 세션이 보류 상태에 있다고 검출하는 단계를 포함한다. 음성 통신 세션은 호출(calling) 사용자의 클라이언트 디바이스에 의해 시작되고, 상기 음성 통신 세션이 보류 상태에 있다고 검출하는 단계는 음성 통신 세션의 오디오 스트림에 적어도 부분적으로 기초한다. 방법은 클라이언트 디바이스에서 보류 클라이언트를 시작하는 단계를 더 포함한다. 상기 보류 클라이언트를 시작하는 단계는 음성 통신 세션 동안이고 음성 통신 세션이 보류 상태에 있다고 검출하는 것에 기초한다. 방법은 보류 클라이언트를 사용하여, 보류 상태의 후보 종료(end)에 대해 음성 통신 세션의 오디오 스트림을 모니터링하는 단계를 더 포함한다. 상기 음성 통신 세션의 오디오 스트림을 모니터링하는 단계는 호출 사용자로부터의 직접적인 상호 작용없이 발생한다. 방법은 모니터링에 기초하여, 보류 상태의 후보 종료를 검출하는 단계를 더 포함한다. 방법은 보류 상태의 후보 종료를 검출하는 것에 응답하여: 클라이언트 디바이스로부터, 음성 통신 세션의 오디오 스트림에 대한 입력으로서 응답 요청 신호를 전송하는 단계와; 응답 요청 신호에 대한 응답을 위해 음성 통신 세션의 오디오 스트림을 모니터링하는 단계와; 그리고 응답 요청 신호에 대한 응답이 상기 보류 상태의 후보 종료가 보류 상태의 실제 종료임을 나타낸다고 결정하는 단계를 더 포함한다. 상기 보류 상태의 실제 종료는 인간 사용자가 음성 통신 세션에서 호출 사용자와 상호 작용할 수 있음을 나타낸다. 방법은 보류 상태의 실제 종료를 결정하는 것에 응답하여 사용자 인터페이스 출력이 렌더링되도록 하는 단계를 더 포함한다. 상기 사용자 인터페이스 출력은 호출 사용자에 의해 인지 가능하고 상기 보류 상태의 실제 종료를 나타낸다.
본 명세서에 개시된 기술의 이들 및 다른 구현은 다음의 특징들 중 하나 이상을 포함할 수 있다.
일부 구현에서, 보류 상태의 후보 종료를 검출하는 단계는 음성 통신 세션의 오디오 스트림에서 말하는 인간 음성을 검출하는 단계를 포함한다.
일부 구현에서, 클라이언트 디바이스는 이동 전화 또는 독립형 대화형 스피커이다.
일부 구현에서, 보류 클라이언트를 시작하는 단계는 호출 사용자에 의해 클라이언트 디바이스에서 제공되는 사용자 인터페이스 입력에 응답한다.
이들 구현의 일부 버전에서, 방법은 음성 통신 세션이 보류 상태에 있다고 검출하는 것에 응답하여, 클라이언트 디바이스에서, 보류 클라이언트를 시작하기 위한 제안을 렌더링하는 단계를 더 포함한다. 이러한 버전에서, 호출 사용자에 의해 제공되는 사용자 인터페이스 입력은 클라이언트 디바이스에서 제안을 렌더링하는 것에 응답하여 제공되는 긍정적인 사용자 인터페이스 입력이다.,
일부 구현에서, 보류 클라이언트는 음성 통신 세션이 보류 상태에 있다는 것을 검출하는 것에 응답하여 클라이언트 디바이스에 의해 자동으로 시작된다.
일부 구현에서, 음성 통신 세션이 보류 상태에 있다고 검출하는 단계는 음성 통신 세션의 오디오 스트림에서 음악을 검출하는 단계; 및 그 음악이 공지된 보류 음악 목록에 포함되어 있다고 결정하는 단계를 포함한다.
일부 구현에서, 음성 통신 세션이 보류 상태에 있다고 검출하는 단계는 음성 통신 세션과 관련된 전화 번호가 호출자를 보류 상태로 설정하기 위한 공지된 전화 번호 목록에 있다고 결정하는 단계에 더 기초한다.
일부 구현에서, 상기 보류 상태의 후보 종료를 검출하는 단계는 오디오 스트림에서 적어도 임계값 변화를 결정하기 위해 오디오 지문을 사용하는 단계를 포함한다.
일부 구현에서, 응답 요청 신호에 대한 응답이 상기 보류 상태의 후보 종료가 보류 상태의 실제 종료임을 나타낸다고 결정하는 단계는 적어도 하나의 예측 출력을 생성하기 위해 적어도 하나의 기계 학습 모델을 사용하여 응답을 처리하는 단계; 및 적어도 하나의 예측 출력에 기초하여 상기 보류 상태의 후보 종료가 보류 상태의 실제 종료라고 결정하는 단계를 포함한다. 이러한 구현의 일부 버전에서, 상기 적어도 하나의 예측 출력은 응답에 대한 예측 텍스트를 포함하고, 상기 예측 출력에 기초하여 상기 보류 상태의 후보 종료가 보류 상태의 실제 종료라고 결정하는 단계는 텍스트가 응답 요청 신호에 응답한다고 결정하는 단계를 포함한다. 이러한 구현의 일부 추가적인 또는 대안적인 버전에서, 상기 적어도 하나의 예측 출력은 응답이 사람 음성인지 여부에 대한 예측을 포함하고, 상기 예측 출력에 기초하여 상기 보류 상태의 후보 종료가 보류 상태의 실제 종료라고 결정하는 단계는 상기 응답이 인간 음성인지 여부에 대한 예측이 응답이 인간 음성임을 나타낸다고 결정하는 단계를 포함한다.
일부 구현에서, 방법은 응답 요청 신호에 대한 응답이 상기 보류 상태의 후보 종료가 보류 상태의 실제 종료임을 나타낸다고 결정하는 것에 후속하여: 클라이언트 디바이스로부터, 음성 통신 세션의 오디오 스트림에 대한 입력으로서 보류 종료 메시지를 전송하는 단계와, 상기 보류 종료 메시지는 인간 사용자가 들을 수 있고 호출 사용자가 음성 통신 세션으로 리턴하고 있음을 표시하고; 그리고 클라이언트 디바이스상의 보류 클라이언트를 종료하는 단계를 더 포함한다.
일부 구현에서, 보류 상태의 실제 종료를 나타내는 사용자 인터페이스 출력은 클라이언트 디바이스, 클라이언트 디바이스에 연결된 추가 클라이언트 디바이스, 및/또는 주변 디바이스(예를 들어, 네트워크 조명)를 통해 렌더링된다.
일부 구현에서, 방법은 음성 통신 세션과 연관된 전화 번호(또는 다른 고유 식별자)와 관련된 사전 녹음된 인간 음성의 하나 이상의 사전 녹음된 음성 특성을 식별하는 단계를 더 포함한다. 이러한 구현의 일부 버전에서, 상기 응답 요청 신호에 대한 응답이 상기 보류 상태의 후보 종료가 보류 상태의 실제 종료임을 나타낸다고 결정하는 단계는 응답에 대한 하나 이상의 응답 음성 특성을 결정하는 단계; 및 하나 이상의 응답 음성 특성이 상기 하나 이상의 사전 녹음된 음성 특성과 다르다고 결정하는 단계를 포함한다.
일부 구현에서, 하나 이상의 프로세서에 의해 구현되는 방법이 제공되어 클라이언트 디바이스를 통해 제공된 사용자 인터페이스 입력을 수신하는 단계를 포함한다. 사용자 인터페이스 입력은 음성 통신 세션이 보류 상태일 때 호출 사용자에 의해 제공된다. 음성 통신 세션은 클라이언트 디바이스에 의해 시작되고, 피호출자는 음성 통신 세션의 보류 상태를 제어한다. 방법은 사용자 인터페이스 입력을 수신하는 것에 응답하여: 보류 상태의 후보 종료에 대해 음성 통신 세션 동안 피호출자에 의해 생성된 오디오를 모니터링하는 단계를 더 포함한다. 방법은 모니터링에 기초하여, 보류 상태의 후보 종료를 검출하는 단계를 더 포함한다. 방법은 보류 상태의 후보 종료를 검출하는 것에 응답하여: 클라이언트 디바이스에 의해, 음성 통신 세션에 포함하기 위한 가청 출력을 전송하는 단계를 더 포함한다. 가청 출력은 하나 이상의 단어를 말하는 녹음된 인간 음성 또는 하나 이상의 단어를 말하는 합성적으로 생성된 음성을 포함한다.
방법은 가청 출력에 이어 피호출자에 의해 생성된 오디오를 모니터링하는 단계와; 가청 출력에 이어 피호출자에 의해 생성된 오디오가 상기 보류 상태의 후보 종료가 보류 상태의 실제 종료임을 나타내는 하나 이상의 기준을 총족한다고 결정하는 단계를 더 포함한다. 상기 보류 상태의 실제 종료는 인간 사용자가 음성 통신 세션에서 호출 사용자와 상호 작용할 수 있음을 나타낸다. 방법은 보류 상태의 실제 종료를 결정하는 것에 응답하여 사용자 인터페이스 출력이 렌더링되도록 하는 단계를 포함한다. 상기 사용자 인터페이스 출력은 호출 사용자에 의해 인지 가능하고 상기 보류 상태의 실제 종료를 나타낸다.
기술의 이들 및 다른 구현은 선택적으로 다음 특징들 중 하나 이상을 포함할 수 있다.
일부 구현에서, 상기 가청 출력에 이어 피호출자에 의해 생성된 오디오가 하나 이상의 기준을 충족한다고 결정하는 단계는 가청 출력에 이어 피호출자에 의해 생성된 오디오의 음성-텍스트 변환을 수행함으로써 텍스트를 생성하는 단계와; 상기 텍스트가 가청 출력의 하나 이상의 단어에 응답한다고 결정하는 단계를 포함한다.
일부 구현에서, 사용자 인터페이스 입력은 클라이언트 디바이스에 의해 렌더링된 그래픽 및/또는 청각적 제안에 대한 긍정적인 응답이며, 여기서 제안은 보류 상태의 종료를 모니터링하기 위해 보류 클라이언트를 시작하라는 제안이다. 이러한 구현들 중 일부에서, 제안은 음성 통신 세션 동안 피호출자에 의해 생성된 오디오에 기초하여, 호출이 보류 상태에 있다는 것을 검출하는 것에 응답하여 클라이언트 디바이스에 의해 렌더링된다.
일부 구현에서, 음성 통신 세션을 시작한 클라이언트 디바이스에 의해 구현되는 방법이 제동되어 음성 통신 세션이 보류 상태인 동안: 오디오 스트림에서 말하는 인간 음성의 발생에 대해 음성 통신 세션의 오디오 스트림을 모니터링하는 단계; 모니터링 중에 인간 음성의 발생을 검출하는 것에 응답하여: 오디오 스트림에 대한 입력으로서 응답 요청 신호를 전송하는 단계; 응답 요청 신호에 대한 응답을 위해 오디오 스트림을 모니터링하는 단계; 응답 요청 신호에 대한 응답이 상기 응답 요청 신호에 응답하는 인간 응답인지 여부를 결정하는 단계; 및 그 응답이 응답 요청 신호에 응답하는 인간 응답이라고 결정되는 경우: 호출 사용자에게 인지될 수 있고 보류 상태의 종료를 나타내는 사용자 인터페이스 출력이 렌더링되도록 하는 단계를 포함한다.
또한, 일부 구현들은 하나 이상의 컴퓨팅 디바이스의 하나 이상의 프로세서를 포함하고, 여기서 상기 하나 이상의 프로세서는 메모리와 관련되어 저장된 명령들을 실행하도록 동작할 수 있고, 여기서 상기 명령들은 전술한 방법들 중 어느 하나의 방법을 수행을 유발하도록 구성된다.
일부 구현들은 또한 전술한 방법 중 어느 하나의 방법을 수행하기 위해 하나 이상의 프로세서에 의해 실행 가능한 컴퓨터 명령들(어)을 저장하는 하나 이상의 비-일시적 컴퓨터 판독 가능 저장 매체를 포함한다.
도 1은 다양한 구현이 구현될 수 있는 예시적인 환경을 도시하는 블록도이다.
도 2는 클라이언트 디바이스와 음성 통신 세션 사이의 예시적인 상호 작용을 도시하는 도면이다.
도 3은 클라이언트 디바이스와 음성 통신 세션 사이의 다른 예시적인 상호 작용을 도시하는 도면이다.
도 4는 클라이언트 디바이스와 음성 통신 세션 사이의 또 다른 예시적인 상호 작용을 도시하는 도면이다.
도 5는 본 명세서에 개시된 구현에 따른 예시적인 프로세스를 도시하는 흐름도이다.
도 6은 컴퓨팅 디바이스의 예시적인 아키텍처를 도시하는 블록도이다.
도 2는 클라이언트 디바이스와 음성 통신 세션 사이의 예시적인 상호 작용을 도시하는 도면이다.
도 3은 클라이언트 디바이스와 음성 통신 세션 사이의 다른 예시적인 상호 작용을 도시하는 도면이다.
도 4는 클라이언트 디바이스와 음성 통신 세션 사이의 또 다른 예시적인 상호 작용을 도시하는 도면이다.
도 5는 본 명세서에 개시된 구현에 따른 예시적인 프로세스를 도시하는 흐름도이다.
도 6은 컴퓨팅 디바이스의 예시적인 아키텍처를 도시하는 블록도이다.
도 1은 다양한 구현이 구현될 수 있는 예시적인 환경(100)을 도시한다. 예시적인 환경(100)은 하나 이상의 클라이언트 디바이스(102)를 포함한다. 간결함과 단순함을 위해, 본 명세서에서 특정 사용자를 "서빙하는 것"으로 사용되는 "보류(on hold) 클라이언트"라는 용어는 종종 클라이언트 디바이스(102)에서 사용자에 의해 작동되는 보류(on hold) 클라이언트(104)와 하나 이상의 클라우드 기반 보류 컴포넌트(미도시)의 조합으로 지칭될 수 있다.
클라이언트 디바이스(102)는 예를 들어 데스크탑 컴퓨팅 디바이스, 랩탑 컴퓨팅 디바이스, 터치 감지 컴퓨팅 디바이스(예를 들어, 사용자의 터치를 통해 입력을 수신할 수 있는 컴퓨팅 디바이스), 이동 전화 컴퓨팅 디바이스, 사용자 차량의 컴퓨팅 디바이스(예를 들어, 차량 내 통신 시스템), 독립형 대화형 스피커, 스마트 TV와 같은 스마트 가전 기기, 프로젝터, 및/또는 컴퓨팅 디바이스를 포함하는 사용자의 웨어러블 장치(예를 들어, 컴퓨팅 디바이스를 갖는 사용자의 시계, 컴퓨팅 디바이스를 갖는 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 디바이스 등) 중 하나 이상을 포함할 수 있다. 추가 및/또는 대안적인 컴퓨팅 디바이스가 제공될 수 있다.
일부 구현에서 보류 클라이언트(104)는 사용자 인터페이스 입력이 보류 클라이언트(104)로 명시적으로 지시되지 않은 경우에도 사용자 인터페이스 입력에 응답하여 대화 세션에 참여할 수 있다. 예를 들어, 보류 클라이언트(104)는 음성 통신 세션의 오디오 스트림의 컨텐츠 및/또는 사용자 인터페이스 입력의 컨텐츠을 검사하여 대화 세션에 참여할 수 있다. 예를 들어, 사용자 인터페이스 입력에서 음성 통신 세션의 오디오 스트림에 존재하는 특정 용어에 응답하여 및/또는 다른 단서에 기초하여, 보류 클라이언트는 대화 세션에 참여할 수 있다. 많은 구현에서, 보류 클라이언트(104)는 음성 인식을 활용하여 사용자의 발화를 텍스트로 변환하고, 예를 들어 검색 결과, 일반 정보를 제공하고 및/또는 하나 이상의 응답 액션(예를 들어, 보류 검출 시작 및 기타)을 취함으로써 텍스트에 응답할 수 있다.
각 클라이언트 디바이스(102)는 보류 클라이언트(104)의 개별 인스턴스를 실행할 수 있다. 다양한 구현에서, 보류 클라이언트(104)의 하나 이상의 양태는 클라이언트 디바이스(102) 외부에서 구현된다. 예를 들어, 보류 클라이언트(104)의 하나 이상의 컴포넌트는 하나 이상의 로컬 및/또는 광역 네트워크(예를 들어, 인터넷)를 통해 클라이언트 디바이스들(102)에 통신적으로 결합되는 하나 이상의 컴퓨팅 시스템(통칭하여 "클라우드"컴퓨팅 시스템으로 지칭함)에서 구현될 수 있다. 클라이언트 컴퓨팅 디바이스(102) 각각은 데이터 및 소프트웨어 애플리케이션의 저장을 위한 하나 이상의 메모리, 데이터에 액세스하고 애플리케이션을 실행하기 위한 하나 이상의 프로세서 및 네트워크를 통한 통신을 용이하게 하는 다른 컴포넌트를 포함할 수 있다. 하나 이상의 컴퓨팅 디바이스(102) 및/또는 보류 클라이언트(104)에 의해 수행되는 동작들은 다수의 컴퓨터 시스템에 걸쳐 분산될 수 있다. 보류 클라이언트(104)는 예를 들어 네트워크를 통해 서로 결합된 하나 이상의 위치에서 실행되는 하나 이상의 컴퓨터에서 실행되는 컴퓨터 프로그램으로서 구현될 수 있다.
많은 구현에서, 보류 클라이언트(104)는 대응하는 음성 캡처/텍스트-음성 변환("TTS")/음성 텍스트 음성 변환("STT") 모듈(106), 자연어 처리기(108), 오디오 스트림 모니터(110), 보류 검출 모듈(112) 및 다른 컴포넌트를 포함할 수 있다.
보류 클라이언트(104)는 전술한 대응하는 음성 캡처/TTS/STT 모듈(106)을 포함할 수 있다. 다른 구현에서, 음성 캡처/TTS/STT 모듈(106)의 하나 이상의 양태는 보류 클라이언트(104)와 별도로 구현될 수 있다. 각각의 음성 캡처/TTS/STT 모듈(106)은 하나 이상의 기능을 수행하도록, 예를 들어, 클라이언트 디바이스(102)에 통합된 마이크로폰(미도시)을 통해 사용자의 음성을 캡처하고; 캡처한 오디오를 텍스트로(및/또는 다른 표현 또는 임베딩으로) 변환하고; 및/또는 텍스트를 음성으로 변환하도록 구성될 수 있다. 예를 들어, 일부 구현에서, 클라이언트 디바이스(102)는 컴퓨팅 자원(예를 들어, 프로세서 사이클, 메모리, 배터리 등) 측면에서 제한될 수 있기 때문에, 각 클라이언트 디바이스(102)에 로컬인 음성 캡처/TTS/STT 모듈(106)은 한정된 수의 서로 다른 음성 문구, 특히 보류 클라이언트(104)를 호출하는 문구를 텍스트(또는 저차원 임베딩과 같은 다른 형태)로 변환하도록 구성될 수 있다. 다른 음성 입력은 클라우드 기반 TTS 모듈 및/또는 클라우드 기반 STT 모듈을 포함할 수 있는 클라우드 기반 보류 클라이언트 컴포넌트(미도시)로 전송될 수 있다.
보류 클라이언트(104)의 자연어 프로세서(108)는 클라이언트 디바이스(102)를 통해 사용자에 의해 생성된 자연어 입력을 처리하고, 보류 클라이언트(104)의 하나 이상의 컴포넌트에 의해 사용하기 위해 주석이 달린 출력을 생성할 수 있다. 예를 들어, 자연어 프로세서(108)는 클라이언트 디바이스(102)의 하나 이상의 사용자 인터페이스 입력 디바이스를 통해 사용자에 의해 생성되는 자연어 자유 형식 입력을 처리할 수 있다. 생성된 주석이 달린 출력은 자연어 입력의 하나 이상의 주석 및 선택적으로 자연어 입력의 용어 중 하나 이상(예를 들어, 모두)을 포함한다.
일부 구현에서, 자연어 프로세서(108)는 자연어 입력에서 다양한 유형의 문법 정보를 식별하고 그에 주석을 달도록 구성된다. 예를 들어, 자연어 처리기(108)는 그들의 문법적 역할과 함께 용어들에 주석을 달도록 구성된 품사 태거를 포함할 수 있다. 또한, 예를 들어, 일부 구현에서 자연어 프로세서(108)는 자연어 입력내의 용어들 간의 문구 관계를 결정하도록 구성된 종속성 파서(미도시)를 추가적으로 및/또는 대안적으로 포함할 수 있다.
일부 구현에서, 자연어 프로세서(108)는 추가적 및/또는 대안적으로 사람(예를 들어, 문학 인물, 유명인, 공인 등을 포함), 조직, 위치(실제 및 가상) 등과 같은 하나 이상의 세그먼트에서 엔티티 참조에 주석을 달도록 구성된 엔티티 태거(미도시)를 포함할 수 있다. 자연어 프로세서(108)의 엔티티 태거는 (예를 들어, 사람과 같은 엔티티 클래스에 대한 모든 참조의 식별을 가능하게 하기 위해) 높은 수준의 입도 및/또는 (예를 들어, 특정 사람과 같은 특정 엔티티에 대한 모든 참조를 가능하게 하기 위해) 더 낮은 수준의 입도로 개체에 대한 참조에 주석을 달 수 있다. 엔티티 태거는 특정 엔티티를 해석하기 위해 자연어 입력의 컨텐츠에 의존할 수 있고 및/또는 특정 엔티티를 해석하기 위해 지식 그래프 또는 다른 엔티티 데이터베이스와 선택적으로 통신할 수 있다.
일부 구현에서, 자연어 프로세서(108)는 추가적으로 및/또는 대안적으로 하나 이상의 컨텍스트 단서에 기초하여 동일한 엔티티에 대한 참조를 그룹화하거나 "클러스터"하도록 구성된 상호 참조 해석기(미도시)를 포함할 수 있다. 예를 들어, 상호 참조 해석기는 자연어 입력 "우리가 지난번 거기서 먹었을 때 가상 카페가 좋았어"에서 "거기"라는 용어를 "가상 카페"로 해석하는데 활용될 수 있다.
많은 구현에서, 자연어 프로세서(108)의 하나 이상의 컴포넌트는 자연어 프로세서(108)의 하나 이상의 다른 컴포넌트의 주석에 의존할 수 있다. 예를 들어, 일부 구현에서, 명명된 엔터티 태거는 특정 엔터티에 대한 모든 언급에 주석을 달 때 상호 참조 해석기 및/또는 종속성 파서의 주석에 의존할 수 있다. 또한, 예를 들어, 일부 구현에서 상호 참조 해석기는 동일한 엔티티에 대한 참조를 클러스터링할 때 종속성 파서의 주석에 의존할 수 있다. 많은 구현에서, 특정 자연어 입력을 처리할 때, 자연어 프로세서(108)의 하나 이상의 컴포넌트는 하나 이상의 주석을 결정하기 위해 특정 자연어 입력 외부의 관련 이전 입력 및/또는 다른 관련 데이터를 사용할 수 있다.
많은 구현에서, 보류 클라이언트(104)는 세션에 위치한 사용자로부터 임의의 필요한 상호 작용없이 보류 상태인 음성 통신 세션과 상호 작용할 수 있다. 일부 추가적 또는 대안적 구현에서, 보류 클라이언트(104)는 보류 프로세스를 시작하고, 보류 프로세스를 종료하고, 사용자에게 음성 통신 세션이 더 이상 보류 상태가 아님을 통지하고 및/또는 더 이상 보류 상태가 아닌 음성 통신 세션을 클라이언트 디바이스 (102)상의 추가 클라이언트로 전달할 수 있다.
많은 구현에서, 오디오 스트림 모니터(110)는 음성 통신 세션의 오디오 스트림의 인입 및/또는 인출 부분을 모니터링하기 위해 클라이언트 디바이스(102) 및/또는 보류 클라이언트(104)에 의해 사용될 수 있다. 예를 들어, 오디오 스트림의 인입 부분에는 호출자가 음성 통신 세션을 수립한 후에 청취하는 오디오 부분(예를 들어, 다른 사람의 음성, 음악 등)이 포함될 수 있다. 유사하게, 음성 통신 세션의 오디오 스트림의 인출 부분에는 호출자가 오디오 스트림 및/또는 보류 클라이언트에 의해 제공된 기타 신호를 통해 다른 호출자에게 말하는 내용(예를 들어, 다른 사람이 회선에 있는지를 묻는 요청 응답 질의)이 포함될 수 있다. 이러한 일부 구현에서, 클라이언트 디바이스(102)는 오디오 스트림 모니터(110)을 사용하여 음성 통신 세션이 보류된 시기를 검출하고, 보류 음성 통신 세션을 보류 클라이언트 (104)로 전달할 수 있다. 추가적으로 또는 대안적으로, 보류 클라이언트(104)는 음성 통신 세션의 오디오 스트림을 모니터링할 수 있고, 보류 클라이언트(104) 자체는 음성 통신 세션이 보류된 시기를 결정할 수 있다. 음성 통신 세션이 보류 상태임을 나타내는 오디오 스트림 모니터(110)에 의해 검출된 오디오 스트림의 신호에는 공지된 보류 음악 검출, 임의의 음악 검출(사용자들이 음성 통신 세션을 통해 서로 노래를 재생할 가능성이 낮기 때문에), 사람 음성에서 음악으로의 전환, 음악에서 사람 음성으로의 전환이 포함될 수 있다.
보류 검출 모듈(112)은 오디오 스트림 모니터(110)에 의해 이루어진 음성 통신 세션의 오디오 스트림에 관한 결정을 사용하여 음성 통신 세션이 보류 상태인 시기, 음성 통신 세션이 더 이상 보류 상태가 아닌 시기, 예상 잔여 보류 시간등을 결정할 수 있다. 보류 검출 모듈(112)은 세션이 더 이상 보류 상태가 아닐 때 클라이언트 디바이스(102)의 사용자에게 표시를 제공할 수 있을 뿐만 아니라 음성 통신 세션과 상호 작용하기 위해 클라이언트 디바이스(102)상의 추가 클라이언트로 음성 통신 세션을 전달할 수 있다(사용자의 추가 상호 작용을 요구할 수도 있고 요구하지 않을 수도 있음).
추가적으로 또는 대안적으로, 사용자는 음성 통신 세션이 보류 상태이고 사용자가 보류 클라이언트(104)를 사용하여 보류 프로세스를 시작하기를 원한다는 것을 사용자 인터페이스를 통해 클라이언트 디바이스(102)에 표시할 수 있다. 보류 검출 모듈(112)은 세션이 보류 상태이고 사용자가 보류 프로세스를 시작하기 위해 긍정적인 방식으로 응답하도록 추천함으로써 및/또는 사용자가 보류 검출 모듈(112)을 사용하여 보류 프로세스를 시작하기 위해 클라이언트 디바이스(102)의 사용자 인터페이스를 통해 세션이 보류 상태임을 직접 표시함으로써 클라이언트 디바이스(102)의 사용자 인터페이스를 통해 세션이 보류되었다는 긍정적인 표시를 사용자로부터 수신할 때 세션을 보류할 수 있다. 다른 구현에서, 보류 검출 모듈(112)은 보류 상태에서 세션을 검출할 때 보류 프로세스를 자동으로 시작할 수 있다.
많은 구현에서, 보류 검출 모듈(112)은 세션이 더 이상 보류 상태가 아닌 시기를 추가적으로 또는 대안적으로 결정할 수 있다. 많은 구현에서, 사용자는 보류 프로세스가 종료될 때 통지될 방법을 나타낼 수 있다. 예를 들어, 사용자는 보류 번호에서 온 것을 나타내는 모바일 컴퓨팅 시스템에서 음성 통신 세션을 수신하기를 원할 수 있다. 추가적으로 또는 대안적으로, 사용자는 스마트 조명과 같은 클라이언트 디바이스(102)의 동일한 에코 시스템내에서 연결된 스마트 디바이스를 요청할 수 있으며, 보류의 종료가 검출될 때 특정 방식으로 응답할 수 있다. 예를 들어, 클라이언트 디바이스(102)와 동일한 네트워크상의 스마트 조명은 음성 통신 세션의 보류 종료를 나타내기 위해 플래시 온오프, 강도 감소(dim), 강도 증가, 색상 변경 등을 지시받을 수 있다. 추가적으로 또는 대안적으로, 스마트 텔레비전을 시청하는 사용자는 보류 종료가 검출될 때 텔레비전상에 나타나는 통지를 요청할 수 있다.
도 2, 3 및 4는 각각 보류 클라이언트(예를 들어, 도 1에 도시된 보류 클라이언트(104))와 음성 통신 세션 사이의 상호 작용을 도시한다. 도 2는 여전히 보류 상태인 음성 통신 세션(206)과 상호 작용하는 보류 클라이언트(202)를 포함하는 이미지(200)를 도시한다. 음성 통신 세션 보류의 잠재적인("후보"라고도 함) 종료의 검출에 응답하여, 보류 클라이언트(202)는 음성 통신 세션(206)의 오디오 스트림을 통해 응답 요청 신호를 전송하여 추가 실제 사용자가 세션에서 활성화되었는지 결정한다. 많은 구현에서, 보류 클라이언트는 응답 요청 신호로서 전송할 텍스트 문구(예를 들어, "거기 계십니까")를 결정할 수 있다. 이러한 일부 구현에서, 텍스트 음성 변환 모듈(도 1에 도시된 음성 캡처/TTS/STT 모듈(106)과 유사함)은 텍스트 문구를 음성으로 변환하여 오디오 스트림에 대한 입력으로 제공할 수 있다.
다양한 구현에서, 음성 통신 세션의 잠재적인 종료는 보류 클라이언트(202)는 음악의 변경, 음악에서 사람 음성으로의 변경(잠재적으로 녹음 음성 및 실제 음성), 이산 푸리에 변환과 같은 다양한 신호 처리 기술에 의해 검출된 신호, 신경망 모델의 출력 등을 포함하여 음성 통신 세션의 오디오 스트림에서 다양한 신호 중 임의의 것을 검출하는 보류 클라이언트(202)에 의해 검출될 수 있다. 인간 음성은 신호로서 분석될 수 있고, 추가적으로 또는 대안적으로 음성-텍스트 변환 모듈(도 1에 도시된 음성 캡처/TTS/STT 모듈(106)과 유사함)은 인간 음성을 텍스트로 변환할 수 있다. 오디오 스트림의 텍스트 음성 언어는 오디오 스트림에서 검출된 인간 음성에 의해 발화된 것의 의미를 결정하기 위해 자연어 프로세서(예를 들어, 도 1에 도시된 자연어 프로세서(108))에 의해 추가로 분석될 수 있다. 자연어 처리기의 출력은 음성 통신 세션에서 잠재적인 보류 종료를 결정하는데 추가로 사용될 수 있다. 추가적으로 또는 대안적으로, 자연어 처리기의 출력은 실제 인간 사용자가 세션에 들어 갔음을 결정하는데 사용될 수 있다. 예를 들어, 자연어 처리기의 출력은 하나 이상의 신경망 모델에 입력을 제공할 수 있다.
일부 구현에서, 신경망 모델은 음성 통신 세션 내에서 무시할 하나 이상의 "음성"을 식별하는 방법을 배울 수 있다. 음성에는 하나 이상의 개별 화자, 배경 음악, 배경 소음 등이 포함될 수 있다. 예를 들어, 하나 이상의 신경망 모델은 순환 신경망(RNN)을 포함할 수 있다. RNN은 장단기 메모리(LSTM) 계층과 같은 적어도 하나의 메모리 계층을 포함할 수 있다. 메모리 계층은 입력이 순차적으로 적용될 수 있는 하나 이상의 메모리 유닛을 포함하고, 적용된 입력의 각각의 반복에서, 메모리 유닛(들)은 해당 반복의 입력에 기초하고 현재의 은닉 상태(이전 반복(들)의 입력(들)에 기초할 수 있음)에 기초하여 새로운 은닉 상태를 계산하는데 사용될 수 있다. 일부 구현에서, 모델은 임의의 다양한 길이의 오디오 세그먼트에 대한 화자 분리 결과를 생성하는데 사용될 수 있다. 일 예로서, 음성 통신 세션의 오디오 스트림은 하나 이상의 데이터 프레임으로 분할될 수 있다. 각 데이터 프레임은 25 밀리 초 또는 기타 지속 시간 부분과 같은 오디오 신호의 일부일 수 있다. 프레임 특징(또는 프레임 자체)은 트레이닝된 화자 분리 모델에 대한 입력으로 순차적으로 적용되어, N개의 불변 화자 레이블 각각의 대응 확률을 각각 포함하는 출력 시퀀스를 생성할 수 있다. 예를 들어, 오디오 프레임 1의 프레임 특징은 처음에 입력으로 적용되어 N개의 확률을 생성할 수 있고(여기서 N개의 확률 각각은 N개의 화자 레이블 중 하나에 해당함), 오디오 데이터 프레임 2의 프레임 특징은 입력으로 다음에 적용되어 N개의 확률을 생성할 수 있다(여기서 N개의 확률 각각은 N개의 화자 레이블 중 대응하는 것에 대한 것임). 오디오 데이터 프레임 2에 대해 생성된 N개의 확률은 오디오 데이터 프레임 2에 고유하지만, 모델이 RNN 모델일 수 있으므로 오디오 데이터 프레임 1의 처리에 따라 달라진다는 점에 유의해야 한다.
추가적으로 또는 대안적으로, N개의 확률은 세션이 보류되었는지, 세션이 여전히 보류 상태인지 및/또는 잠재적인 보류 종료 신호가 검출되었는지 여부를 나타낼 수 있다. 많은 구현에서, 예상 잔여 보류 시간이 음성 통신 세션에 대해 (보류 클라이언트가 음성 통신 세션의 오디오 스트림에 표시된 대로 특정 호출 번호 및/또는 예상 잔여 보류 시간에 대한 전형적인 보류 길이를 갖는 지식을 통해) 결정될 수 있다. 예상 잔여 보류 시간은 많은 구현에 따라 기계 학습 모델에 대한 추가 입력이될 수 있으며, 여기서 기계 학습 모델은 잔여 예상 보류 시간보다 더 짧은 보류를 출력할 가능성이 더 높다.
다른 구현에서, 보류 클라이언트는 잠재적인 잔여 보류 시간에 대한 지식을 사용하여 (하나 이상의 기계 학습 모델 사용 여부에 관계없이) 응답 요청 신호를 보내는데 사용하는 임계값을 증가 및/또는 감소시킬 수 있다. 예를 들어, 음성 통신 세션이 20분 동안 보류 상태를 유지할 것으로 예상되는 경우, 보류 클라이언트는 응답 요청 신호를 보내기 위해 임계값을 높일 수 있다. 마찬가지로, 몇 분(예를 들어, 3 분)만 걸릴 것으로 예상되는 음성 통신 세션은 응답 요청 신호를 보내기 위해 임계값을 낮출 수 있다.
음성 통신 세션 보류의 잠재적인 종료의 검출은 보류 클라이언트(202)가 음성 통신 세션의 오디오 스트림을 통해 응답 요청 신호를 전송하여, 추가 사용자가 음성 통신 세션에 참여했고 보류가 종료되었는지 결정하도록 할 수 있다. 예를 들어, 보류 클라이언트(202)는 "거기 계십니까"와 같은 응답 요청 신호(204)를 전송할 수 있다. 추가로 또는 대안으로, 응답 요청 신호는 "거기 누구 계십니까", "안녕하세요, 거기 계십니까", "아직 보류 중입니까"등과 같은 응답을 프롬프트하는 다양한 질문 중 하나일 수 있다.
많은 구현에서, 응답 요청 신호는 음성 통신 세션 보류를 종료한 추가 실제 인간 사용자에게 예측 가능한 응답을 프롬프트할 수 있다. 예를 들어, 응답 요청 신호 "거기 계십니까"(204)에 대한 응답은 "예" 및/또는 긍정 응답을 나타내는 유사한 단어 또는 문구(예를 들어, "예(Yeah)", "옙(Yup)"뿐만 아니라 긍정 응답을 포함할 수 있는 문구)을 포함할 수 있다. 음성 통신 세션의 오디오 스트림에 대한 입력으로 응답 요청 신호를 보내는 것은 계산 비용이 거의 들지 않는다. 추가적으로 또는 대안적으로, 동일한 질문을 반복해서 요청함으로써 (음성 통신 세션이 보류 상태인 동안 재생될 수 있는) 녹음을 뒤집을 가능성은 거의 없으므로 응답 요청 질의를 보내는 임계값이 낮아질 수 있다. 즉, 많은 구현에 따라 보류 클라이언트는 응답 요청 신호를 너무 자주 전송하는 부정적인 엘리먼트가 거의(있는 경우) 없기 때문에 자주 응답 요청 신호를 보낼 것이다. 더욱이, 보류 클라이언트가 응답 요청 신호를 보내야할 때 전송하지 못하면, 음성 통신 세션이 잠재적으로 종료될 수 있으며 사용자가 전화 번호로 보류 프로세스를 다시 시작하도록 요구할 수 있다.
많은 구현에서, 응답 요청 신호(204)는 보류가 종료되지 않을 때 음성 통신 세션의 오디오 스트림을 통해 전송될 수 있다. 응답 요청 신호가 전송되고 음성 통신 세션 보류가 종료되지 않은 경우, 음성 통신 세션(206)의 오디오 스트림에서 보류 클라이언트(202)에 의해 응답(208)이 검출되지 않을 것이다.
많은 구현에서, 녹음 음성은 음성 통신 세션이 보류 상태인 동안 다시 발생할 수 있다. 이러한 일부 구현에서, 녹음 음성은 응답 요청 신호에 응답하지 않을 것이며, 보류 클라이언트는 향후 해당 음성에 응답 요청 신호를 보내지 않는 방법을 학습할 수 있다. 예를 들어, 보류 상태중에, 전화 번호는 호출된 번호에 관한 정보(예를 들어, 웹 사이트, 업무 시간 등)를 포함하는 녹음을 재생할 수 있다. 번호에 관한 정보를 포함하는 이 녹음은 음성 통신 세션이 보류 상태인 동안 여러 번 반복될 수 있다. 일단 보류 클라이언트가 이 음성이 응답 요청 신호에 응답하지 않는다고 결정하면, 보류 클라이언트는 해당 특정 음성에 추가 응답 요청 신호를 보내지 않는 방법을 학습할 수 있다. 많은 구현에서, 보류 클라이언트는 음성의 피치, 음성 자체의 식별 및/또는 음성이 말하는 특정 단어의 시퀀스를 포함하여 특정 음성(예를 들어, 음성 지문)에 의해 생성된 다양한 신호중 하나 이상을 사용하여 음성을 무시하는 방법을 학습할 수 있다.
도 3은 음성 통신 세션(306)과 상호 작용하는 보류 클라이언트(302)를 포함하는 이미지(300)를 도시한다. 많은 구현에서 보류 클라이언트(302)는 음성 통신 세션의 오디오 스트림에 대한 입력으로 "거기 누구 계십니까?"와 같은 응답 요청 신호를 보낼 수 있다. 보류 클라이언트에 의해 제공된 텍스트 응답 요청 신호는 (예를 들어, 도 1에 예시된 음성 캡처/TTS/STT 모듈(106)과 같은) STT 모듈을 사용하여 음성으로 변환될 수 있다. 예를 들어, 보류 클라이언트는 응답 요청 신호로서 "거기 누구 계십니까"라는 텍스트 문구를 제공할 수 있다. STT 모듈은 이 문구를 음성 통신 세션의 오디오 신호에 대한 입력으로서 전송될 수 있는 음성 언어로 변환할 수 있다. 응답 요청 신호(304)를 보낼 시기를 결정하는 것은 도 2와 관련하여 위에서 설명되었다. 이미지(300)는 응답 요청 신호에 대한 "예, 제가 여기 있습니다"와 같은 응답(308)를 수신하는 보류 클라이언트를 추가로 도시하고, 음성 통신 세션이 더 이상 보류 상태가 아니라고 결정할 수 있다. 음성 통신 세션이 더 이상 보류 상태가 아닌 것으로 판단할 때 보류 클라이언트는 검출된 입력을 오디오 스트림으로 변환하고, STT 모듈(도 1에 예시된 음성 캡처/TTS/STT 모듈 106)을 사용하여 입력을 텍스트로 변환할 수 있다. 더욱이, 자연어 프로세서(예를 들어, 자연어 프로세서(108))는 응답 요청 신호에 대한 텍스트 응답을 분석하여 텍스트 응답의 의미를 제공할 수 있다.
도 2와 관련하여 위에서 설명한 바와 같이, 많은 구현에서 "거기 누구 계십니까?"라는 질문(304)은 일반적으로 "예, 제가 여기 있습니다"와 같은 제2 사용자의 긍정적인 응답을 이끌어 낼 것이다. 다른 구현에서, 응답 요청 신호는 일반적으로 부정적인 응답을 유도하기 위해 문구로 표현될 수 있다. 예를 들어, "아직 보류 중입니까?"라는 질문은 "아니요, 보류 중이 아닙니다"와 제2 사용자의 부정적인 응답을 이끌어낼 수 있다. 일부 구현에서, 보류 클라이언트는 세션이 더 이상 보류 상태가 아니라는 결정을 내릴 때 부분적으로 사용되는 특정 응답 요청 신호에 대한 전형적인 응답을 활용할 수 있다. 많은 구현에서, 일단 보류 클라이언트(302)가 세션이 더 이상 보류 중이 아니라고 결정하면 음성 통신 세션을 배치한 사용자에게 통지될 수 있다.
일부 구현에서, 사용자는 세션이 더 이상 보류 상태가 아니라고 통지될 수 있다. 예를 들어, 일단 음성 통신 세션 보류가 완료되면 이동 전화가 벨소리 및/또는 진동을 통해 새로운 인입 세션을 시뮬레이션할 수 있다. 추가적으로 또는 대안적으로, 사용자 근처에 있는 네트워크 디바이스는 음성 통신 세션 보류가 종료된 통지으로서 사용될 수 있다. 예를 들어, 음성 통신 세션을 배치하는 사용자는 스마트 조명 근처에 있을 수 있다. 스마트 조명은 사용자에게 통지하기 위해 플래시, 강도 감소, 강도 증가, 색상 변경 등을 할 수 있다. 추가적으로 또는 대안적으로, 모바일 폰, 컴퓨팅 디바이스, 텔레비전 등을 포함하여 사용자가 상호 작용하는 화면으로 메시지가 푸시될 수 있다. 예를 들어, 음성 통신 세션을 시작하는데 사용되는 클라이언트 디바이스와 동일한 디바이스 토폴로지에서 스마트 TV를 시청하는 사용자는 세션 보류가 종료될 때 텔레비전에서 통지를 수신할 수 있다. 다양한 구현에서 사용자는 보류 기본 설정으로 통지되는 방법을 선택할 수 있다. 추가적으로 또는 대안적으로 사용자는 보류 프로세스가 시작될 때 통지되는 방법을 선택할 수 있다.
도 4는 보류 클라이언트(402)와 음성 통신 세션(406)을 포함하는 이미지 (400)를 도시한다. 많은 구현에서, 보류 클라이언트는 음성 통신 세션 보류가 종료되었다는 매우 강력한 표시를 수신할 수 있다. 이러한 일부 구현에서, 보류 클라이언트는 응답 요청 신호를 보내지 않고 대신 세션이 더 이상 보류 상태가 아님을 사용자에게 통지하는 단계로 진행할 수 있다. 오디오 스트림에서 검출된 인간 음성은 자연어 프로세서(예를 들어, 도 1에 도시된 자연어 프로세서(108)에 제공될 수 있는 STT 모듈(도 1에 도시된 음성 캡처/TTS/STT 모듈(106))을 사용하여 텍스트 출력으로 변활될 수 있다. 예를 들어, "안녕하세요, 미즈 제인 도우. 제 이름은 존 스미스이고 저는 '가상 유틸리티 회사'를 대표합니다. 오늘 제가 어떻게 도와 드릴까요?"라는 메시지(304)는 음성 통신 세션이 더 이상 보류 상태가 아니라는 강력한 표시를 포함할 수 있다. 예를 들어, 사용자 이름(예를 들어, 제인 도우 및/또는 미즈. 도우) 검출, 추가 사용자 이름을 나타내는 문구(예를 들어, "제 이름은 존 스미스입니다")의 검출뿐만 아미라 다른 문구(예를 들어, "오늘 어떻게 도와 드릴까요?")는 모두 개별적으로 및/또는 조합하여 보류 클라이언트가 응답 요청 신호를 보내지 않고도 음성 통신 세션 보류가 종료되었음을 결정하게 할 수 있다. 많은 구현에서, 보류 클라이언트가 음성 통신 세션이 더 이상 보류 상태가 아니라고 결정할 때 이전에 설명한 바와같이 사용자에게 통지될 수 있다.
도 5는 본 명세서에 개시된 많은 구현에 따른 예시적인 프로세스(500)를 도시하는 흐름도이다. 편의상, 도 5의 흐름도의 동작들은 그 동작들을 수행하는 시스템을 참조하여 설명된다. 이 시스템은 클라이언트 디바이스(102)의 하나 이상의 컴포넌트와 같은 다양한 시스템의 다양한 컴포넌트를 포함할 수 있다. 더욱이, 프로세스(500)의 동작들이 특정 순서로 도시되지만, 이것은 제한하는 것을 의미하지 않는다. 하나 이상의 동작들은 재정렬되거나 생략되거나 추가될 수 있다.
블록(502)에서, 클라이언트 디바이스는 음성 통신 세션이 보류 중임을 선택적으로 결정할 수 있다. 도 1에 도시된 바와같이 보류 검출 모듈(112)과 관련하여 위에서 설명한 바와같이, 클라이언트 디바이스는 공지된 보류 음악 검출, 임의의 음악 검출, 사람의 음성에서 음악으로의 변경 검출, 세션이 보류된 사용자의 직접 입력, 호출 번호가 일반적으로 사용자를 보류하는 공지된 번호인지 결정하는 것뿐만 아니라 이산 푸리에 변환을 포함하는 임의의 다양한 신호 처리 기술 및 클라이언트 디바이스의 보류 클라이언트와 관련된 하나 이상의 기계 학습 모델에 의한 결정을 포함하여 다양한 방식으로 음성 통신 세션이 보류 상태인지 확인할 수 있다.
블록(504)에서, 클라이언트 디바이스는 도 1과 관련하여 위에서 설명된 보류 클라이언트(104)와 유사한 보류 클라이언트를 시작한다.
블록(506)에서, 보류 클라이언트는 보류 음성 통신 세션의 오디오 스트림의 인입 및/또는 인출 부분을 모니터링할 수 있다. 많은 구현에서, 보류 클라이언트는도 1과 관련하여 위에서 설명된 오디오 스트림 모니터(110)와 유사한 방식으로 오디오 스트림을 모니터링할 수 있다.
블록(508)에서, 보류 클라이언트는 음성 통신 세션의 오디오 스트림을 통해 응답 요청 신호를 보내는 시기를 결정할 수 있다. 보류 클라이언트가 응답 요청 신호를 전송하기 위해 결정할 수 있는 다양한 방법이 도 2와 관련하여 위에서 설명되었다. 많은 구현에서, 보류 클라이언트는 하나 이상의 응답 요청 신호를 보낼 수 있으며, 음성 통신 세션이 더 이상 보류 상태가 아니고 및/또는 보류 클라이언트가 보류 프로세스를 종료하라는 표시를 사용자로부터 수신할 때까지(사용자가 보류 대기에 지쳐서 보류 프로세스를 종료하고 나중에 다시 전화를 걸고 싶어함) 응답 요청 신호를 계속 보낼 수 있다. 다른 구현에서, 보류 클라이언트는 응답 요청 신호를 보낼 수 없다. 예를 들어, (도 4를 참조하여 전술한 바와 같이) 세션이 더 이상 보류 상태가 아님을 나타내는 강한 표시자가 검출될 수 있으며 보류 클라이언트는 응답 요청 신호를 전송하지 않고도 음성 통신 세션이 더 이상 보류 상태가 아님을 결정할 수 있다.
블록(510)에서, 보류 클라이언트는 음성 통신 세션이 더 이상 보류 상태가 아님을 결정할 수 있다. 다양한 구현에서, 이 결정은 응답 요청 신호에 대한 수신된 응답에 기초하여 이루어질 수 있다. 다른 구현에서, 이 결정은 응답 요청 신호를 전송하지 않고 음성 통신 세션이 더 이상 보류 상태가 아님을 표시하기에 충분히 강한 오디오 스트림을 통해 모니터링된 정보의 강도를 사용하여 이루어질 수 있다. 추가적으로 또는 대안적으로, 보류 클라이언트는 하나 이상의 응답 요청 신호(응답하지 않음)를 전송한 다음 음성 통신 세션이 더 이상 보류 상태가 아니어서 추가 응답 요청 신호가 전송되지 않는다는 강한 표시를 수신할 수 있다.
블록(512)에서, 보류 클라이언트는 음성 통신 세션이 더 이상 보류 상태가 아님을 사용자에게 통지한다. 보류 클라이언트가 음성 통신 세션 보류의 종료를 사용자에게 통지할 수 있는 다양한 방법이 도 1과 관련하여 위에서 설명되었다. 추가적으로 또는 대안적으로, 보류 클라이언트는 사용자 대신 음성 통신 세션을 처리하기 위해 클라이언트 디바이스와 관련된 다른 클라이언트에 음성 통신 세션을 전달할 수 있다. 예를 들어, 일단 보류 클라이언트가 음성 통신 세션이 더 이상 보류 상태가 아니라고 결정하면, 보류 클라이언트는 사용자를 대신하여 음성 통신 세션에서 추가 사용자와 상호 작용할 수 있는 제2 클라이언트로 음성 통신 세션을 전달할 수 있다.
도 6은 예시적인 컴퓨터 시스템(610)의 블록도이다. 컴퓨터 시스템(610)은 일반적으로 버스 서브 시스템(612)을 통해 다수의 주변 디바이스와 통신하는 적어도 하나의 프로세서(614)를 포함한다. 이러한 주변 디바이스는 예를 들어 메모리(625) 및 파일 저장 서브 시스템(626), 사용자 인터페이스 출력 디바이스(620), 사용자 인터페이스 입력 디바이스(622) 및 네트워크 인터페이스 서브 시스템(616)을 포함하는 저장 서브 시스템(624)을 포함할 수 있다. 입력 및 출력 디바이스는 컴퓨터 시스템(610)과의 사용자 상호 작용을 허용한다. 네트워크 인터페이스 서브 시스템(616)은 외부 네트워크에 대한 인터페이스를 제공하고 다른 컴퓨터 시스템의 대응하는 인터페이스 디바이스에 연결된다.
사용자 인터페이스 입력 디바이스(622)는 키보드, 마우스, 트랙볼, 터치 패드 또는 그래픽 태블릿과 같은 포인팅 디바이스, 스캐너, 디스플레이에 통합된 터치 스크린, 음성 인식 시스템과 같은 오디오 입력 디바이스, 마이크크로폰 및/또는 기타 유형의 입력 디바이스를 포함할 수 있다. 일반적으로, "입력 디바이스"라는 용어의 사용은 컴퓨터 시스템(610) 또는 통신 네트워크에 정보를 입력하는 모든 가능한 유형의 디바이스 및 방법을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스(620)는 디스플레이 서브 시스템, 프린터, 팩스 기계, 또는 오디오 출력 디바이스와 같은 비-시각적 디스플레이를 포함할 수 있다. 디스플레이 서브 시스템은 음극선 관(CRT), 액정 디스플레이(LCD)와 같은 평판 디바이스, 프로젝션 디바이스, 또는 가시적 이미지를 생성하기 위한 다른 메커니즘을 포함할 수 있다. 디스플레이 서브 시스템은 또한 오디오 출력 디바이스를 통해 비-시각적 디스플레이를 제공할 수 있다. 일반적으로, "출력 디바이스"라는 용어의 사용은 컴퓨터 시스템(610)으로부터 사용자 또는 다른 기계 또는 컴퓨터 시스템으로 정보를 출력하는 모든 가능한 유형의 디바이스 및 방법을 포함하도록 의도된다.
저장 서브 시스템(624)은 본 명세서에 설명된 모듈의 일부 또는 전부의 기능을 제공하는 프로그래밍 및 데이터 구성을 저장한다. 예를 들어, 저장 서브 시스템(624)은 도 1에 도시된 클라이언트 디바이스, 도 5에 도시된 프로세스(500), 본 명세서에서 논의된 임의의 동작(들) 및/또는 본 명세서에서 논의된 임의의 다른 디바이스 또는 애플리케이션의 선택된 양태를 수행하기 위한 로직을 포함할 수 있다.
이러한 소프트웨어 모듈은 일반적으로 프로세서(614)에 의해 단독으로 또는 다른 프로세서와 조합하여 실행된다. 저장 서브 시스템(624)에서 사용되는 메모리 (625)는 프로그램 실행 동안 명령어 및 데이터를 저장하기 위한 메인 랜덤 액세스 메모리(RAM)(630) 및 고정 명령어가 저장되는 판독 전용 메모리(ROM)(632)를 포함하는 다수의 메모리를 포함할 수 있다. 파일 저장 서브 시스템(626)은 프로그램 및 데이터 파일에 대한 영구 저장을 제공할 수 있으며, 하드 디스크 드라이브, 플로피 디스크 드라이브와 관련된 이동식 미디어, CD-ROM 드라이브, 광학 드라이브 또는 이동식 미디어 카트리지를 포함할 수 있다. 특정 구현의 기능을 구현하는 모듈은 저장 서브 시스템(624)의 파일 저장 서브 시스템(626)에 의해 또는 프로세서(들)(614)에 의해 액세스 가능한 다른 기계에 저장될 수 있다.
버스 서브 시스템(612)은 컴퓨터 시스템(610)의 다양한 컴포넌트 및 서브 시스템이 의도한 대로 서로 통신할 수 있도록 하는 메커니즘을 제공한다. 버스 서브 시스템(612)이 단일 버스로서 개략적으로 도시되어 있지만, 버스 서브 시스템의 대안적인 구현은 다중 버스를 사용할 수 있다.
컴퓨터 시스템(610)은 워크 스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜, 또는 임의의 다른 데이터 처리 시스템 또는 컴퓨팅 디바이스를 포함하는 다양한 유형일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 6에 도시된 컴퓨터 시스템(610)의 설명은 일부 구현을 설명하기 위한 특정 예로서만 의도된다. 컴퓨터 시스템(610)의 많은 다른 구성은 도 6에 도시된 컴퓨터 시스템보다 더 많거나 적은 컴포넌트를 가질 수 있다.
본 명세서에 설명된 시스템이 사용자(또는 본 명세서에서 종종 "참가자"라고 함)에 관한 개인 정보를 수집하거나 개인 정보를 사용할 수 있는 상황에서, 사용자는 프로그램 또는 기능이 사용자 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 액션 또는 활동, 직업, 사용자의 선호도 또는 사용자의 현재 지리적 위치에 관한 정보)를 수집하는지 여부를 제어하거나 사용자와 더 관련이 있을 수 있는 컨텐츠를 컨텐츠 서버로부터 수신하는지 여부 및/또는 방법을 제어할 기회를 제공받을 수 있다. 또한 특정 데이터는 개인 식별 정보가 제거될 수 있도록 저장 또는 사용되기 전에 하나 이상의 방법으로 처리될 수 있다. 예를 들어, 사용자의 신원은 개인 식별 정보가 사용자에 대해 결정될 수 없도록 처리될 수 있거나 사용자의 지리적 위치는 사용자의 특정 지리적 위치가 결정될 수 없도록 지리적 위치 정보가 획득된 곳(예를 들어, 도시, 우편 번호 또는 주 수준)으로 일반화될 수 있다. 따라서, 사용자는 사용자에 관한 정보 수집 및/또는 사용 방법을 제어할 수 있다.
여러 구현이 본 명세서에 설명되고 예시되었지만, 기능을 수행하고 및/또는 본 명세서에 설명된 결과 및/또는 하나 이상의 이점을 얻기 위한 다양한 다른 수단 및/또는 구조가 활용될 수 있으며, 이러한 변경 및/또는 수정은 본 명세서에 설명된 구현의 범위 내에 있는 것으로 간주된다. 보다 일반적으로, 본 명세서에 설명된 모든 파라미터, 치수, 재료 및 구성은 예시적인 것이며 실제 파라미터, 치수, 재료 및/또는 구성은 그 교시가 사용되는 특정 애플리케이션 또는 애플리케이션들에 따라 다르다는 것을 의미한다. 당업자는 단지 일상적인 실험을 사용하여 본 명세서에 설명된 특정 구현들에 대한 많은 등가물을 인식하거나 확인할 수 있을 것이다. 따라서, 전술한 구현들은 단지 예로서 제시된 것이며, 첨부된 청구 범위 및 등가물의 범위 내에서 구현이 구체적으로 설명되고 청구된 것과 다르게 실행될 수 있음을 이해해야 한다. 본 개시 내용의 구현들은 본 명세서에 기재된 각각의 개별적인 특징, 시스템, 물품, 재료, 키트 및/또는 방법에 관한 것이다. 추가로, 이러한 특징, 시스템, 물품, 재료, 키트 및/또는 방법이 서로 일치하지 않는 경우 둘 이상의 이러한 특징, 시스템, 물품, 재료, 키트 및/또는 방법의 임의의 조합은 본 개시 내용의 범위 내에 포함된다.
Claims (17)
- 하나 이상의 프로세서에 의해 구현되는 방법으로서, 상기 방법은,
호출 사용자의 클라이언트 디바이스에 의해 개시된 음성 통신 세션과 관련된 전화 번호를 식별하는 단계;
식별된 전화 번호가 호출 사용자를 보류(on hold)시키는 것으로 알려진 엔티티와 관련되는지 여부를 결정하는 단계;
식별된 전화 번호가 호출 사용자를 보류시키는 것으로 알려진 엔티티와 관련된다는 결정에 응답하여:
음성 통신 세션의 오디오 스트림에서 음성을 식별하는 단계;
식별된 전화 번호를 이용한 하나 이상의 이전 음성 통신 세션에 기초하여, 오디오 스트림의 음성이 알려진 보류 음성인지 여부를 결정하는 단계; 및
오디오 스트림의 음성이 알려진 보류 음성이라는 결정에 응답하여, 음성 통신 세션이 보류 상태(on hold status)에 있다고 결정하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 제1항에 있어서,
상기 식별된 전화 번호가 호출 사용자를 보류시키는 것으로 알려진 엔티티와 관련되는지 여부를 결정하는 단계는,
식별된 전화 번호를 호출 사용자를 보류시키는 것으로 알려진 전화 번호의 글로벌 목록과 비교하는 단계; 및
식별된 전화 번호가 호출 사용자를 보류시키는 것으로 알려진 전화 번호의 글로벌 목록에 포함된다고 결정하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 제1항에 있어서,
상기 식별된 전화번호가 호출 사용자를 보류시키는 것으로 알려진 엔티티와 관련되는지 여부를 결정하는 단계는,
식별된 전화번호를 이전에 호출 사용자를 보류시킨 것으로 알려진 전화 번호의 개인화된 목록과 비교하는 단계; 및
식별된 전화 번호가 이전에 호출 사용자를 보류시킨 것으로 알려진 전화 번호의 개인화된 목록에 포함된다고 결정하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 제1항에 있어서,
음성 통신 세션이 보류 상태에 있다는 결정에 응답하여, 클라이언트 디바이스의 보류 클라이언트를 개시하는 단계를 더 포함하고, 상기 보류 클라이언트를 개시하는 단계는 음성 통신 세션 동안이고 상기 음성 통신 세션이 보류 상태에 있다는 결정에 기초하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 제4항에 있어서,
보류 클라이언트를 사용하여, 보류 상태의 후보 종료(end)에 대한 음성 통신 세션의 오디오 스트림을 모니터링하는 단계, 상기 음성 통신 세션의 오디오 스트림을 모니터링하는 단계는 호출 사용자로부터의 직접적인 상호 작용 없이 발생하고; 및
보류 상태의 후보 종료를 검출하는 것에 응답하여, 클라이언트 디바이스로부터, 음성 통신 세션의 오디오 스트림에 대한 입력으로서 응답 요청 신호를 전송하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 제5항에 있어서,
응답 요청 신호에 대한 응답을 위해 음성 통신 세션의 오디오 스트림을 모니터링하는 단계;
응답 요청 신호에 대한 응답이 보류 상태의 후보 종료가 보류 상태의 실제 종료임을 나타낸다고 결정하는 단계, 상기 보류 상태의 실제 종료는 인간 사용자가 음성 통신 세션에서 호출 사용자와 상호 작용할 수 있음을 나타내고; 및
보류 상태의 실제 종료를 결정하는 것에 응답하여 사용자 인터페이스 출력이 렌더링되게 하는 단계를 더 포함하고, 상기 사용자 인터페이스 출력은 호출 사용자에 의해 인지 가능하고 상기 보류 상태의 실제 종료를 나타내는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 제4항에 있어서,
보류 클라이언트를 사용하여, 보류 상태의 실제 종료에 대한 음성 통신 세션의 오디오 스트림을 모니터링하는 단계, 상기 음성 통신 세션의 오디오 스트림을 모니터링하는 단계는 호출 사용자로부터의 직접적인 상호작용 없이 발생하고; 및
보류 상태의 실제 종료를 검출하는 것에 응답하여, 사용자 인터페이스 출력이 렌더링되게 하는 단계를 더 포함하고, 상기 사용자 인터페이스 출력은 호출 사용자에 의해 인지 가능하고 상기 보류 상태의 실제 종료를 나타내는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 음성 통신 세션을 개시하는 클라이언트 디바이스에 의해 구현되는 방법으로서, 상기 방법은,
음성 통신 세션이 보류 상태에 있는 동안:
오디오 스트림에 말하는 인간 음성의 발생에 대해 음성 통신 세션의 오디오 스트림을 모니터링하는 단계;
모니터링 중에 인간 음성의 발생을 검출하는 것에 응답하여:
오디오 스트림에 대한 입력으로서 응답 요청 신호를 전송하는 단계;
응답 요청 신호에 대한 응답에 대해 오디오 스트림을 모니터링하는 단계;
인간 응답이 응답 요청 신호에 대한 적어도 하나의 예측된 응답에 대응하는지 여부를 결정하는 것에 기초하여 응답 요청 신호에 대한 응답이 응답 요청 신호에 응답하는 인간 응답인지 여부를 결정하는 단계; 및
응답이 응답 요청 신호에 응답하는 인간 응답이라고 결정되는 경우:
호출 사용자에 의해 인지 가능하고 보류 상태의 종료를 나타내는 사용자 인터페이스 출력이 렌더링되개 하는 단계를 포함하며, 상기 사용자 인터페이스 출력은 오디오 출력, 진동 출력 및/또는 시각적 출력을 포함하는 것을 특징으로 하는 클라이언트 디바이스에 의해 구현되는 방법. - 제8항에 있어서,
상기 클라이언트 디바이스는 이동 전화 또는 독립형 대화형 스피커인 것을 특징으로 하는 클라이언트 디바이스에 의해 구현되는 방법. - 제8항에 있어서,
상기 보류 상태는 음성 통신 세션이 보류 상태에 있음을 검출하는 것에 응답하여 클라이언트 디바이스에 의해 자동으로 개시되는 것을 특징으로 하는 클라이언트 디바이스에 의해 구현되는 방법. - 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서로 하여금 동작들을 수행하게 하는 명령들을 저장하도록 구성된 비-일시적 컴퓨터 판독 가능 매체로서, 상기 동작들은,
호출 사용자의 클라이언트 디바이스에 의해 개시되는 음성 통신 세션과 관련된 전화 번호를 식별하는 단계;
식별된 전화 번호가 호출 사용자를 보류시키는 것으로 알려진 엔티티와 관련되는지 여부를 결정하는 단계;
식별된 전화 번호가 호출 사용자를 보류시키는 것으로 알려진 엔티티와 관련된다는 결정에 응답하여:
음성 통신 세션의 오디오 스트림에서 음성을 식별하는 단계;
식별된 전화 번호를 이용한 하나 이상의 이전 음성 통신 세션에 기초하여, 오디오 스트림의 음성이 알려진 보류 음성인지 여부를 결정하는 단계; 및
오디오 스트림의 음성이 알려진 보류 음성이라는 결정에 응답하여, 음성 통신 세션이 보류 상태에 있다고 결정하는 단계를 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체. - 제11항에 있어서,
상기 식별된 전화 번호가 호출 사용자를 보류시키는 것으로 알려진 엔티티와 관련되는지 여부를 결정하는 단계는,
식별된 전화 번호를 호출 사용자를 보류시키는 것으로 알려진 전화 번호의 글로벌 목록과 비교하는 단계; 및
식별된 전화 번호가 호출 사용자를 보류시키는 것으로 알려진 전화 번호의 글로벌 목록에 포함된다고 결정하는 단계를 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체. - 제11항에 있어서,
상기 식별된 전화번호가 호출 사용자를 보류시키는 것으로 알려진 엔티티와 관련되는지 여부를 결정하는 단계는,
식별된 전화번호를 이전에 호출 사용자를 보류시킨 것으로 알려진 전화 번호의 개인화된 목록과 비교하는 단계; 및
식별된 전화 번호가 이전에 호출 사용자를 보류시킨 것으로 알려진 전화 번호의 개인화된 목록에 포함된다고 결정하는 단계를 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체. - 제11항에 있어서,
상기 동작들은,
음성 통신 세션이 보류 상태에 있다는 결정에 응답하여, 클라이언트 디바이스의 보류 클라이언트를 개시하는 단계를 더 포함하고, 상기 보류 클라이언트를 개시하는 단계는 음성 통신 세션 동안이고 상기 음성 통신 세션이 보류 상태에 있다는 결정에 기초하는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체. - 제14항에 있어서,
상기 동작들은,
보류 클라이언트를 사용하여, 보류 상태의 후보 종료에 대한 음성 통신 세션의 오디오 스트림을 모니터링하는 단계, 상기 음성 통신 세션의 오디오 스트림을 모니터링하는 단계는 호출 사용자로부터의 직접적인 상호 작용 없이 발생하고; 및
보류 상태의 후보 종료를 검출하는 것에 응답하여, 클라이언트 디바이스로부터, 음성 통신 세션의 오디오 스트림에 대한 입력으로서 응답 요청 신호를 전송하는 단계를 더 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체. - 제15항에 있어서,
상기 동작들은,
응답 요청 신호에 대한 응답을 위해 음성 통신 세션의 오디오 스트림을 모니터링하는 단계;
응답 요청 신호에 대한 응답이 보류 상태의 후보 종료가 보류 상태의 실제 종료임을 나타낸다고 결정하는 단계, 상기 보류 상태의 실제 종료는 인간 사용자가 음성 통신 세션에서 호출 사용자와 상호 작용할 수 있음을 나타내고; 및
보류 상태의 실제 종료를 결정하는 것에 응답하여 사용자 인터페이스 출력이 렌더링되게 하는 단계를 더 포함하고, 상기 사용자 인터페이스 출력은 호출 사용자에 의해 인지 가능하고 상기 보류 상태의 실제 종료를 나타내는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체. - 제14항에 있어서,
상기 동작들은,
보류 클라이언트를 사용하여, 보류 상태의 실제 종료에 대해 음성 통신 세션의 오디오 스트림을 모니터링하는 단계, 상기 음성 통신 세션의 오디오 스트림을 모니터링하는 단계는 호출 사용자로부터의 직접적인 상호작용 없이 발생하고; 및
보류 상태의 실제 종료를 검출하는 것에 응답하여, 사용자 인터페이스 출력이 렌더링되게 하는 단계를 더 포함하고, 상기 사용자 인터페이스 출력은 호출 사용자에 의해 인지 가능하고 상기 보류 상태의 실제 종료를 나타내는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020227020937A KR102535790B1 (ko) | 2018-06-28 | 2018-06-28 | 보류 상태를 관리하기 위한 방법 및 장치 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020207037020A KR102345616B1 (ko) | 2018-06-28 | 2018-06-28 | 보류 상태를 관리하기 위한 방법 및 장치 |
PCT/US2018/040065 WO2020005260A1 (en) | 2018-06-28 | 2018-06-28 | Methods and apparatus for managing holds |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020207037020A Division KR102345616B1 (ko) | 2018-06-28 | 2018-06-28 | 보류 상태를 관리하기 위한 방법 및 장치 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227020937A Division KR102535790B1 (ko) | 2018-06-28 | 2018-06-28 | 보류 상태를 관리하기 위한 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220002703A KR20220002703A (ko) | 2022-01-06 |
KR102414159B1 true KR102414159B1 (ko) | 2022-06-28 |
Family
ID=62976298
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227020937A KR102535790B1 (ko) | 2018-06-28 | 2018-06-28 | 보류 상태를 관리하기 위한 방법 및 장치 |
KR1020207037020A KR102345616B1 (ko) | 2018-06-28 | 2018-06-28 | 보류 상태를 관리하기 위한 방법 및 장치 |
KR1020217042192A KR102414159B1 (ko) | 2018-06-28 | 2018-06-28 | 보류 상태를 관리하기 위한 방법 및 장치 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227020937A KR102535790B1 (ko) | 2018-06-28 | 2018-06-28 | 보류 상태를 관리하기 위한 방법 및 장치 |
KR1020207037020A KR102345616B1 (ko) | 2018-06-28 | 2018-06-28 | 보류 상태를 관리하기 위한 방법 및 장치 |
Country Status (6)
Country | Link |
---|---|
US (4) | US10897535B2 (ko) |
EP (2) | EP3785426B1 (ko) |
JP (2) | JP7297797B2 (ko) |
KR (3) | KR102535790B1 (ko) |
CN (2) | CN112313930B (ko) |
WO (1) | WO2020005260A1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102535790B1 (ko) | 2018-06-28 | 2023-05-26 | 구글 엘엘씨 | 보류 상태를 관리하기 위한 방법 및 장치 |
US11005988B1 (en) * | 2019-12-27 | 2021-05-11 | Qualcomm Incorporated | Smart notification system for voice calls |
US20210211317A1 (en) * | 2020-01-03 | 2021-07-08 | International Business Machines Corporation | Controlling conference call dial-ins and holding queues |
AU2021327081A1 (en) * | 2020-08-20 | 2023-03-02 | Jlak Rothwell Pty Ltd | System and method enabling a user to select an audio stream of choice |
CN115118762A (zh) * | 2022-05-19 | 2022-09-27 | 北京京东乾石科技有限公司 | 一种会话处理的方法、客户端和*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050147227A1 (en) | 2003-12-31 | 2005-07-07 | France Telecom, S.A. | Method and system for alerting call participant of a change in a call hold status |
US20090136014A1 (en) | 2007-11-23 | 2009-05-28 | Foncloud, Inc. | Method for Determining the On-Hold Status in a Call |
US20100303227A1 (en) | 2009-05-29 | 2010-12-02 | Apple Inc. | On-hold call monitoring systems and methods |
US20160021247A1 (en) | 2014-07-17 | 2016-01-21 | Verizon Patent And Licensing Inc. | Method and system for providing communication hold status management |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5309505A (en) * | 1991-05-20 | 1994-05-03 | Inventions, Inc. | Automated voice system for improving agent efficiency and improving service to parties on hold |
US5315636A (en) | 1991-06-28 | 1994-05-24 | Network Access Corporation | Personal telecommunications system |
US20040203660A1 (en) * | 2002-12-09 | 2004-10-14 | Sanjay Tibrewal | Method of assisting a user placed on-hold |
US20070047711A1 (en) * | 2005-08-31 | 2007-03-01 | Cynthia Florkey | Personalized on-hold music |
US20080130865A1 (en) * | 2006-12-01 | 2008-06-05 | International Business Machines Corporation | Call hold enhancement for improved user feedback |
US20080158000A1 (en) | 2006-12-28 | 2008-07-03 | Mattrazzo Daniel C | Autodetect of user presence using a sensor |
US8774387B2 (en) | 2007-06-20 | 2014-07-08 | At&T Intellectual Property Ii, Lp | System and method for avoiding hold times on a telephone call |
US20110111735A1 (en) * | 2009-11-06 | 2011-05-12 | Apple Inc. | Phone hold mechanism |
US8619965B1 (en) | 2010-05-07 | 2013-12-31 | Abraham & Son | On-hold processing for telephonic systems |
US8830056B2 (en) * | 2010-12-03 | 2014-09-09 | Avaya Inc. | Intelligent music on hold |
US8928724B2 (en) * | 2012-08-31 | 2015-01-06 | Microsoft Corporation | Unified user experience for mobile calls |
US20150163610A1 (en) | 2013-12-11 | 2015-06-11 | Qualcomm Incorporated | Audio keyword based control of media output |
US9380159B2 (en) | 2013-12-30 | 2016-06-28 | Vonage America Inc. | Method and system for informing a user that a call is no longer on hold |
US9571639B2 (en) * | 2014-12-29 | 2017-02-14 | Ebay Inc. | Call holding management |
KR102535790B1 (ko) | 2018-06-28 | 2023-05-26 | 구글 엘엘씨 | 보류 상태를 관리하기 위한 방법 및 장치 |
-
2018
- 2018-06-28 KR KR1020227020937A patent/KR102535790B1/ko active IP Right Grant
- 2018-06-28 CN CN201880094616.6A patent/CN112313930B/zh active Active
- 2018-06-28 WO PCT/US2018/040065 patent/WO2020005260A1/en unknown
- 2018-06-28 US US16/610,169 patent/US10897535B2/en active Active
- 2018-06-28 CN CN202210232401.4A patent/CN114760387A/zh active Pending
- 2018-06-28 KR KR1020207037020A patent/KR102345616B1/ko active IP Right Grant
- 2018-06-28 JP JP2020569973A patent/JP7297797B2/ja active Active
- 2018-06-28 KR KR1020217042192A patent/KR102414159B1/ko active IP Right Grant
- 2018-06-28 EP EP18743295.0A patent/EP3785426B1/en active Active
- 2018-06-28 EP EP23150804.5A patent/EP4195640A1/en active Pending
-
2020
- 2020-12-14 US US17/120,956 patent/US11336767B2/en active Active
-
2022
- 2022-05-12 US US17/743,126 patent/US11677871B2/en active Active
-
2023
- 2023-05-19 US US18/199,711 patent/US12015736B2/en active Active
- 2023-06-13 JP JP2023097188A patent/JP2023126219A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050147227A1 (en) | 2003-12-31 | 2005-07-07 | France Telecom, S.A. | Method and system for alerting call participant of a change in a call hold status |
US20090136014A1 (en) | 2007-11-23 | 2009-05-28 | Foncloud, Inc. | Method for Determining the On-Hold Status in a Call |
US20100303227A1 (en) | 2009-05-29 | 2010-12-02 | Apple Inc. | On-hold call monitoring systems and methods |
US20160021247A1 (en) | 2014-07-17 | 2016-01-21 | Verizon Patent And Licensing Inc. | Method and system for providing communication hold status management |
Also Published As
Publication number | Publication date |
---|---|
CN112313930B (zh) | 2022-03-18 |
CN114760387A (zh) | 2022-07-15 |
EP3785426A1 (en) | 2021-03-03 |
US11677871B2 (en) | 2023-06-13 |
KR20210011021A (ko) | 2021-01-29 |
JP2023126219A (ja) | 2023-09-07 |
KR102535790B1 (ko) | 2023-05-26 |
CN112313930A (zh) | 2021-02-02 |
KR20220093256A (ko) | 2022-07-05 |
KR102345616B1 (ko) | 2021-12-30 |
WO2020005260A1 (en) | 2020-01-02 |
EP4195640A1 (en) | 2023-06-14 |
EP3785426B1 (en) | 2023-01-11 |
US20220272191A1 (en) | 2022-08-25 |
US11336767B2 (en) | 2022-05-17 |
JP2021530130A (ja) | 2021-11-04 |
US20230308542A1 (en) | 2023-09-28 |
US12015736B2 (en) | 2024-06-18 |
JP7297797B2 (ja) | 2023-06-26 |
US20200344351A1 (en) | 2020-10-29 |
US20210099575A1 (en) | 2021-04-01 |
US10897535B2 (en) | 2021-01-19 |
KR20220002703A (ko) | 2022-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102414159B1 (ko) | 보류 상태를 관리하기 위한 방법 및 장치 | |
JP7063932B2 (ja) | 適切なエージェントの自動化アシスタント呼び出し | |
KR102523982B1 (ko) | 자동화된 어시스턴트를 호출하기 위한 다이내믹 및/또는 컨텍스트-특정 핫 워드 | |
US20220335930A1 (en) | Utilizing pre-event and post-event input streams to engage an automated assistant | |
US11789695B2 (en) | Automatic adjustment of muted response setting | |
JP2024020472A (ja) | 人間の参加者の代理の自動アシスタントによる準委任通話 | |
US20240205331A1 (en) | Reducing telephone network traffic through utilization of pre-call information | |
US20240257811A1 (en) | System and Method for Providing Real-time Speech Recommendations During Verbal Communication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |