Method and apparatus for voice enrolling an electronic computing device

A method and apparatus for voice enrolling an electronic computing device includes a networked server configured to receive voice data over a first communication connection from a first electronic computing device, wherein the voice data comprises a user-specific launch phrase spoken by a user. The networked server is further configured to receive an indication of a second electronic computing device to voice enroll and to initiate voice enrollment of the second electronic computing device over a second communication connection using the voice data.

FIELD OF THE DISCLOSURE

The present disclosure relates generally to enabling voice operation of an electronic computing device and more particularly to a server initiating voice enrollment of the electronic computing device over a communication connection.

BACKGROUND

As electronic computing devices evolve in their functionality and sophistication, voice becomes a more popular mode of operation. Voice provides a convenient way to interact with devices without having to navigate hierarchical menu structures or graphics objects presented on displays. To effectively use voice to control a device, the device is voice enrolled to recognize a user speaking a launch phrase. Training the device to recognize the launch phrase spoken by the user allows the device to respond to the user's voice commands without responding to or granting access to unauthorized persons.

Voice enrolling a device by the traditional means of speaking into a microphone of the device is complicated by a need to meet a variety of conditions. The environment in which the device is trained, for example, must oftentimes be relatively free of ambient noise. Further, the user must usually speak clearly, without speaking too loudly or too softly. In repeating a launch phrase during training, the user must in some instances exercise care to speak the launch phrase in the same way each time it is spoken. Some users have a tendency to speak to devices in a “robotic” voice rather than their natural speaking voice. Structural objects can also affect the voice enrollment of devices. If a device is on a tabletop or too close to a wall, for instance, reflected sound can create an acoustic echo that interferes with the proper voice training of the device.

Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present teachings. In addition, the description and drawings do not necessarily require the order presented. It will be further appreciated that certain actions and/or steps may be described or depicted in a particular order of occurrence while those skilled in the art will understand that such specificity with respect to sequence is not actually required.

DETAILED DESCRIPTION

Generally speaking, pursuant to various embodiments described herein, the present disclosure provides a method and apparatus for voice enrolling an electronic computing device. More specifically, a networked server sends voice data of a user over a communication connection to initiate voice enrollment of the electronic computing device. The voice enrollment of the electronic computing device, for example, voice enables a user-specific launch phrase for a voice-activated application programmed on the electronic computing device.

In accordance with the teachings herein, a method performed by a networked server includes receiving voice data over a first communication connection from a first electronic computing device. The voice data represents a user speaking a user-specific launch phrase. The method further includes receiving an indication of a second electronic computing device to voice enroll and initiating voice enrollment of the second electronic computing device over a second communication connection using the voice data.

Also in accordance with the teachings herein is a networked server configured to facilitate voice enrolling an electronic computing device. The networked server includes at least one communication interface configured to establish a first communication connection with a first electronic computing device and to establish a second communication connection with a second electronic computing device. The networked server additionally includes a processing element operatively coupled to the at least one communication interface. The processing element is configured to receive voice data over the first communication connection from the first electronic computing device, wherein the voice data represents a user-specific launch phrase spoken by a user. The processing element is further configured to receive an indication of the second electronic computing device to voice enroll and to initiate voice enrollment of the second electronic computing device over the second communication connection using the voice data.

In a first embodiment, the networked server further includes non-volatile storage operatively coupled to the processing element. The non-volatile storage is configured to store the voice data so the stored voice data is associated with the user.

In a second embodiment, the networked server further includes an audio encoding module operatively coupled to the processing element. The audio encoding module is configured to encode and/or transcode the voice data in accordance with one or both of a hardware characteristic or a software characteristic of the second electronic computing device.

In a third embodiment, the networked server further includes an audio configuration module operatively coupled to the processing element. The audio configuration module is configured to modify an acoustic characteristic of the voice data in accordance with a hardware difference and/or a software difference between the first electronic computing device and the second electronic computing device.

A networked server, also referred to simply as a server, is an electronic device connected to a communication network which allows the server to communicatively connect with a remotely located electronic computing device and to initiate voice enrollment of another electronic computing device. An electronic computing device, also referred to simply as a device, is any electronic device that can be voice enrolled and/or that can send an indication to a server of another device to voice enroll. Electronic computing devices include, but are not limited to, smartphones, tablets, phablets, laptops, home computers, personal digital assistants, enterprise digital assistants, gaming devices, portable media devices, streaming devices, smart televisions, and television interfacing devices.

