Presenting facial expressions in virtual meetings

JP2024519723A5Active Publication Date: 2025-02-18QUALCOMM INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2023568078
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2021-05-14
Filing Date
2022-02-23
Publication Date
2025-02-18
Estimated Expiration
2042-02-23

AI Technical Summary

Technical Problem

Current virtual meeting systems inaccurately capture and display facial expressions, leading to mismatched user intentions, causing awkwardness, embarrassment, or rudeness, and lack a mechanism for users to approve or reject facial expressions displayed on their avatars.

Method used

A computing device detects facial expressions using sensors, determines their appropriateness for display, and generates or maintains avatars with approved expressions, allowing users to approve or disapprove through an interface, and learns user preferences over time to automate this process.

Benefits of technology

This solution improves the relevance and professionalism of virtual meeting interactions by ensuring displayed facial expressions align with user intent, reducing awkwardness and enhancing user control over their digital representation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

An embodiment system and method for presenting facial expressions in a virtual meeting may include detecting a facial expression of a user based on information received from a sensor of a computing device; determining whether the detected user's facial expression is approved for presentation on an avatar in the virtual meeting; in response to a determination that the detected user's facial expression is approved for presentation on an avatar in the virtual meeting, generating an avatar representing a facial expression matching the detected user's facial expression; in response to a determination that the detected user's facial expression is not approved for presentation on an avatar in the virtual meeting, generating an avatar representing the facial expression approved for presentation; and presenting the generated avatar in the virtual meeting.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] Related Applications This application claims the benefit of priority to U.S. patent application Ser. No. 17 / 320,627, filed May 14, 2021, and entitled "Presenting A Facial Expression In A Virtual Meeting," the entire contents of which are incorporated herein by reference. [Background technology]

[0002] Communications networks have enabled the development of applications and services for online meetings and gatherings. Some systems provide virtual environments that present visual representations of attendees known as "avatars," which can range from simplified or cartoon-like images to photorealistic images. Some of these systems include a virtual reality (VR) device, such as a VR headset or other VR equipment, that records the user's movements and voice. Such systems may generate facial expressions on the user's avatar based on the user's movements and speech.

[0003] However, the facial expressions, words, and actions of virtual meeting attendees may not be relevant to the meeting. Users may react to any number of things that occur in the user's real-world environment, such as disturbances from children, pets, or others, external noise, phone calls, and other interruptions. The system may also detect and show facial expressions that the user does not want others to see in the online meeting, such as anger, annoyance, frustration, etc. Furthermore, the system may capture and display facial expressions inaccurately, resulting in a mismatch between what the user is trying to communicate and the facial expressions displayed, which may be awkward, embarrassing, or disrespectful. Current systems do not provide a mechanism for users to review or approve facial expressions for display on the user's avatar. Summary of the Invention [Means for solving the problem]

[0004] Various aspects include a method for presenting facial expressions in a virtual conference and a computing device configured to execute the method. Various aspects may include detecting a facial expression of a user based on information received from a sensor of the computing device, determining whether the detected user's facial expression is approved for presentation on an avatar in the virtual conference, generating an avatar representing a facial expression that matches the detected user's facial expression in response to a determination that the detected user's facial expression is approved for presentation on an avatar in the virtual conference, generating an avatar representing a facial expression that is approved for presentation on an avatar in the virtual conference but different from the detected user's facial expression in response to a determination that the detected user's facial expression is not approved for presentation on an avatar in the virtual conference, and presenting the generated avatar in the virtual conference. Some aspects may further include continuing to present the currently presented avatar in response to a determination that the detected user's facial expression is not approved for presentation on an avatar in the virtual conference. Some aspects may further include, in response to a determination that the detected user's facial expression is not approved for presentation on an avatar in the virtual conference, generating an avatar representing a facial expression that is approved for presentation on an avatar in the virtual conference but that differs from the detected user's facial expression.

[0005] In some aspects, in response to determining that the detected user's facial expression is not approved for presentation on an avatar in the virtual conference, generating an avatar representing a facial expression approved for presentation on an avatar in the virtual conference but different from the detected user's facial expression may include generating an avatar representing a recent expression approved for presentation. In some aspects, detecting the user's facial expression based on information received from a sensor of the computing device may include detecting the user's facial expression based on information received from an image sensor of the computing device.

[0006] In some aspects, determining whether the detected user's facial expression is approved for presentation on an avatar in the virtual conference may include determining whether the user's facial expression was previously approved for presentation on an avatar in the virtual conference, and presenting the generated avatar in the virtual conference may include, in response to determining that the user's facial expression was previously approved for presentation on an avatar in the virtual conference, presenting the generated avatar in the virtual conference representing the previously approved facial expression. In some aspects, determining whether the detected user's facial expression is approved for presentation on an avatar in the virtual conference may include rendering an avatar representing a facial expression matching the detected user's facial expression on a user interface configured to receive approval or rejection by a user, and determining that the detected user's facial expression is approved in response to receiving an input on a user interface of the computing device indicating that the user's facial expression is approved for presentation in the virtual conference.

[0007] Some aspects may include determining that the detected user's facial expression is approved for presentation on an avatar in the virtual conference if there is no responsive input to the user interface within a threshold time period. Some aspects may include storing in memory an indication that an avatar representing a facial expression matching the detected user's facial expression is approved or not approved for presentation in the virtual conference in response to receiving an input on a user interface of the computing device indicating that the detected user's facial expression is approved or not approved for presentation on an avatar in the virtual conference.

[0008] In some aspects, determining whether the detected user's facial expression is approved for presentation on an avatar in the virtual meeting may include determining that the detected user's facial expression is stored in a preset list as approved or not approved, rendering an avatar representing a facial expression matching the detected user's facial expression on a user interface configured to receive approval or rejection by the user, and updating the preset list in response to receiving input different from the preset list indicating that the user's facial expression is approved or not approved for presentation on an avatar in the virtual meeting.

[0009] In some aspects, determining whether the detected user's facial expression is approved for presentation on an avatar in the virtual conference may include determining whether the detected user's facial expression is approved for presentation on an avatar in the virtual conference based on the user's expressive voice. In some aspects, presenting the generated avatar in the virtual conference may include rendering a representation of the user's expressive voice in the virtual conference in conjunction with presenting the generated avatar in the virtual conference.

[0010] A further aspect may include a computing device including a memory and a processor coupled to the memory, the processor configured with processor-executable instructions for performing operations of any of the methods described above. A further aspect may include a processor-readable storage medium having stored thereon processor-executable instructions configured to cause a controller of the computing device to perform operations of any of the methods described above. A further aspect may include a computing device including means for performing functions of any of the methods described above.

[0011] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate exemplary embodiments and, together with the general description given above and the detailed description given below, serve to explain features of certain embodiments. [Brief description of the drawings]

[0012] [Figure 1] FIG. 1 is a system block diagram illustrating an example communication system suitable for implementing any of the various embodiments. [Diagram 2] FIG. 1 is a component block diagram of an exemplary computing device suitable for implementing any of the various embodiments. [Diagram 3] FIG. 1 is a component block diagram illustrating an exemplary computing system architecture suitable for implementing any of the various embodiments. [Figure 4] FIG. 1 is a conceptual diagram illustrating aspects of a method for presenting facial expressions in a virtual meeting, according to various embodiments. [Diagram 5] FIG. 1 is a process flow diagram illustrating a method for presenting facial expressions in a virtual meeting, according to various embodiments. [Figure 6A] FIG. 1 illustrates operations that may be performed as part of a method for presenting facial expressions in a virtual meeting, according to various embodiments. [Figure 6B]FIG. 1 illustrates operations that may be performed as part of a method for presenting facial expressions in a virtual meeting, according to various embodiments. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0013] Various embodiments are described in detail with reference to the accompanying drawings. Whenever possible, the same reference numbers are used throughout the drawings to refer to the same or like parts. References made to specific examples and implementations are for illustrative purposes only and are not intended to limit the scope of the various embodiments or the claims.