Voice enrolling an electronic computing device means to voice enable a user-specific launch phrase, also referred to as a trigger phrase, on the device. When voice enrolled, for example, the device will take a programmed action in response to detecting a user speaking the launch phrase. In another embodiment, the device detecting the user speaking the launch phrase places the device in a mode to detect and/or process additional voice input. The device launches an application, for instance, upon detecting the launch phrase, whereby the application is configured for voice operation.

In different embodiments, the launch phrase includes one or more words spoken in one or more languages. The phrase “Achtung Smartphone” for instance, is a two-word launch phrase with the first word spoken in German and the second word spoken in English. In other embodiments, the launch phrase is made up partially or completely by uttered sounds or phonemes that do not represent defined words in any spoken language.

A user-specific launch phrase is a launch phrase that is individualized for a user. In a first embodiment, an electronic computing device recognizes a generic or default launch phrase when a user of the device speaks the generic launch phrase in his or her own voice. The device does not recognize the launch phrase when it is spoken by another person. In a second embodiment, the device recognizes a custom launch phrase created by the user. In a third embodiment, the device recognizes the custom launch phrase only if it is spoken by the user.

FIG. 1shows a block diagram100of a networked server102, which is referred to in describing included embodiments. The server102is shown with a number of components, namely: a processing element104; a voice enrollment module106, which includes an audio encoding module172and an audio configuration module174; memory108; non-volatile storage110; a power supply112; and two communication interfaces114,116. A bus118operationally interconnects the components104,106,108,110,112,114,116,172,174. The first communication interface114is shown supporting a first communication connection162communicatively coupling a first device152to the server102via the Internet140. The second communication interface116is shown supporting a second communication connection164communicatively coupling a second device156to the server102via the Internet140.

The components104,106,108,110,112,114,116,118,172,174enable the server102to function in accordance with described embodiments. In other embodiments, servers having similar components are used to perform the functionality described herein with respect to the server102. A limited number of device components104,106,108,110,112,114,116,118,172,174are shown within the server102for ease of illustration. Other embodiments may include a lesser or greater number of components in the server102. Another networked server, for example, may have a single communication interface that supports multiple communication connections for communicatively coupling with multiple devices. Moreover, other components needed for a commercial embodiment of a networked server that incorporates the components104,106,108,110,112,114,116,118,172,174shown for the server102are omitted fromFIG. 1for clarity in describing the enclosed embodiments.

The processing element104, for instance, includes arithmetic logic and control circuitry necessary to perform the digital processing, in whole or in part, for the server102to initiate voice enrollment of an electronic computing device in accordance with described embodiments. For one embodiment, the processing element104represents a primary microprocessor, also referred to as a central processing unit (CPU), of the server102. For example, the processing element104can represent an application processor or an application-specific integrated circuit (ASIC). In another embodiment, the processing element104is an ancillary processor, separate from the CPU, wherein the ancillary processor is dedicated to providing the processing capability, in whole or in part, needed for the components104,106,108,110,112,114,116,118,172,174of the server102to perform at least some of their intended functionality.

The memory108provides storage of electronic data used by the processing element104in performing its functionality. For example, the processing element104can use the memory108to load programs and/or store files associated with initiating voice enrollment of an electronic computing device. In one embodiment, the memory108represents random access memory (RAM). In other embodiments, the memory108represents cache memory.

The non-volatile storage110provides the server102with long-term storage for voice data, metadata, applications, and other types of data used by the server102in performing the methods described herein. Voice data received by the server102, for instance, can be stored for a period of days or years when the processor104is not using the voice data or when the processor104is powered down. For particular embodiments, the server102uses magnetic (e.g., hard drive) and/or solid state (e.g., flash memory) storage devices. In an embodiment, a portion of the non-volatile storage110is removable. For example, the server102uses a micro secure digital (microSD) card to store data files associated with voice enrolling an electronic computing device.

The voice enrollment module (VEM)106includes hardware used by the server102while the processing element104is executing algorithms and/or programs directed to initiating the voice enrollment of an electronic computing device. Further, the VEM106may be co-located with the processing element104, or implemented separately, as shown inFIG. 1.

In some embodiments, the VEM106changes an encoding characteristic of received voice data. In one instance, the VEM106includes hardware for encoding the voice data. In another instance, the VEM106includes hardware for transcoding the voice data. In both instances, for example, the encoding or transcoding is done using the audio encoding module172.

In other embodiments, the VEM106changes an acoustic characteristic of the voice data. For instance, the VEM106includes signal processing hardware for altering the tonal, spectral, or spatial characteristics of the received voice data. The signal processing hardware for one embodiment is included in the audio configuration module174. Changing the encoding and/or acoustic characteristics of voice data is described in greater detail with respect toFIG. 2.

The communication interfaces114,116allow for communication between the server102and other devices and/or servers, such as smartphones and/or a backend server, configured to interact with the server102as part of the server102performing its described functionality. For one embodiment, the communication interfaces114,116include a cellular transceiver to enable the server102to communicatively couple with devices using one or more cellular networks. Cellular networks can use any wireless technology that, for example, enables broadband and Internet Protocol (IP) communications including, but not limited to: 3rdGeneration (3G) wireless technologies such as CDMA2000 and Universal Mobile Telecommunications System (UMTS) networks; 4thGeneration (4G) technologies such as LTE and WiMAX; or 5thGeneration (5G) technologies.

In another embodiment, the communication interfaces114,116include a wireless local area network (WLAN) transceiver that allows the server102to access the Internet using standards such as Wi-Fi. The WLAN transceiver allows the server102to receive radio signals from similarly equipped electronic devices or a wireless access point (WAP), for instance, using a wireless distribution method, such as a spread-spectrum or orthogonal frequency-division multiplexing (OFDM) method. For some embodiments, the WLAN transceiver uses an IEEE 802.11 standard to communicate with other electronic devices in the 2.4, 3.6, 5, and 60 GHz frequency bands. In a particular embodiment, the WLAN transceiver uses Wi-Fi interoperability standards as specified by the Wi-Fi Alliance to communicate with other Wi-Fi certified devices.

For additional embodiments, the communication interfaces114,116include hard-wired connections to a network infrastructure that allows the server102to communicate electronically with other communicatively enabled hardware, such as a backend server. For example, the communication interfaces114,116include a socket that accepts an RJ45 modular connector which allows the server102to be connected directly to a network router by category-5 or category-6 Ethernet patch cable. The communication interfaces114,116can also use a cable modem or a digital subscriber line (DSL) to connect to the Internet140, and thereby to other devices, via an Internet service provider (ISP).

The power supply112represents a power source that supplies electric power to the device components104,106,108,110,114,116,118,172,174as needed, during the course of their normal operation. The power is supplied to meet the individual voltage and load requirements of the device components104,106,108,110,114,116,118,174,176that draw electric current. For some embodiments, the power supply112is a wired power supply that provides direct current from alternating current using a full- or half-wave rectifier. For other embodiments, the power supply112is a battery that powers up and runs the server102or provides primary or backup power for specific components. For a particular embodiment, the battery is a rechargeable power source. A rechargeable power source for a server is configured to be temporarily connected to another power source external to the server to restore a charge of the rechargeable power source when it is depleted or less than fully charged. In another embodiment, the battery is simply replaced when it no longer holds sufficient charge.

The first electronic computing device152represents a smartphone, which is referred to in describing some included embodiments. The smartphone152, for example, is an older-model smartphone that a user is replacing with a newer-model smartphone shown as the second electronic computing device156.

A detailed description of the functionality of the components shown inFIG. 1, and also of additional hardware shown inFIG. 4, is provided with reference toFIG. 2.FIG. 2shows a logical flow diagram illustrating a method200performed by a networked server, taken to be the server102, to initiate voice enrollment of a second electronic computing device, taken to be the smartphone156.

The method200begins with the server102receiving voice data from the smartphone152over the communication connection162. The voice data includes an electronic representation of a user of the smartphone152speaking a launch phrase used to voice enable the smartphone152. After purchasing or otherwise receiving the smartphone152, for example, the user voice enables the smartphone152by training the smartphone152manually to detect and accept the launch phrase. The user finds a quiet location, places the smartphone152in a learning mode for voice enablement, and speaks the trigger phrase when prompted by the smartphone152to do so. The smartphone152captures the spoken launch phrase as voice data and uses the voice data to configure itself for the launch phrase. The smartphone152also saves the voice data to internal memory or storage as one or more audio files.