[0014] Various embodiments provide a method for presenting facial expressions that participants deem appropriate on the participant's avatar in a virtual conference, which may be implemented within a device such as a mobile computing device. Various embodiments enable a computing device to learn user-approved and user-disapproved facial expressions for presentation on the user's avatar in a virtual conference. Various embodiments eliminate the need for additional bulky and expensive peripherals, such as virtual reality headsets and similar devices. Various embodiments improve the operation of computing devices and virtual conference systems by enabling automatic filtering of facial expressions rendered on participant's avatars to improve the conduct of virtual conferences.

[0015] Terms such as "component," "module," and "system" are intended to include computer-related entities, such as, but not limited to, hardware, firmware, a combination of hardware and software, software, or software in execution, configured to perform certain operations or functions. For example, a component may be, but is not limited to, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and / or a computer. By way of example, both an application running on a computing device and the computing device may be referred to as a component. One or more components may reside within a process and / or thread of execution, and a component may be localized on one processor or core and / or distributed among two or more processors or cores. In addition, these components may execute from various non-transitory computer-readable media having various instructions and / or data structures stored thereon. Components may communicate by way of local and / or remote processes, function or procedure calls, electronic signals, data packets, memory reads / writes, and other computer, processor, and / or process related communication methods known in the art.

[0016] The term "computing device" is used herein to refer to any one or all of cellular telephones, smartphones, portable computing devices, personal or mobile multimedia players, laptop computers, tablet computers, smartbooks, ultrabooks, palmtop computers, email receivers, multimedia Internet-enabled cellular telephones, router devices, medical devices and equipment, biometric sensors / devices, wearable devices including smart watches, smart clothing, smart glasses, smart wristbands, and smart jewelry (e.g., smart rings, smart bracelets, etc.), entertainment devices (e.g., game controllers, music and video players, satellite radio, etc.), Internet of Things (IoT) devices including smart meters / sensors, industrial manufacturing equipment, and large and small machines and appliances for home or business use, computing devices in autonomous and semi-autonomous vehicles, mobile devices fixed or embedded in various mobile platforms, global positioning system devices, and similar electronic devices including memory and programmable processors.

[0017] The term "system on chip" (SOC) is used herein to refer to a single integrated circuit (IC) chip that contains multiple resources and / or processors integrated on a single substrate. A single SOC may include circuits for digital, analog, mixed signal, and radio frequency functions. A single SOC may also include any number of general purpose and / or special purpose processors (digital signal processors, modem processors, video processors, etc.), memory blocks (e.g., ROM, RAM, Flash, etc.), and resources (e.g., timers, voltage regulators, oscillators, etc.). A SOC may also include software for controlling the integrated resources and processors, as well as for controlling peripheral devices.

[0018] The term "system in package" (SIP) may be used herein to refer to a single module or package that contains multiple resources, computing units, cores, and / or processors on two or more IC chips, substrates, or SOCs. For example, a SIP may include a single substrate on which multiple IC chips or semiconductor dies are stacked in a vertical configuration. Similarly, a SIP may include one or more multi-chip modules (MCMs) on which multiple ICs or semiconductor dies are packaged in a unifying substrate. A SIP may also include multiple independent SOCs packaged in close proximity, coupled to each other via high-speed communication circuits, such as on a single motherboard or within a single wireless device. The proximity of the SOCs facilitates high-speed communication and sharing of memory and resources.

[0019] As used herein, the terms "network," "system," "wireless network," "cellular network," and "wireless communications network" may interchangeably refer to a portion or all of a wireless network of a carrier associated with a wireless device and / or a subscription of the wireless device. The techniques described herein may be used in connection with various wireless communications networks, such as Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), FDMA, Orthogonal FDMA (OFDMA), Single Carrier FDMA (SC-FDMA), and other networks. In general, any number of wireless networks may be deployed in a given geographic area. Each wireless network may support at least one radio access technology, which may operate on one or more frequencies or ranges of frequencies. For example, a CDMA network may implement Universal Terrestrial Radio Access (UTRA) (including the Wideband Code Division Multiple Access (WCDMA) standard), CDMA2000 (including the IS-2000, IS-95, and / or IS-856 standards), and the like. In another example, the TDMA network may implement Global System for Mobile Communications (GSM), Enhanced Data Rates for GSM Evolution (EDGE). In another example, the OFDMA network may implement Evolved UTRA (E-UTRA) (including the LTE standard), Institute of Electrical and Electronics Engineers (IEEE) 802.11 (WiFi), IEEE 802.16 (WiMAX), IEEE 802.20, Flash OFDM, etc. Reference may be made to wireless networks using the LTE standard, and thus the terms "Evolved Universal Terrestrial Radio Access," "E-UTRAN," and "eNodeB" may also be used interchangeably herein to refer to wireless networks. However, such references are merely examples and are not intended to exclude wireless networks using other communication standards.For example, although various third-generation (3G), fourth-generation (4G), and fifth-generation (5G) systems are discussed herein, these systems are mentioned merely as examples and may be replaced in various instances by future generation systems (e.g., sixth-generation (6G) or greater systems).

[0020] Some online conference and meeting systems provide virtual environments that present visual "avatars" of attendees instead of mere name labels or live images. Such avatars can range from simplified or cartoon-like images to photorealistic images. Some systems that support virtual meetings include VR devices that record the user's movements and voice and then generate facial expressions on the user's avatar based on the user's movements and speech.

[0021] As mentioned above, the facial expressions, words, and actions of virtual meeting attendees may not be relevant to the meeting under various circumstances. For example, users may react to a number of things that occur in the user's real-world environment, such as disturbances from children, pets, or others, external noise, phone calls, and other disturbances. Also, sometimes virtual meeting participants may react negatively or immaturely to what is said or presented in the meeting, and it is best to avoid these participants from showing inappropriate facial expressions that the user does not want their avatar to display to others in the online meeting. For example, meeting participants may not want momentary facial expressions such as anger, annoyance, frustration, etc., to be presented on their meeting avatar. Furthermore, the virtual meeting software may misinterpret or inaccurately detect the facial expressions of participants, which may cause a mismatch between what the participant is trying to communicate in the meeting and the facial expressions shown on the participant's avatar, which may be awkward, embarrassing, or disrespectful to other meeting participants.

[0022] Various embodiments include methods, and computing devices configured to perform those methods, for presenting facial expressions on a participant's avatar in a virtual conference, including filtering out or avoiding rendering on the participant's avatar expressions that the participant does not want to display. In various embodiments, the computing device may detect a user's facial expression or emotion based on information received from one or more sensors (e.g., a camera) of the computing device. The computing device may determine whether the detected user's facial expression is approved for presentation on the participant's avatar in the virtual conference. In response to determining that the detected user's facial expression is approved for presentation on the avatar in the virtual conference, the computing device may generate an avatar representing a facial expression that matches the detected user's facial expression. In response to determining that the detected user's facial expression is not approved for presentation on the avatar in the virtual conference, the computing device may generate an avatar representing a facial expression approved for presentation and / or avoid rendering on the participant's avatar a facial expression that matches the detected user's facial expression, such as by not changing an expression currently represented on the participant's avatar. In some embodiments, in response to determining that the detected facial expression of the user is not approved for presentation on the avatar in the virtual conference, the computing device may generate an avatar that represents a recent or recent facial expression approved for presentation. In some embodiments, the computing device may generate an avatar that represents a facial expression that matches the recent or recent facial expression approved for presentation. The computing device may present the avatar with the generated representation of the facial expression of the user in the virtual conference. In various embodiments, the facial expressions presented on the avatar may include facial expressions that categorically convey meaning or emotion (e.g., joy, sadness, surprise, anger, contempt, disgust, anxiety, etc.), expressive actions (e.g., laughing, sighing, winking, smiling, gasping, etc.), equivocal expressions, a "resting" face, or a "neutral" expression.

[0023] In some embodiments, the computing device may detect the user's facial expressions based on images and / or information received from an image sensor of the computing device. In some embodiments, the computing device may process an image (which may be a single image or a video) of the user's face to detect the facial expressions. In some embodiments, the computing device may include a multi-mode sensor or group of sensors including an image sensor for capturing an image or video of the user's face. In various embodiments, the system does not use or require additional devices, such as a VR system.

[0024] In some embodiments, the computing device may also store and process speech and / or other meaningful sounds and determine words, phrases, and sounds that accompany or correspond to certain facial expressions. In some embodiments, the computing device may capture the user's speech and other expressive sounds (sighs, laughs, etc.) with a microphone or another suitable audio sensor. In some embodiments, the computing device may detect the user's facial expressions based on the user's expressive sounds, for example, received via the computing device's microphone. The term "expressive sounds" is used herein to collectively refer to words and phrases (i.e., language) as well as meaningful sounds. Examples of meaningful sounds include laughter, sighs, humming, coughing, hesitant sounds (e.g., "um," "hmm," "uh," "hmm," etc.), gasps, or other sounds that convey meaning to another person. In some embodiments, the computing device may correlate or associate virtual facial expressions with the user's expressive sounds. In some embodiments, the computing device may learn words, phrases, and / or sounds that are related to or correlate with various facial expressions of the user.

[0025] In some embodiments, the computing device may automatically determine whether the generated virtual facial expression should be rendered on the user's avatar presented in the virtual meeting. In some embodiments, the system may compare the generated virtual facial expression to a database, list, or other suitable data structure of permitted or acceptable expressions (e.g., smile, laugh, enthusiasm, etc.) and / or a database of unacceptable expressions (e.g., anger, frown, disgust, etc.), and if the generated virtual facial expression is on the permitted or acceptable expression list, the computing device may render the expression on the user's avatar. The list of permitted or acceptable expressions and / or the list of unacceptable expressions may be pre-configured in the computing device, such as in a default list, or a preset list provided by the manufacturer, or a user-selected or generated list set during a setup procedure (e.g., of the software for the virtual meeting).

[0026] In some embodiments, the computing device may learn and / or adjust a database, list, or other suitable data structure of permitted or acceptable facial expressions and / or a list of disallowed or unacceptable facial expressions through user interaction. For example, the computing device may determine that the detected facial expression is neither approved nor disapproved for presentation (e.g., within a preset list or within a database or list of previously approved or rejected facial expressions). In response to a determination that the detected user's facial expression is neither approved nor disapproved for presentation, in other words, a pending decision on the acceptability of the detected facial expression, the computing device may present an avatar on a user interface of the computing device that represents a facial expression that matches the detected user's facial expression within a user interface configured to receive user input of approval or disapproval. In some embodiments, the computing device may render an avatar on a user interface of the computing device that represents a facial expression that matches the detected user's facial expression with an invitation or prompt that requests the user to indicate whether the detected user's facial expression is approved or disapproved for presentation. In response to receiving an input on a user interface of the computing device indicating that the user's facial expression is approved for presentation in the virtual conference, the computing device may determine that the detected user's facial expression is approved. In some embodiments, the computing device may store an indication that an avatar representing the user's facial expression is approved or not approved, such as listing the facial expression for the avatar in a database or list of approved facial expressions or in a database or list of rejected facial expressions.

[0027] In some embodiments, the computing device may display the virtual facial expression on a user interface to allow the user to provide input regarding approval or disapproval of the displayed virtual facial expression, and may provide the user with a short time period (e.g., 3-5 seconds) to respond to the user interface with a selection of approval or rejection. This review opportunity may allow the user to filter or screen the facial expression before it is rendered on the user's avatar in the virtual meeting. To allow the user to approve or disapprove of the displayed virtual facial expression without requiring input each time the facial expression is presented on the user interface, the system may take a default action if the user does not respond within a short time period, such as before the expiration of a threshold time period. The default decision of approval or disapproval of the virtual facial expression presented on the user interface may be user-defined (e.g., the user may enter a setting in a configuration interface and select whether ignoring a user interface prompt should be interpreted as approval or disapproval).

[0028] In some embodiments, the computing device may determine, based on the user's expressive voice, whether the generated virtual facial expression should be rendered on the user's avatar. For example, the user's expressive voice may be associated with unacceptable facial expressions, such as ridicule and contemptuous facial expressions, or laughter and surprise or disbelief facial expressions. In some embodiments, the computing device may determine, based on the user's expressive voice, whether the detected user's facial expression is approved for presentation on the user's avatar. For example, the computing device may determine that the user's expressive voice is associated with an unacceptable facial expression. In response, rather than the unapproved facial expression, the computing device may generate an avatar representing a facial expression that is approved for presentation (or has previously been approved).

[0029] In some embodiments, the computing device may be configured to learn over time (e.g., by a learning algorithm) user expressions that the user desires to display and user expressions that the user does not desire to be displayed (i.e., acceptable and unacceptable expressions). The computing device may also be configured to learn user expressions that are acceptable or suitable for use when an image of the user's face is ambiguous. The computing device may also be configured to learn expressive voices associated with approved and unapproved expressions. In some embodiments, the computing device may be configured to determine (e.g., based on a database, a list, etc.) whether the detected user's facial expression has been previously approved for presentation on an avatar in a virtual meeting, and in response to determining that the detected user's facial expression has been previously approved for presentation on an avatar in a virtual meeting, the computing device may automatically generate an avatar that represents a facial expression that matches the detected user's facial expression. As described above, the computing device may confirm and / or update a preset or default facial expression in response to receiving an input that differs from the preset or default facial expression. In this way, the computing device may learn the user's acceptable and unacceptable facial expressions and update the preset facial expressions or update the database of acceptable and unacceptable facial expressions and add new facial expressions.

[0030] In this way, the computing device may learn how to automatically determine whether to display a virtual facial expression without prompting the user for a response. Over time, such as in response to a number of consistent user decisions, the computing device may be configured to reduce the number and frequency of prompts that the computing device displays for approval or disapproval. Eventually, the computing device may stop prompting the user for expressions that are always or never acceptable for display, and immediately implement the acceptable expressions without bothering the user with prompts to approve or disapprove a particular virtual avatar expression.

[0031] Various embodiments improve the operation of computing devices and virtual conference systems by filtering or preventing the generation of facial expressions of virtual avatars that are not acceptable in a virtual conference. Various embodiments also improve the operation of computing devices and virtual conference systems by learning various facial expressions that are or are not approved for presentation in a virtual conference, thus operating in an increasingly seamless manner that requires fewer and fewer user prompts over time. Various embodiments also improve the operation of computing devices and virtual conference systems by improving their speed and efficiency of operation. Various embodiments further improve the operation of computing devices and virtual conference systems by improving their speed and efficiency of operability and user interactivity.

[0032] FIG. 1 is a system block diagram illustrating an exemplary communication system 100. The communication system 100 may be a 5G New Radio (NR) network, or any other suitable network, such as a Long Term Evolution (LTE) network. Although FIG. 1 illustrates a 5G network, later generation networks may include the same or similar elements. Thus, references to 5G networks and 5G network elements in the following description are for illustrative purposes and are not intended to be limiting.