At some time after being voice enabled, the smartphone152communicatively couples or connects with the server102using the communication connection162. For instance, the smartphone152connects with the server102via the Internet140to register warrantee information or update software. A connection can refer to either a direct connection or an indirect connection unless specifically identified as one or the other. When connected with the server102, the smartphone152sends the voice data to the server102. For an embodiment, the server102receives the voice data from the smartphone152as a data file. Data files can include, but are not limited to, compressed, uncompressed, lossy, and/or lossless audio files such as MP3, WAV, FLAC, Ogg, or RAW files.

The server102receives202the voice data and stores it remotely from the smartphone152and remotely from the smartphone156. In one embodiment, the server102stores the voice data to the non-volatile storage110. In another embodiment, the server102stores the voice data to a storage device which is remote from the smartphone152, from the smartphone156, and from the server102.

For an embodiment, the server102creates an account for the user of the smartphone152and associates the stored voice data with the account. This allows the server102to associate the voice data with the user, with the smartphone152belonging to the user, and/or with another device belonging to the user, such as the smartphone156. Two years after purchasing the smartphone152, for example, the user replaces it with the smartphone156. When the user uses his smartphone156to connect with the server102and log into his account, the server102identifies the smartphone156and associates the smartphone156with the user and/or the account.

The method200continues with the server102receiving204an indication of a second device to voice enroll, which in described embodiments is the smartphone156. For one embodiment, the server102receiving204the indication of the smartphone156to voice enroll includes the server102receiving data that allows the server102to identify the model and/or the hardware configuration of the smartphone156. For another embodiment, the server102receiving204the indication of the smartphone156to voice enroll includes the server102receiving an indication directing the server102to initiate voice enrollment of the smartphone156.

In performing the method200, the server102also uses the voice data received from the smartphone152to initiate206voice enrollment of the smartphone156over the communication connection164with the smartphone156.FIG. 1shows the smartphone152and the smartphone156being connected to the server102together. In other embodiments, the smartphone152and the smartphone156are connected to the server102at different times. On Nov. 28, 2014, for example, the smartphone152connects with the server102. The server102receives202the voce data from the smartphone152and stores the voice data with an association to an account belonging to the user of the smartphone152. If such an account is not preexisting, it is created using information provided by the user. On Jul. 12, 2016, the user uses his new smartphone156to connect with the server102and log into his account. After receiving204an indication from the smartphone156to voice enroll the smartphone156, the server102uses the stored voice data received from the smartphone152to initiate206voice enrollment of the smartphone156.

In another embodiment, the user establishes simultaneous connections to the server102from his old smartphone152and from his new smartphone156. Upon receiving204an indication from either the smartphone152or the smartphone156to voice enroll smartphone156, the server102initiates206voice enrollment of the smartphone156using the voice data the server102receives202from the smartphone152. For some embodiments, the server102receives202the voice data from the smartphone152and sends the voice data to the smartphone156while both the smartphone152and the smartphone156are simultaneously connected to the server102. More detailed embodiments describing the method200are provided with reference to the remaining figures.

FIG. 3shows a series300of screen captures302,304,306,308,310, also referred to as screens, of a display of the smartphone156as the smartphone156is being voice enrolled. With the screen302, the smartphone156presents its user with the option of having the server102initiate voice enrollment the smartphone156. This makes voice enrolling the smartphone156manually by speaking a launch phrase unnecessary. The user instead selects an option of synchronizing the smartphone156with an existing launch phrase stored on the server102as voice data. Selecting this option establishes a communication connection with the server102and provides the indication to the server102that the server102is to initiate voice enrollment of the smartphone156.

The screen304identifies accounts with which the server102has associated voice data for previously used launch phrases. For some embodiments, a user may have more than one account. Additionally, the smartphone156may have more than one user. The smartphone156, for example, is owned by the user Steve Baker. Steve's wife, Heather Baker, who prefers to use her own launch phrase, is also an authorized user of the smartphone156.