[0033] The communication system 100 may include a heterogeneous network architecture including a core network 140 and various wireless devices (shown in FIG. 1 as wireless devices 120a-120e). The communication system 100 may also include several base stations (shown as BS 110a, BS 110b, BS 110c, and BS 110d) and other network entities. A base station is an entity that communicates with the wireless devices and may also be referred to as a Node B, an LTE evolved Node B (eNode B or eNB), an access point (AP), a radio head, a transmit receive point (TRP), a new radio base station (NR BS), a 5G Node B (NB), a next generation Node B (gNode B or gNB), etc. Each base station may provide communication coverage for a particular geographic area. In 3GPP, the term "cell" may refer to a base station's coverage area, a base station subsystem serving this coverage area, or a combination thereof, depending on the context in which the term is used. The core network 140 may be any type of core network, such as an LTE core network (e.g., an evolved packet core (EPC) network), a 5G core network, etc.

[0034] The base stations 110a-110d may provide communication coverage for a macro cell, a pico cell, a femto cell, another type of cell, or a combination thereof. A macro cell may cover a relatively large geographic area (e.g., a few kilometers in radius) and may allow unrestricted access by wireless devices with a service subscription. A pico cell may cover a relatively small geographic area and may allow unrestricted access by wireless devices with a service subscription. A femto cell may cover a relatively small geographic area (e.g., a home) and may allow restricted access by wireless devices that have an association with the femto cell (e.g., wireless devices in a Closed Subscriber Group (CSG)). A base station for a macro cell may be referred to as a Macro BS. A base station for a pico cell may be referred to as a Pico BS. A base station for a femto cell may be referred to as a Femto BS or a Home BS. In the example shown in Figure 1, base station 110a may be a macro BS for macro cell 102a, base station 110b may be a pico BS for pico cell 102b, and base station 110c may be a femto BS for femto cell 102c. Base stations 110a-110d may support one or more (e.g., three) cells. The terms "eNB", "base station", "NR BS", "gNB", "TRP", "AP", "Node B", "5G NB", and "cell" may be used interchangeably herein.

[0035] In some examples, the cells may not be stationary and the geographic areas of the cells may move according to the location of the mobile base station. In some examples, the base stations 110a-110d may be interconnected to each other and to one or more other base stations or network nodes (not shown) in the communication system 100 through various types of backhaul interfaces, such as direct physical connections, virtual networks, or combinations thereof, using any suitable transport network.

[0036] The base stations 110a-110d may communicate with the core network 140 over wired or wireless communications links 126. The wireless devices 120a-120e may communicate with the base stations 110a-110d over wireless communications links 122.

[0037] The wired communications link 126 may use various wired networks (e.g., Ethernet, TV cable, telephony, fiber optics, and other forms of physical network connections, etc.) that may use one or more wired communications protocols, such as Ethernet, Point-to-Point Protocol, High-Level Data Link Control (HDLC), Advanced Data Communication Control Protocol (ADCCP), and Transmission Control Protocol / Internet Protocol (TCP / IP).

[0038] The communication system 100 may also include a relay station (such as relay BS 110d). A relay station is an entity that can receive a transmission of data from an upstream station (e.g., a base station or a wireless device) and send a transmission of data to a downstream station (e.g., a wireless device or a base station). A relay station may also be a wireless device that can relay a transmission for another wireless device. In the example shown in FIG. 1, relay station 110d may communicate with macro base station 110a and wireless device 120d to facilitate communication between base station 110a and wireless device 120d. A relay station may also be referred to as a relay base station, a relay base station, a repeater, etc.

[0039] The communications system 100 may be a heterogeneous network including different types of base stations, e.g., macro base stations, pico base stations, femto base stations, relay base stations, etc. These different types of base stations may have different transmit power levels, different coverage areas, and different impacts on interference in the communications system 100. For example, macro base stations may have high transmit power levels (e.g., 5-40 watts), whereas pico base stations, femto base stations, and relay base stations may have lower transmit power levels (e.g., 0.1-2 watts).

[0040] A network controller 130 may couple to a set of base stations and provide coordination and control for these base stations. The network controller 130 may communicate with the base stations via a backhaul. The base stations may also communicate with one another, e.g., directly or indirectly via wireless or wireline backhaul.

[0041] The wireless devices 120a, 120b, 120c may be dispersed throughout the communication system 100, and each wireless device may be fixed or mobile. A wireless device may also be called an access terminal, a terminal, a mobile station, a subscriber unit, a station, a user equipment (UE), etc.

[0042] The macro base station 110a may communicate with the core network 140 over wired or wireless communications links 126. The wireless devices 120a, 120b, 120c may communicate with the base stations 110a-110d over wireless communications links 122.

[0043] The wireless communication links 122 and 124 may include multiple carrier signals, frequencies, or frequency bands, each of which may include multiple logical channels. The wireless communication links 122 and 124 may utilize one or more radio access technologies (RATs). Examples of RATs that may be used in the wireless communication links include 3GPP® LTE, 3G, 4G, 5G (such as NR), GSM, Code Division Multiple Access (CDMA), Wideband Code Division Multiple Access (WCDMA®), Worldwide Interoperability for Microwave Access (WiMAX), Time Division Multiple Access (TDMA), and other mobile telephony communication technology cellular RATs. Further examples of RATs that may be used in one or more of the various wireless communication links in the communication system 100 include medium-range protocols such as Wi-Fi, LTE-U, LTE-Direct, LAA, MuLTEfire, and relatively short-range RATs such as ZigBee, Bluetooth, and Bluetooth Low Energy (LE).

[0044] Some wireless networks (e.g., LTE) utilize orthogonal frequency division multiplexing (OFDM) on the downlink and single-carrier frequency division multiplexing (SC-FDM) on the uplink. OFDM and SC-FDM partition the system bandwidth into multiple (K) orthogonal subcarriers, also commonly referred to as tones, bins, etc. Each subcarrier may be modulated with data. In general, modulation symbols are sent in the frequency domain with OFDM and in the time domain with SC-FDM. The spacing between adjacent subcarriers may be fixed, and the total number of subcarriers (K) may be dependent on the system bandwidth. For example, the subcarrier spacing may be 15 kHz, and the minimum resource allocation (called a "resource block") may be 12 subcarriers (or 180 kHz). As a result, the nominal fast file transfer (FFT) size may be equal to 128, 256, 512, 1024, or 2048 for a system bandwidth of 1.25, 2.5, 5, 10, or 20 megahertz (MHz), respectively. The system bandwidth may also be partitioned into subbands. For example, a subband may cover 1.08 MHz (i.e., 6 resource blocks), and there may be 1, 2, 4, 8, or 16 subbands for a system bandwidth of 1.25, 2.5, 5, 10, or 20 MHz, respectively.

[0045] Although the description of some implementations may use terminology and examples related to LTE technology, some implementations may be applicable to other wireless communication systems, such as New Radio (NR) or 5G networks. NR may utilize OFDM with cyclic prefix (CP) on the uplink (UL) and downlink (DL) and may include support for half-duplex operation using time division duplex (TDD). A single component carrier bandwidth of 100 MHz may be supported. An NR resource block may span 12 subcarriers with a subcarrier bandwidth of 75 kHz for a duration of 0.1 milliseconds (ms). Each radio frame may be composed of 50 subframes having a length of 10 ms. As a result, each subframe may have a length of 0.2 ms. Each subframe may indicate a link direction (i.e., DL or UL) for data transmission, and the link direction per subframe may be dynamically switched. Each subframe may include DL / UL data as well as DL / UL control data. Beamforming may be supported, and the beam direction may be dynamically configured. Multiple-input multiple-output (MIMO) transmission with precoding may also be supported. MIMO configurations in the DL may support up to eight transmit antennas with multi-layer DL transmission of up to eight streams and up to two streams per wireless device. Multi-layer transmission with up to two streams per wireless device may be supported.

[0046] Aggregation of multiple cells may be supported with up to eight serving cells. Alternatively, NR may support an air interface other than an OFDM-based air interface.

[0047] Some wireless devices may be considered as machine type communication (MTC) or evolved or extended machine type communication (eMTC) wireless devices. MTC and eMTC wireless devices include, for example, a robot, a drone, a remote device, a sensor, a meter, a monitor, a location tag, etc. that may communicate with a base station, another device (e.g., a remote device), or some other entity. A wireless computing platform may provide, for example, connectivity for or to a network (e.g., a wide area network such as the Internet or a cellular network) via a wired or wireless communication link. Some wireless devices may be considered as Internet of Things (IoT) devices or may be implemented as NB-IoT (narrowband Internet of Things) devices. The wireless devices 120a-120e may be included within a housing that houses components of the wireless devices 120a-120e, such as a processor component, a memory component, similar components, or a combination thereof.

[0048] In general, any number of communication systems and any number of wireless networks may be deployed in a given geographic area. Each communication system and wireless network may support a particular radio access technology (RAT) and may operate on one or more frequencies. The RAT may also be referred to as a radio technology, an air interface, etc. The frequencies may also be referred to as a carrier, a frequency channel, etc. Each frequency may support a single RAT in a given geographic area to avoid interference between communication systems of different RATs. In some cases, 4G / LTE and / or 5G / NR RAT networks may be deployed. For example, a 5G non-standalone (NSA) network may utilize both a 4G / LTE RAT on the 4G / LTE RAN side of the 5G NSA network and a 5G / NR RAT on the 5G / NR RAN side of the 5G NSA network. Both the 4G / LTE RAN and the 5G / NR RAN may connect to each other and to a 4G / LTE core network (e.g., an evolved packet core (EPC) network) within the 5G NSA network. Other example network configurations may include a 5G Standalone (SA) network in which a 5G / NR RAN connects to a 5G core network.

[0049] In some implementations, two or more wireless devices (e.g., shown as wireless device 120a and wireless device 120e) may communicate directly (e.g., without using base station 110a-110d as an intermediary to communicate with each other) using one or more sidelink channels. For example, wireless devices 120a-120e may communicate using peer-to-peer (P2P) communication, device-to-device (D2D) communication, vehicle-to-everything (V2X) protocols (which may include vehicle-to-vehicle (V2V) protocols, vehicle-to-infrastructure (V2I) protocols, or similar protocols), mesh networks, or similar networks, or combinations thereof. In this case, wireless devices 120a-120e may perform scheduling operations, resource selection operations, and other operations described elsewhere herein as being performed by base stations 110a-110d.

[0050] FIG. 2 is a component block diagram of an exemplary computing device 200 suitable for implementing any of the various embodiments. With reference to FIGS. 1-2, the computing device 200 may include a first system-on-chip (SOC) processor 202 (e.g., a SOC-CPU, etc.) coupled to a second SOC 204 (e.g., a 5G-enabled SOC, etc.). The first SOC 202 and the second SOC 204 may be coupled to internal memories 206, 216, a display 212, and a speaker 214. In addition, the computing device 200 may include an antenna 218 for transmitting and receiving electromagnetic radiation, which may be connected to a wireless data link and / or wireless transceiver 208 coupled to one or more processors in the first SOC 202 and / or the second SOC 204. The one or more processors may be configured to determine a signal strength level of a signal received by the antenna 218. The computing device 200 may also include a menu selection button or rocker switch 220 for receiving user input. In addition, soft virtual buttons may be presented on the display 212 for receiving user input.

[0051] The computing device 200 may also include a voice encoding / decoding (codec) circuit 210 that digitizes sound received from the microphone into data packets suitable for wireless transmission and decodes the received sound data packets to generate analog signals that are provided to a speaker to generate sound. One or more of the processors, wireless transceiver 208, and codec 210 in the first SOC 202 and second SOC 204 may also include digital signal processor (DSP) circuitry (not shown separately). The computing device 200 may also include one or more light sensors 222, such as a camera. The light sensor 222 may be coupled to one or more processors in the first SOC 202 and / or second SOC 204 to control operation of and receive information (e.g., images, videos, etc.) from the light sensor 222.

[0052] The processors (e.g., SOCs 202, 204) of the computing device 200 may be any programmable microprocessor, microcomputer, or one or more multi-processor chips that may be configured by software instructions (applications) to perform various functions, including those of the various embodiments described below. In some wireless devices, multiple processors may be provided, such as one processor in SOC 204 dedicated to wireless communication functions and one processor in SOC 202 dedicated to running other applications. In general, software applications including processor-executable instructions may be stored in a non-transitory processor-readable storage medium, such as memory 206, 216, before the processor-executable instructions are accessed and loaded into the processor. The processors 202, 204 may include sufficient internal memory to store the application software instructions. The mobile devices 102a-102e may also include a light sensor, such as a camera (not shown).

[0053] FIG. 3 is a component block diagram illustrating an exemplary computing system 300 architecture suitable for implementing any of the various embodiments. With reference to FIGS. 1-3, the various embodiments may be implemented on a number of single-processor and multi-processor computer systems, including systems on chips (SOCs) or systems in packages (SIPs). The computing system 300 may include two SOCs 302, 304, a clock 306, and a voltage regulator 308. In some embodiments, the first SOC 302 operates as a central processing unit (CPU) of a wireless device, implementing the instructions of a software application program by performing arithmetic, logic, control, and input / output (I / O) operations specified by the instructions. In some embodiments, the second SOC 304 may operate as a dedicated processing unit. For example, the second SOC 304 may operate as a dedicated 5G processing unit responsible for managing high-capacity, high-speed (e.g., 5 Gbps, etc.), and / or very short wavelength (e.g., 28 GHz mmWave spectrum, etc.) communications.

[0054] The first SOC 302 may include a digital signal processor (DSP) 310, a modem processor 312, a graphics processor 314, an application processor 316, one or more coprocessors 318 (such as a vector coprocessor) connected to one or more of the processors, memory 320, custom circuitry 322, system components and resources 324, an interconnect / bus module 326, one or more temperature sensors 330, a thermal management unit 332, and a thermal power envelope (TPE) component 334. The second SOC 304 may include a 5G modem processor 352, a power management unit 354, an interconnect / bus module 364, multiple mmWave transceivers 356, memory 358, and various additional processors 360, such as application processors, packet processors, etc.

[0055] Each processor 310, 312, 314, 316, 318, 352, 360 may include one or more cores, and each processor / core may perform operations independent of the other processors / cores. For example, the first SOC 302 may include a processor that runs a first type of operating system (e.g., FreeBSD, LINUX, OS X, etc.) and a processor that runs a second type of operating system (e.g., MICROSOFT WINDOWS 10). Additionally, any or all of the processors 310, 312, 314, 316, 318, 352, 360 may be included as part of a processor cluster architecture (e.g., a synchronous processor cluster architecture, an asynchronous or heterogeneous processor cluster architecture, etc.).

[0056] The first SOC 302 and the second SOC 304 may include various system components, resources, and custom circuits for managing sensor data, analog-to-digital conversion, wireless data transmission, and performing other specialized operations, such as processing encoded audio and video signals for decoding data packets and rendering in a web browser. For example, the system components and resources 324 of the first SOC 302 may include power amplifiers, voltage regulators, oscillators, phase-locked loops, peripheral bridges, data controllers, memory controllers, system controllers, access ports, timers, and other similar components used to support processors and software clients running on the wireless devices. The system components and resources 324 and / or custom circuits 322 may also include circuits for interfacing with peripheral devices, such as cameras, electronic displays, wireless communication devices, external memory chips, etc.

[0057] The first SOC 302 and the second SOC 304 may communicate via an interconnect / bus module 350. The various processors 310, 312, 314, 316, 318 may be interconnected to one or more memory elements 320, system components and resources 324, and custom circuitry 322, as well as a thermal management unit 332, via an interconnect / bus module 326. Similarly, the processor 352 may be interconnected to a power management unit 354, an mmWave transceiver 356, a memory 358, and various additional processors 360, via an interconnect / bus module 364. The interconnect / bus modules 326, 350, 364 may include arrays of reconfigurable logic gates and / or implement a bus architecture (e.g., CoreConnect, AMBA, etc.). Communication may occur by advanced interconnects such as high-performance networks on chips (NoCs).