From the screen304, Heather selects her account, “heather.baker@gmail.com,” with which the server102has associated stored voice data for two of her previously used launch phrases: “Okay Scooby Doo” and “What's up doc.” The smartphone156presents Heather with the screen306, which allows Heather to select one of the two launch phrases. Heather taps on the launch phrase “Okay Scooby Doo,” and the smartphone156communicates her selection to the server102. The server102responsively initiates206voice enrollment of the smartphone156. The screen308presents a notification that the smartphone156is being voice enrolled. Upon finishing the voice enrollment, the smartphone156presents heather with the screen310, which provides a notification that the voice enrollment is complete and also provides an option for testing that the voice enrollment was performed successfully.

In some embodiments, the server102initiating206voice enrollment of the smartphone156includes the server102sending the voice data for the launch phrase over the communication connection164to smartphone156. The smartphone156receives the voice data and uses the voice data to configure itself to detect the user speaking the launch phrase. For one embodiment, the smartphone156configuring itself to detect the user speaking the launch phrase includes the smartphone156training itself for speech recognition that involves speaker identification. The smartphone156trains itself using the voice data received from the server102the same way it would train itself using voice data received directly from the user via a microphone if the user were voice enrolling the smartphone156manually. For example, the smartphone156processes the voice data to create a voice model file that allows the smartphone to use a statistically-based speech recognition algorithm. The smartphone156uses a hidden Markov model (HMM), for instance, and approximates speech signals as piecewise stationary signals or short-time stationary signals on a brief time period, such as 10 milliseconds.

In other embodiments, the server102initiating206voice enrollment of the smartphone156includes the server102generating, using the voice data, a voice model for the smartphone156. After generating the voice model, the server102sends the voice model over the communication connection164to smartphone156. The voice model configures the smartphone156to detect the user speaking the launch phrase. Rather than sending the voice data to the smartphone156and having the smartphone156create a voice model file for use with a particular speech recognition algorithm, the server102generates the voice model file and sends it to the smartphone156. In different embodiments, different voice models are generated, depending upon the configuration of the smartphone156and which speech recognition algorithm the smartphone156is implementing. For a particular embodiment, the server102receives from the smartphone156, when the smartphone156is communicatively coupled to the server102, an indication of which speech recognition algorithm the smartphone156is implementing.

For a number of embodiments, the voice data the server102receives from the smartphone152includes metadata. The metadata, for example, includes a capturing characteristic and/or an encoding characteristic of the user-specific launch phrase represented by the voice data.

In several embodiments, the server102uses the metadata to process or alter the voice data it receives from the smartphone152before sending the voice data to the smartphone156. The server102processes the voice data in accordance with a hardware and/or a software characteristic of the smartphone156. This is to adapt the voice data for more efficient or seamless use by the smartphone156, which can have a different hardware and/or software configuration from the smartphone152. A hardware characteristic of a device is a type of hardware or a hardware setting on the device that affects a quality, property, or encoding of speech captured by the device. A dynamic microphone or a condenser microphone, for instance, is a hardware characteristic that affects the quality and property of captured sound.

A software characteristic of a device is a type of software or a software setting on the device that affects a quality, property, or encoding of speech captured by the device. A noise reduction algorithm or an equalization algorithm, for instance, is a software characteristic that affects the quality and property of captured sound.

In one embodiment, the server102processing the voice data includes the server102transcoding voice data from a first encoded format to a second encoded format. For instance, the smartphone152is configured to encode voice data using the proprietary MP3 format, whereas the smartphone156is configured to use voice data encoded in the open-source Ogg format. The server102receives the voice data from the smartphone152, transcodes the voice data from the MP3 format to the Ogg format using the audio encoding module172, and then sends the voice data to the smartphone156.

In another embodiment, the smartphone152uses a modulation, such as pulse-code modulation (PCM), to digitally represent analog voice data. For example, the smartphone152digitizes the voice data with a sampling rate of 16 kilohertz (kHz) and a bit depth of 16 bits before sending the digital voice data to the server102. The smartphone156, however, is configured to perform voice enrollment with digital voice samples having a sampling rate of 32 kHz and a bit depth of 24 bits. The server102processes the digital voice data it receives from the smartphone152to simulate having a sampling rate of 32 kHz and a bit depth of 24 bits before sending the processed voice data to the smartphone156to initiate voice enrollment.