[0058] The first SOC 302 and / or the second SOC 304 may further include input / output modules (not shown) for communicating with resources external to the SOC, such as a clock 306 and a voltage regulator 308. Resources external to the SOC (e.g., clock 306, voltage regulator 308) may be shared by two or more of the internal SOC processors / cores.

[0059] Various embodiments may be implemented in a wide variety of computing systems in addition to the exemplary computing system 300 described above, which may include a single processor, multiple processors, multi-core processors, or any combination thereof.

[0060] 4 is a conceptual diagram illustrating aspects of a method 400 for presenting facial expressions in a virtual conference, according to various embodiments. With reference to FIGS. 1-4, a computing device 402 may be configured to participate in a virtual conference 430 via a communications network or system (aspects of which are discussed above with respect to communications system 100). In some embodiments, the virtual conference 430 may include one or more avatars 432, 434 of various users, each of which may participate via a computing device, such as computing device 402.

[0061] Computing device 402 may include one or more image sensors, such as a camera 404, and one or more audio sensors, such as a microphone 406. Camera 404 may be directed to capture an image, such as an image of a user's face 410. Microphone 406 may capture one or more expressive sounds 412 of the user.

[0062] The computing device 402 may be configured to detect a facial expression of the user based on information received from a sensor of the computing device 402, such as the camera 404 and / or the microphone 406. The computing device 402 may be further configured to generate a representation of the user's facial expression 420. In some embodiments, the representation of the user's facial expression 420 may include one or more images that may be presented on or incorporated into the user's avatar 432 in the virtual conference 430. In some embodiments, the representation of the user's facial expression 420 may include one or more instructions that a device hosting or executing the virtual conference 430 may process to present the user's facial expression on an avatar in the virtual conference 430. The representation of the user's facial expression 420 may be presented on an avatar in the virtual conference 430 in a manner perceivable by other participants in the virtual conference 430 (e.g., associated with the avatar 434).

[0063] The computing device 402 may also be configured to generate a representation of the expressive speech 422. In various embodiments, the representation of the expressive speech 422 may be an audio file, a digital bitstream, or another suitable representation. In some embodiments, the representation of the expressive speech 422 may be presented in the virtual conference 430 in conjunction with a representation of the user's facial expressions 420.

[0064] As described further below, the computing device 402 may be configured to determine whether the detected user's facial expression is approved or not approved for presentation in the virtual meeting 430. In some embodiments, the computing device 402 may be configured to present the detected user's facial expression for approval by the user. For example, the computing device 402 may be configured to generate a prompt 412 that the computing device 402 may display on an avatar on a display device, such as a screen, for example. The prompt may include one or more user interface elements that allow a user to provide input approving or not approving / rejecting the facial expression for presentation on the avatar in the virtual meeting 430. In response to receiving an input approving or not approving the user's facial expression for presentation, the computing device 402 may store an indication that the user's facial expression is approved or not approved for rendering on the avatar. In some embodiments, if the detected facial expression is preset as approved or not approved for presentation on the avatar, the computing device may update the preset in response to a user input that differs from the preset. In this manner, the computing device 402 may learn and / or tune the list of permitted or acceptable facial expressions and / or the list of unacceptable facial expressions through user interaction.

[0065] Further, the computing device 402 may learn to automatically determine whether to display a virtual facial expression without prompting the user to respond. In some embodiments, the detected facial expression may be one that the user has previously approved or not approved for presentation on the avatar 432 in the virtual meeting 430. In such embodiments, the computing device 402 may bypass or not present the prompt 412 and proceed to transmit a representation of the user's facial expression 420 that is approved for presentation on the avatar 432 in the virtual meeting 430. In some embodiments, the computing device 402 may determine that the detected facial expression was not previously approved or was previously rejected by the user. In such embodiments, the computing device 402 may generate a representation of the facial expression that is approved or has been approved for presentation on the avatar 432 in the virtual meeting 430.

[0066] 5 is a process flow diagram illustrating a method 500 for presenting facial expressions in a virtual meeting, according to various embodiments. With reference to FIGS. 1-5, the method 500 may be implemented by a processor (e.g., 202, 204, 310-318, 352, 360) of a computing device (e.g., 120a-120e, 200, 404).

[0067] At block 502, the processor may detect a facial expression of the user based on information received from a sensor of the computing device. In some embodiments, the processor may detect a facial expression of the user based on information received from a camera (e.g., camera 404) of the computing device. In some embodiments, the processor may detect a facial expression of the user based on information received from a microphone (e.g., microphone 406) of the computing device. In some embodiments, the processor may detect an expressive voice of the user and use the expressive voice in detecting the facial expression of the user.

[0068] At decision block 504, the processor may determine whether the detected user's facial expression is approved for presentation on an avatar in the virtual meeting. In some embodiments, the processor may determine whether the detected user's facial expression has been previously approved for presentation on an avatar in the virtual meeting. In some embodiments, the processor may determine whether the detected user's facial expression is included within a list of pre-approved or pre-unapproved facial expressions, such as a default or preset list. In some embodiments, the processor may determine whether the detected user's facial expression is approved for presentation on an avatar in the virtual meeting based on the user's expressive voice. In some embodiments, the expressive voice may be correlated or associated with the facial expression.

[0069] In response to a determination that the detected user's facial expression is not approved for presentation on an avatar in the virtual conference (i.e., decision block 504="No"), the processor may generate an avatar in block 506 that represents a facial expression that is approved for presentation but is different from the detected user's facial expression. In some embodiments, the processor may generate an avatar that represents a recent expression approved for presentation on the user's conference avatar. In some embodiments, the processor may generate an avatar that represents a most recently approved user's facial expression. In some embodiments, the processor may generate an avatar that represents a most recently approved user's facial expression that matches or is closest to the detected user's facial expression. In some embodiments, the processor may maintain the facial expression that was rendered on the avatar prior to detecting the user's facial expression, in other words, continue to present the currently presented avatar.

[0070] In response to a determination that the detected user's facial expression is approved for presentation on an avatar in the virtual meeting (i.e., decision block 504 = "Yes"), the processor may generate an avatar representing a facial expression that matches the detected user's facial expression.

[0071] Following execution of the operations of blocks 506 or 508, the processor may, at optional block 510, store in memory an indication that the avatar representing the user's facial expression is approved or not approved in response to receiving an input on a user interface of the computing device indicating that the user's facial expression is approved or not approved for presentation in the virtual conference.

[0072] At block 512, the processor may present an avatar with the generated representation of the user's facial expression in the virtual conference. For example, the processor may send a representation of the user's facial expression 420 for rendering on the user's avatar 432 in the virtual conference 430.

[0073] At optional block 514, the processor may render a representation of the user's expressive voice in the virtual conference in conjunction with presenting the generated avatar in the virtual conference (i.e., presenting the generated avatar with a representation of the user's facial expression). For example, the processor may render a representation of the expressive voice 422 in the virtual conference (e.g., 430) in conjunction with presenting the generated avatar in the virtual conference.

[0074] The processor may periodically or continuously perform method 500 by detecting the user's next facial expression in block 502 and performing the operations of blocks 504-512, again as described through the virtual conference.

[0075] 6A and 6B illustrate operations 600a and 600b that may be performed as part of a method 500 for presenting facial expressions in a virtual conference, according to various embodiments. With reference to FIGS. 1-6B, operations 600a and 600b may be implemented by a processor (e.g., 202, 204, 310-318, 352, 360) of a computing device (e.g., 120a-120e, 200, 404).