For a different embodiment, the server102processing the voice data includes the server102modifying an acoustic property of the voice data from having a first acoustic characteristic to having a second acoustic characteristic. An acoustic property is an aspect of voice data affecting how the voice data sounds and an acoustic characteristic is a quantifiable value or describable feature relating to an acoustic property. Ideally, the voice data the smartphone156receives from the server102for voice enrollment will sound the same as when the smartphone156captures the user speaking the launch phrase. In reality, however, the voice data that the smartphone152captures will have different acoustic characteristics from the speech the smartphone156captures. This results from the smartphone156having a different hardware and/or software configuration from the smartphone152.

The smartphone152, for example, uses a single middle-quality monaural microphone of a particular brand to capture voice data. The newer smartphone156uses two high-quality stereo microphones of a different brand to capture the user speaking the launch phrase. Under controlled conditions, technicians compare the tonal characteristic of speech captured from a same model smartphone as the smartphone152to the tonal characteristic of speech captured from a same model smartphone as the smartphone156. The technicians conclude from their analysis that speech captured by the model smartphone152has a lower pitch as compared to a more balanced frequency response of speech captured by the model smartphone156. Based on this finding, the technicians determine an amount of equalization to apply to the speech samples captured by the model smartphone152to make them sound more like the speech samples captured by the model smartphone156. The technicians also empirically determine modification parameters for other acoustic properties so that when a set of modification parameters is applied to voice data captured by the smartphone152, it sounds similar to speech captured by the smartphone156using its own hardware.

For some embodiments, the server102determines a model for the smartphone152. In a first embodiment, the server102receives an indication of the model of the smartphone152when the smartphone152is communicatively coupled to the server102and the server102is receiving202the voice data. In a second embodiment, when the smartphone152is communicatively coupled to the server102, the indication the server102receives204to voice enroll the smartphone156includes an indication of the model of the smartphone152. In a third embodiment, the user logs into his account on the server102from another device, such as a home computer, and provides the server102with an indication of the model of the smartphone152for which the server102has voice data stored.

Based on the model of the smartphone152and the model of the smartphone156, the server102applies a specific set of modification parameters to the voice data it receives from the smartphone152before sending the voice data to the smartphone156. To apply the set of modification parameters to the voice data, for example, the server102uses the audio configuration module174. Applying the set of modification parameters to voice enroll the smartphone156results in the smartphone156having better accuracy in determining when the user is speaking the launch phrase.

For another embodiment, after the server102initiates206and the smartphone156completes voice enrollment, the smartphone156continues to train itself using speech captured by its own hardware to further improve its accuracy in determining when the user is speaking the launch phrase. The smartphone156, for example, captures multiple samples of the user speaking the launch phrase after its voice enrollment. Of the multiple samples, the smartphone156determines which samples have the lowest noise and/or which samples are most characteristic of the user's average speaking voice. The smartphone156then utilizes these samples to “fine tune” its voice enrollment by making modifications to a voice model the smartphone156uses for speech recognition.

FIG. 4shows a block diagram of the networked server102as part of a retail management system400. For some embodiments, a user can connect with the server102using an electronic computing device to place an order for another electronic computing device. Specifically,FIG. 4shows the server102connected by a communication connection462to a laptop452via the Internet140. Additionally, the server102includes a retail management module (RMM)406. The RMM406includes hardware used by the server102while the processing element104is executing algorithms and/or programs directed to taking orders over a network connection for electronic computing devices configured to support voice enrollment.

The laptop452, which includes a microphone454and a display458, is used to order the smartphone156online.FIG. 4also shows a configuring apparatus422which is communicatively coupled between the server102and the smartphone156for an embodiment. The configuring apparatus422is communicatively coupled to the server102by a communication connection464and to the smartphone156by a communication connection484. For other embodiments from which the configuring apparatus422is absent, as indicated by the broken lines, the communication connection484becomes part of the communication connection464, which is referred to as the communication connection464/484.

Using the laptop452in place of the smartphone152for particular embodiments, the user enters a uniform resource locater (URL) for a retail website into a web browser executing on the laptop452. The retail website allows the user to order a newly released Mach-4 smartphone, indicated inFIG. 4as the smartphone156. The laptop452connects with the server102, allowing the user to browse the website. The user navigates to a “machmaker” webpage500, shown inFIG. 5, which allows the user to customize the base model Mach-4 smartphone displayed on the webpage500at556. From a list of options, the user can choose a color combination for his new smartphone156in addition to specifying an amount of memory. Through the website the user can also choose to have his Mach-4 smartphone156voice enrolled before being shipped.