[0076] 6A, following execution of the operations of block 502 (FIG. 5), the processor may render an avatar representing a facial expression matching the detected facial expression of the user on a user interface configured to receive approval or rejection by the user in block 602. For example, the processor may generate a prompt (e.g., 412) configured to receive input for a user interface element approving or disapproving of the presented avatar's facial expression.

[0077] At decision block 602, the processor may determine whether input has been received in response to the user interface approving or rejecting the presented avatar's facial expression.

[0078] In response to receiving input rejecting the presented avatar's facial expression (ie, decision block 604 = "Reject"), the processor may perform the operations of block 506 of method 500 as described.

[0079] In response to receiving input approving the facial expression (ie, decision block 604 = "Approve"), the processor may perform the operations of block 508 of method 500 as described.

[0080] If there is no responsive input to the user interface within a threshold (TH) time period (i.e., decision block 604="No Response in TH Time Period"), the processor may perform a default action at block 606. In some embodiments, the processor may determine that the presented avatar's facial expression is approved for use in the virtual conference if there is no responsive input to the user interface within the threshold time period and perform the operations of block 508 as described. In some embodiments, the processor may determine that the presented avatar's facial expression is not approved for use in the virtual conference if there is no responsive input to the user interface within the threshold time period and perform the operations of block 506 as described.

[0081] Referring to FIG. 6B, following execution of the operations of block 502 of method 500, in some embodiments, the processor may update the preset list based on the user's input to approve or reject / disapprove facial expressions for presentation on the user's avatar in the virtual meeting.

[0082] For example, in block 610, the processor may determine that the presented avatar's facial expression is stored in a preset list as being approved or not approved.

[0083] In block 612, the processor may render an avatar representing a facial expression matching the detected facial expression of the user on a user interface configured to receive approval or rejection by the user. For example, the processor may present prompt 412 on the display.

[0084] At block 614, the processor may update the preset list of approved or disapproved avatar facial expressions in response to receiving input different from the preset list indicating that the user's facial expression is approved or disapproved for presentation in the virtual meeting.

[0085] The various embodiments shown and described are provided merely as examples to illustrate various features of the claims. However, features shown and described with respect to any given embodiment are not necessarily limited to the associated embodiment, and may be used with or combined with other embodiments shown and described. Furthermore, the claims are not limited by any one exemplary embodiment. For example, one or more of the methods and operations methods 500, 600a, and 600b may be substituted for or combined with one or more operations of methods 500, 600a, and 600b.

[0086] Example implementations are described in the following paragraphs. Some of the example implementations are described in terms of example methods, however, further example implementations may include the example methods described in the following paragraphs implemented by a computing device including a processor configured with processor-executable instructions to perform the operations of the methods of the following implementations, the example methods described in the following paragraphs implemented by a computing device including means for performing the functions of the methods of the following implementations, and the example methods described in the following paragraphs that may be implemented as a non-transitory processor-readable storage medium having stored thereon processor-executable instructions configured to cause a processor of a computing device to perform the operations of the methods of the following implementations.

[0087] Example 1. A method executed by a processor of a computing device for presenting facial expressions on an avatar in a virtual meeting, the method including: detecting a facial expression of a user based on information received from a sensor of the computing device, determining whether the detected user's facial expression is approved for presentation on the avatar in the virtual meeting, generating an avatar representing a facial expression consistent with the detected user's facial expression in response to determining that the detected user's facial expression is approved for presentation on the avatar in the virtual meeting, and presenting the generated avatar in the virtual meeting.

[0088] Example 2. The method of Example 1, further comprising, in response to determining that the detected facial expression of the user is not approved for presentation on the avatar in the virtual conference, continuing to present the currently presented avatar.

[0089] Example 3. The method of Example 1, further comprising, in response to determining that the detected user's facial expression is not approved for presentation on the avatar in the virtual conference, generating an avatar that represents a facial expression that is approved for presentation on the avatar in the virtual conference but that differs from the detected user's facial expression.

[0090] Example 4. The method of any of Examples 1-3, wherein in response to determining that the detected user's facial expression is not approved for presentation on the avatar in the virtual conference, generating an avatar representing a facial expression approved for presentation on the avatar in the virtual conference but different from the detected user's facial expression includes generating an avatar representing a recent expression approved for presentation.

[0091] Example 5. The method of any of Examples 1-4, wherein detecting a facial expression of the user based on information received from a sensor of the computing device includes detecting a facial expression of the user based on information received from an image sensor of the computing device.

[0092] Example 6. The method of any of Examples 1-5, wherein determining whether the detected user's facial expression is approved for presentation on an avatar in the virtual conference includes determining whether the user's facial expression has been previously approved for presentation on an avatar in the virtual conference, and presenting the generated avatar in the virtual conference includes, in response to a determination that the user's facial expression has been previously approved for presentation on an avatar in the virtual conference, presenting the generated avatar in the virtual conference representing the previously approved facial expression.

[0093] Example 7. The method of any of Examples 1-6, wherein determining whether the detected user's facial expression is approved for presentation on an avatar in the virtual conference includes rendering an avatar representing a facial expression matching the detected user's facial expression on a user interface configured to receive approval or rejection by the user, and determining that the detected user's facial expression is approved in response to receiving an input on a user interface of the computing device indicating that the user's facial expression is approved for presentation in the virtual conference.

[0094] Example 8. The method of Example 7, further comprising determining that the detected user's facial expression is approved for presentation on the avatar in the virtual meeting if there is no responsive input into the user interface within a threshold time period.

[0095] Example 9. The method of any of Examples 1-8, further comprising, in response to receiving an input on a user interface of the computing device indicating that the detected user's facial expression is or is not approved for presentation on the avatar in the virtual conference, storing in the memory an indication that the avatar displaying a facial expression matching the detected user's facial expression is or is not approved for presentation in the virtual conference.

[0096] Example 10. The method of any of Examples 1-9, wherein determining whether the detected user's facial expression is approved for presentation on an avatar in the virtual conference includes determining that the detected user's facial expression is stored in a preset list as approved or not approved, rendering an avatar representing a facial expression matching the detected user's facial expression on a user interface configured to receive an approval or rejection by the user, and updating the preset list in response to receiving input different from the preset list indicating that the user's facial expression is approved or not approved for presentation on an avatar in the virtual conference.

[0097] Example 11. The method of any of Examples 1-10, wherein determining whether the detected facial expression of the user is approved for presentation on an avatar in the virtual conference includes determining whether the detected facial expression of the user is approved for presentation on an avatar in the virtual conference based on an expressive voice of the user.

[0098] Example 12. The method of any of Examples 1-11, wherein presenting the generated avatar in the virtual conference includes rendering a representation of the user's expressive voice in the virtual conference in conjunction with presenting the generated avatar in the virtual conference.

[0099] The above method descriptions and process flow diagrams are provided as illustrative examples only and do not require or imply that the operations of the various embodiments must be performed in the order presented. As will be appreciated by one of ordinary skill in the art, the order of operations in the above-described embodiments may be performed in any order. Terms such as "then," "then," and "next" do not limit the order of operations, but rather these terms are used to guide the reader through the method descriptions. Additionally, any reference to claim elements in the singular, for example using the articles "a," "an," or "the," should not be construed as limiting the element to the singular.

[0100] The various exemplary logic blocks, modules, components, circuits, and algorithmic operations described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or a combination of both. To clearly illustrate this interchangeability of hardware and software, the various exemplary components, blocks, modules, circuits, and operations have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. Those skilled in the art may implement the described functionality in various ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the claims.

[0101] The hardware used to implement the various example logic, logic blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed using general purpose processors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs) or other programmable logic devices, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but alternatively, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of receiver smart objects, e.g., a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Alternatively, some operations or methods may be performed by circuitry specific to a given function.