When server102receives the order for the smartphone156, for example, the server102sends an invitation to the laptop452over the communication connection462for the user to have the smartphone156voice enrolled prior to delivery. For an embodiment, the invitation is accompanied by a request for voice data. In providing the voice data, the user is guided by a series of prompts appearing on the display458. Following the prompts, the user speaks a desired launch phrase a specified number of times or until a satisfactory sample of the user speaking the launch phrase is captured as voice data.

The laptop452sends the voice data to the server102over the communication connection462. For one embodiment, the laptop452encodes the voice data into an audio file before sending the voice data to the server102. In another embodiment, the laptop452streams the voice data to the server102so that the server102continuously receives202the voice data as the user speaks the launch phrase into the microphone454. For an alternate embodiment, the order for the smartphone156is placed from another electronic computing device, such as the smartphone152, which itself is voice enrolled, allowing the device to send previously captured voice data to the server102. Upon receiving202the streamed voice data, the server102encodes the voice data and stores it to the non-volatile storage110until the server102is ready to initiate voice enrollment of the smartphone156.

After the customized smartphone156is assembled, it is connected to the server102by the communication connection464/484. Using a near field connection (NFC), a Wi-Fi connection, or a wireline connection, for example, the server102initiates206voice enrollment of the smartphone156. When voice enrollment of the smartphone156is completed, the smartphone156is packaged and delivered to the user.

For embodiments which include the configuring apparatus422, the server102initiating206voice enrollment of the smartphone156includes the server102sending the voice data it received from the laptop452over the communication connection464to the configuring apparatus422. The configuring apparatus422then uses the voice data to configure the smartphone156to detect the user speaking the launch phrase. For this purpose, the configuring apparatus422is shown with a VEM426. The configuring apparatus422is also shown to have a processing element424, memory428, non-volatile storage430, two communication interfaces434,436, and a power supply432, all operatively interconnected by a bus438. In some embodiments, the server102is a frontend or client-side server providing retail services while the configuring apparatus422is a backend server providing processing and management capability to facilitate voice enrolling electronic computing devices.

For particular embodiments, the server102operates as a web server to accept an order for the smartphone156placed from the laptop452. The order specifies that the smartphone156is to be voice enrolled and the server102receives202voice data from the laptop458. The server102initiates206voice enrollment of the smartphone156by sending the voice data to the configuring apparatus422via the communication connection464. In some instances, the configuring apparatus422stores the voice data to the non-volatile storage430in connection with an account associated with the user's order for the smartphone156.

For one embodiment, the server102and the configuring apparatus422are located in close proximity to one another. When the server102and the configuring apparatus422are located within the same room or building, for example, the communication connection464is an NFC connection, a Wi-Fi connection, or a wireline connection connecting the communication interface116to the communication interface434. When the server102and the configuring apparatus422are located remotely from one another, the communication connection464is a network connection that sends data across a public or shared network. For example, the communication connection464is a virtual private network (VPN) connection that extends across the Internet140.

After the customized smartphone156is assembled, it is connected to the configuring apparatus422by the communication connection484. Using an NFC connection, a Wi-Fi connection, or a wireline connection, for example, the configuring apparatus422continues the voice enrollment of the smartphone156initiated by the server102. When voice enrollment of the smartphone156is completed, the smartphone156is packaged and delivered to the user.

In different embodiments, a device-to-device voice enrollment procedure allows the smartphone152to initiate voice enrollment of the smartphone156without using the server102or the configuring apparatus422. A user, for example, places both the smartphones152,156in a device-to-device voice enrollment mode, designating through user input the smartphone152as the initiating device and the smartphone156as the receiving device. The smartphones152,156communicatively link with one another, using a WiFi Direct, a Bluetooth, or an NFC connection, for instance. The user might input an authentication code on each smartphone152,156for some embodiments as a security measure to provide confirmation that the user is in control of both devices. In other embodiments, a security measure is intrinsic to a particular communication protocol used. The smartphone152then sends stored voice data to the smartphone156. After receiving the voice data, the smartphone156completes the voice enrollment process using the voice data.