[0102] In one or more embodiments, the described functions may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored as one or more instructions or codes on a non-transitory computer-readable or processor-readable storage medium. The operations of the methods or algorithms disclosed herein may be embodied in a processor-executable software module or processor-executable instructions that may reside on a non-transitory computer-readable or processor-readable storage medium. A non-transitory computer-readable or processor-readable storage medium may be any storage medium that may be accessed by a computer or processor. By way of example and not limitation, such a non-transitory computer-readable or processor-readable storage medium may include RAM, ROM, EEPROM, FLASH memory, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage smart objects, or any other medium that may be used to store desired program code in the form of instructions or data structures and that may be accessed by a computer. As used herein, disk and disc include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc, where disks typically reproduce data magnetically and discs reproduce data optically using lasers. Combinations of the above are also included within the scope of non-transitory computer-readable media and non-transitory processor-readable media. Additionally, operations of a method or algorithm may exist as one or any combination or set of code and / or instructions on a non-transitory processor-readable storage medium and / or a non-transitory computer-readable storage medium, which may be incorporated into a computer program product.

[0103] The foregoing description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the claims. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments without departing from the scope of the claims. Thus, the present disclosure is not intended to be limited to the embodiments shown herein, but is to be accorded the widest scope consistent with the following claims and the principles and novel features disclosed herein. [Explanation of symbols]

[0104] 100 Communication Systems 102a Macrocell, Mobile Device 102b Picocell, Mobile Device 102c Femtocell, Mobile Device 102d Mobile Devices 102e Mobile Devices 110a Base station (BS), macro base station 110b Base Station (BS) 110c Base Station (BS) 110d Base station (BS), relay BS 120a~120e Wireless Devices 122 Wireless Communication Links 124 Wireless Communication Links 126 Wired or Wireless Communications Links 130 Network Controller 140 Core Network 200 computing devices 202 first SOC processor, SOC, processor 204 Second System-on-Chip (SOC), Processor 206 Internal memory, memory 208 Wireless Transceiver 210 Voice encoding / decoding (codec) circuit 212 Display 214 Speakers 216 Internal memory, memory 218 Antenna 220 Menu selection button or rocker switch 222 Optical Sensor 300 Computing Systems 302 SOC, 1st SOC 304 SOC, 2nd SOC 306 Clock 308 Voltage Regulator 310 Digital signal processor (DSP), processor, 312 Modem Processor, Processor 314 Graphics Processor, Processor 316 Application Processor, Processor 318 Coprocessor, Processor 320 Memory, memory elements 322 Custom Circuit 324 System Components and Resources 326 Interconnect / Bus Modules 330 Temperature Sensor 332 Thermal Management Unit 334 Thermal Power Envelope (TPE) Components 350 Interconnect / Bus Modules 352 5G modem processor, processor 354 Power Management Unit 356 mmWave Transceiver 358 Memory 360 Processor 364 Interconnect / Bus Modules 400 ways 402 Computing Devices 404 Camera 406 Microphone 410 User's Face 412 Expressive Voice, Prompts 420 User's Facial Expressions 422 Expressive Speech 430 Virtual Meetings 432 Avatar 434 Avatar 500 ways 600a operation 600b operation

Claims

1. 1. A method executed by a processor of a computing device for presenting facial expressions on an avatar in a virtual meeting, comprising: detecting a facial expression of a user based on information received from a sensor of the computing device; determining whether the detected facial expression of the user has been previously approved for presentation on an avatar in a virtual meeting; generating an avatar that is approved for presentation on an avatar in the virtual conference but that represents a different facial expression than the detected user's facial expression in response to determining that the detected user's facial expression was not previously approved for presentation on an avatar in the virtual conference; generating an avatar exhibiting a facial expression matching the detected user's facial expression in response to determining that the detected user's facial expression has been previously approved for presentation on an avatar in the virtual conference; presenting the generated avatar in the virtual meeting; A method comprising:

2. The method of claim 1, wherein in response to a determination that the detected user's facial expression was not previously approved for presentation on an avatar in a virtual conference, the step of generating an avatar representing a facial expression that is approved for presentation on an avatar in the virtual conference but that is different from the detected user's facial expression includes the step of continuing to present the currently presented avatar.

3. 2. The method of claim 1, wherein in response to a determination that the detected user's facial expression was not previously approved for presentation on an avatar in a virtual conference, generating an avatar representing a facial expression approved for presentation on an avatar in the virtual conference but different from the detected user's facial expression comprises generating an avatar representing a recent expression approved for presentation.

4. 2. The method of claim 1, wherein detecting a facial expression of the user based on information received from a sensor of the computing device comprises detecting a facial expression of the user based on information received from an image sensor of the computing device.

5. determining whether the detected facial expression of the user is approved for presentation on an avatar in a virtual meeting, rendering an avatar on a user interface configured to receive approval or rejection by the user, the avatar exhibiting a facial expression matching the detected facial expression of the user; determining that the detected user's facial expression is approved in response to receiving an input on a user interface of the computing device indicating that the user's facial expression is approved for presentation in the virtual conference; The method of claim 1 , further comprising the step of:

6. determining that the detected user's facial expression is approved for presentation on an avatar in the virtual meeting if there is no responsive input to the user interface within a threshold time period.

6. The method of claim 5, further comprising:

7. responsive to receiving an input on a user interface of the computing device indicating that the detected user's facial expression is or is not approved for presentation on an avatar in a virtual conference, storing in memory an indication that an avatar displaying a facial expression matching the detected user's facial expression is or is not approved for presentation in the virtual conference. The method of claim 1, further comprising:

8. determining whether the detected facial expression of the user has been previously approved for presentation on an avatar in a virtual meeting; determining that the detected facial expression of the user is stored in a preset list as approved or disapproved; rendering an avatar on a user interface configured to receive approval or rejection by the user, the avatar exhibiting a facial expression matching the detected facial expression of the user; updating the preset list in response to receiving an input different from the preset list indicating that the user's facial expression is or is not approved for presentation on an avatar in the virtual conference; 2. The method of claim 1, comprising:

9. 10. The method of claim 1, further comprising the step of determining whether the detected user's facial expression is approved for presentation on an avatar in a virtual conference, comprising the step of determining whether the detected user's facial expression is approved for presentation on an avatar in the virtual conference based on an expressive voice of the user.

10. 2. The method of claim 1, wherein the step of presenting the generated avatar at the virtual conference includes the step of rendering a representation of an expressive voice of the user at the virtual conference in conjunction with presenting the generated avatar at the virtual conference.

11. 1. A computing device comprising: means for detecting a facial expression of a user based on information received from a sensor of the computing device; means for determining whether the detected facial expression of the user has been previously approved for presentation on an avatar in a virtual meeting; means for generating an avatar representing a facial expression approved for presentation on an avatar in the virtual conference but different from the detected user's facial expression in response to determining that the detected user's facial expression was not previously approved for presentation on an avatar in the virtual conference; means for generating an avatar exhibiting a facial expression matching the detected user's facial expression in response to determining that the detected user's facial expression has been previously approved for presentation on an avatar in the virtual conference; means for presenting the generated avatar in the virtual conference; a computing device comprising:

12. The computing device of claim 11, wherein in response to a determination that the detected user's facial expression was not previously approved for presentation on an avatar in the virtual conference, generating an avatar representing a facial expression that is approved for presentation on an avatar in the virtual conference but that differs from the detected user's facial expression includes continuing to present the currently presented avatar.

13. 12. The computing device of claim 11, wherein in response to a determination that the detected user's facial expression is not approved for presentation on an avatar in the virtual conference, the means for generating an avatar representing a facial expression approved for presentation on an avatar in the virtual conference but different from the detected user's facial expression comprises means for generating an avatar representing a recent expression approved for presentation.

14. The computing device of claim 11, further comprising means for executing a method according to any one of claims 1 to 10.

15. A non-transitory processor-readable storage medium having stored thereon processor-executable instructions, the instructions causing a processor of a computing device to perform a method according to any one of claims 1 to 10.