Patent Description:
Another partial solution to address this problem requires a user to go to a special user interface and speak a list of particular words. Requiring users with accents to find this special user interface and speak a list of words does not provide an excellent user experience, and thus often will simply not be performed by users. Further, requiring this effort from users does not enable current technologies to recognize accents sufficiently well. Further still, even if a user that owns a device goes to this effort, it is unlikely to be performed by another user borrowing the owner's device, such as when a device's owner is driving and a passenger uses the owner's device.

Reference is made to the following prior art documents: <CIT>, <CIT>, <CIT>, <CIT>, <CIT>, <CIT>and <CIT>.

Techniques and apparatuses for recognizing accented speech are described with reference to the following drawings. The same numbers are used throughout the drawings to reference like features and components:.

Current techniques for recognizing accented speech often are quite poor at recognizing speech when spoken with an accent. This disclosure describes techniques and apparatuses for recognizing accented speech using an accent library, and, in some embodiments, using different speech recognition correction levels based on an application field into which recognized words are set to be provided.

The following discussion first describes an operating environment, followed by techniques that may be employed in this environment, an example application having application fields, and proceeds with example apparatuses.

A method in accordance with the invention is provided in claim <NUM>. The dependent claims provide further preferred embodiments.

<FIG> illustrates an example environment <NUM> in which techniques for recognizing accented speech can be implemented. Example environment <NUM> includes a computing device <NUM> having one or more processors <NUM>, computer-readable storage media (storage media) <NUM>, a display <NUM>, and an input mechanism <NUM>.

Computing device <NUM> is shown as a smart phone having an integrated microphone <NUM> as one example of input mechanism <NUM>. Various types of computing devices and input mechanisms may be used, however, such as a personal computer having a separate, standalone microphone, a cellular phone connected to a pico-net (e.g., Bluetooth™) headset having a microphone, or tablet and laptop computers with an integrated stereo microphone, to name but a few.

Computer-readable storage media <NUM> includes an accent module <NUM>, device data <NUM>, mined data <NUM>, and applications <NUM>. Accent module <NUM> includes a linguistic library <NUM> and one or more accent libraries <NUM>. Accent module <NUM> may operate with, operate without, include, be integral with, and/or supplement a speech recognition engine (not shown). Accent module <NUM> is capable of recognizing accented speech, such as by determining, based on device data <NUM>, an accent library of accent libraries <NUM> to use to recognize speech in conjunction with linguistic library <NUM>.

Linguistic library <NUM> is associated with a language or dialect thereof, such as Australian English, American (US) English, British (King's) English, and so forth. Linguistic library <NUM> and a known speech recognition engine may operate to perform known speech recognition, though use of either or both is not required. Thus, accent module <NUM>, in some embodiments, uses one of accent libraries <NUM> to supplement a known speech recognition engine using a known type of linguistic library <NUM>.

By way of example, consider <FIG>, which illustrates example linguistic libraries <NUM> and accent libraries <NUM> of <FIG>. Here two example linguistic libraries, Australian English <NUM> and US English <NUM>, are shown. Associated with each of these linguistic libraries <NUM> and <NUM>, are numerous accent libraries <NUM> and <NUM>, respectively.

Accent libraries <NUM> include eight examples, though many more are contemplated by the techniques, including Australian (AU) English-Mandarin <NUM>-<NUM>, AU English-New South (N. ) Wales <NUM>-<NUM>, AU English-New Zealand (NZ) Auckland <NUM>-<NUM>, AU English-NA Christchurch <NUM>-<NUM>, AU English-Scuba-Diver <NUM>-<NUM>, AU English-Outback <NUM>-<NUM>, AU English-Perth <NUM>-<NUM>, and AU English-Indonesia <NUM>-<NUM>. As is clear from the names, each of these accent libraries is associated with a large language group (Australian English) and accents present within that language group, whether it be recent Mandarin-speaking immigrants or persons involved in scuba diving.

Similarly, accent libraries <NUM> include eight examples, US English-Mandarin <NUM>-<NUM>, US English-Cantonese <NUM>-<NUM>, US English-Boston <NUM>-<NUM>, US English-Surfer <NUM>-<NUM>, US English-Hearing Impaired <NUM>-<NUM>, US English-Rural <NUM>-<NUM>, US English-South <NUM>-<NUM>, and US English-Alaska <NUM>-<NUM>. Note that the Mandarin accent libraries <NUM>-<NUM> and <NUM>-<NUM> can be different, as each is associated with a different linguistic library. There may, however, be some common elements between the accent libraries due to common traits of Mandarin speakers, whether speaking English in an Australian dialect or a US dialect. Note that these accent libraries are nearly unlimited in number and in accents addressed. Regional accents, accents common to small or large immigrant groups, interests and subcultures, and even common physical characteristics, such as persons that are hearing impaired having some commonality in accent.

In the example of <FIG>, each of accent libraries <NUM> contain supplemental information or algorithms for use by linguistic library <NUM>. Here linguistic library <NUM> is used for a large language group (e.g., that has more, an average, or a median for a larger number of persons), which is supplemented by one or more of accent libraries <NUM>. While this example of <FIG> associates accent libraries with linguistic libraries, accent module <NUM> may forgo use of a linguistic library or a known speech recognition engine. Accent module <NUM> may instead provide its own algorithms and engine without use of other engines or libraries, relying instead on accent library <NUM> without linguistic library <NUM> but including algorithms or information useful for recognizing speech of a large number of persons.

Accent module <NUM> may determine which of accent libraries <NUM> to use to recognize accented speech based on device data <NUM> and/or mined data <NUM> (both of <FIG>). Device data <NUM> can include device personal data <NUM>, as well as data specific to computing device <NUM>. Data specific to computing device <NUM> can include the date of manufacture or purchase of computing device <NUM> (e.g., a recently-released mobile phone or tablet) and information about computing device <NUM>, such a manufacturer, hardware capabilities, and so forth.

Device personal data <NUM> includes data created or determined based on a user's interaction with computing device <NUM>, such as names of contacts, installed applications, receiving country or regions of messages, a user's name, contact information, non-standard keyboards (e.g., for a particular language other than the language for which computing device <NUM> is set), and contextual application information (e.g., search terms). Thus, names of contacts may indicate a country of origin of the user or a non-standard type of keyboard may indicate that a language other than the language setting for the computing device is the user's native language. Further, a receiving country or region for messages may include addresses in countries in which the language setting for the computing device is not a most-spoken language, e.g., the receiving country of Indonesia with a setting of Australian English, such as shown in <FIG> with Australian English <NUM> and AU English-Indonesia <NUM>-<NUM>.

In more detail, emails or addresses in a user's contacts may indicate a nationality or ethnic origin of the user (e.g., Slavic first or last names). The addresses may indicate a native location of, or current location of, the user, as well as other details about the user that may be used to determine an accent library <NUM> for the user. Names in email address lines or text in those emails may indicate the user's friends' nationalities, origins, subcultures, or the user's business, or the user's interests. These interests, as noted further below, may indicate an accent, such as user's interest in surfing, scuba diving, or cooking. Some words and how these words are spoken can depend on these interests, and thus subcultures.

A person involved in scuba diving, for example, may use the terms "re-breather" and "Barotrauma," which, but for an accent library associated with scuba diving, might be incorrectly recognized. Similarly, a person involved in surfing might use the terms "goofy foot," "cutback," or "closed out," which might also be incorrectly recognized from a user's speech. Finally, for the cooking enthusiast, "La Creuset," "rotisserie," and "braising," may be incorrectly recognized without the current techniques.

Device personal data <NUM> may also include other information useful in determining an accent and thus an accent library, such as Slavic-language books in the user's e-book library, Slavic-language news articles, articles and books about Poland, a saved weather channel for Warsaw, Poland, information about fishing in Estonia, a web search entry for accordion music, polka music in the user's music library, and so forth.

Mined data <NUM> may also or instead be used by accent module <NUM> to determine which of accent libraries <NUM> to use to recognize speech. Mined data <NUM> includes mined personal data <NUM>, which may include any personal data that may be found about a user of computing device <NUM>, either through the Internet or otherwise. Thus, mined personal data <NUM> may include the user's search terms, purchases, location, demographics, income, and so forth.

As noted, computer-readable storage media <NUM> also includes applications <NUM>, such as email application <NUM>, social network application <NUM>, or spreadsheet application <NUM> all of <FIG>. Each of applications <NUM> includes one or more application fields <NUM>, which, in some embodiments, are used to determine a speech recognition correction level. By way of example, consider spreadsheet application <NUM>. Here a number-only cell <NUM> and a general-text cell <NUM> are each an example of application field <NUM>. Number-only cell <NUM> may require more-precise text than general-text cell <NUM>, and thus a different speech recognition correction level.

<FIG> illustrates example methods <NUM> for recognizing accented speech using an accent library determined based on device data in accordance with the invention. The order in which blocks of these and other methods are described is not intended to be construed as a limitation, and any number or combination of the described blocks in these and other methods herein can be combined in any order to implement a method or an alternate method.

At block <NUM>, device data is received for a computing device. Device data can be received responsive to an active retrieval performed at block <NUM>. Thus, using environment <NUM> of <FIG> as an example, accent module <NUM> may retrieve device data <NUM> at block <NUM>, such as by searching contact data on computing device <NUM> and technological details about computing device <NUM>.

As noted in part above, device data <NUM> may include device personal data <NUM> and other, non-personal data associated with computing device <NUM>. By way of one ongoing example, assume that device data <NUM> indicates that computing device <NUM> is a smartphone released just <NUM> days ago that has significant computing power. This may be used in part to determine an appropriate accent library <NUM> based on demographics indicating that users of this smartphone, at least when recently released, are early adopters, technologically savvy, and aged between <NUM> and <NUM>.

Assume that device personal data <NUM> includes contact names and addresses indicating a statistically relevant quantity of Asian last names and Asian first names. This statistical relevance can be determined in various manners, such as by comparison with a typical person's contact list that uses the same linguistic library <NUM>. Thus, while the average number of Asian first names for an American (US) English linguistic library user's contact list may be <NUM>% and Asian last names <NUM>% assume here that this user's contact list has <NUM>% Asian first names and <NUM>% Asian last names. Statistical analysis considers this statistically relevant based on it being one or more standard deviations from average. This indicates a likelihood that the user may not be a native English speaker or that family members of the user are likely not to be a native English speaker, especially the statistically-relevant quantity of Asian first names, as Asian first names are more likely to indicate a first-generation immigrant than Asian last names.

In addition to this information from a user's contact list, assume that device personal data <NUM> indicates that the user's name is "Molly Chin," substantial numbers and durations of trips to the beach, a purchase of surfing gear, and that the user lives in southern California.

At block <NUM>, an accent library is determined based on the device data received. This accent library is determined for use in speech recognition. Continuing the ongoing embodiment, assume that accent module <NUM> correlates device data <NUM> with known accents associated with this type of device data, thereby determining that two different accent libraries <NUM> are likely, that of US English-Mandarin <NUM>-<NUM> and US English-Surfer <NUM>-<NUM> both of <FIG>. Assume that the surfer accent library is determined to be more likely based on the young age projected for the user (as an early adopter and so forth), trips to the beach, an English first name (Molly), surfer-based purchases, and so forth. In this ongoing example, accent module <NUM> determines accent libraries <NUM> based on device data <NUM>, though accent module <NUM> may also or instead base this determination on mined data <NUM> and information about prior speech received by computing device <NUM>.

At block <NUM>, speech is received at the computing device. Speech can be received in various manners, such as input mechanism <NUM> described above. Continuing the ongoing example, assume that the user says the following for entry into a text message to a friend "Jean, is it closed out?".

At block <NUM>, speech is recognized based on the accent library. Concluding the ongoing example, accent module <NUM> uses, along with a speech recognition engine, linguistic library US English <NUM> and accent library US English-Surfer <NUM>-<NUM> selected based on device data as noted above. Here assume that, absent the accent library, that a speech recognition engine would recognize Molly's speech of "Jean, is it closed out?" as "Jean, is it close now?" Due to accent library US English-Surfer <NUM>-<NUM>, however, accent module <NUM> acts to correctly recognize Molly's speech as "Jean, is it closed out?" Accent module <NUM> then passes this text to the text field.

This recognition is due, in this example, to accent module <NUM> being able to select between multiple options for how to recognize Molly's speech, including an option that, but for the accent library, would have been considered a low-probability option for a current speech recognition engine relative to other likely options of "close now," "hosed out," and "closet. " Here accent library US English-Surfer <NUM>-<NUM> adds words, changes probabilities of words and phrases, and alters algorithms to change how certain sounds are interpreted (e.g., surfers have a different speech pattern, which is part of an accent, not just the words used).

Optionally, at block <NUM>, the accent library is updated based on corrected errors made during recognition of the speech. Block <NUM> may work in conjunction with, or separate from, methods <NUM> as described below. In the above example methods <NUM> correctly recognized Molly's speech. Were it incorrect, correction by the user (Molly Chin) can be recorded and used to update the accent library.

At block <NUM>, in accordance with the invention, other speech is received at the computing device, the other speech received from a different speaker than the speech received at block <NUM>. By way of example, assume that Molly passes her smart phone to her father because she is driving. Assume that Molly asks her father to request a good Thai restaurant. Assume also that her father is a native Mandarin speaker and that English is a second language for him. Further, assume that, like many native Mandarin speakers, Molly's father uses tones to differentiate words, while English speakers use intonation (pitch patterns in sentences). Further, assume that Molly's father, like many Mandarin speakers, has problems pronouncing "I" sounds at the end of a syllable. Thus, Molly's father pronounces "why" as "wiw," "fly" as "flew," and "pie" as "piw. " Thus, when Molly's father asks the smart phone to find a Thai restaurant by saying "Find Thai Restaurant" but that, due to his accent, it sounds to a native US English speaker (or a speech recognition engine using only a US English library) as "Find Tew Restaurant.

At block <NUM>, the other speech is dynamically determined not to be associated with the accent library determined at block <NUM>. Accent module <NUM> determines, in real time on receiving the speech "Find Tew Restaurant" that the speaker is not Molly and thus that accent library US English-Surfer <NUM>-<NUM> does not apply. Accent module <NUM> may determine this based on the "Tew" or other indicators, such as tonal variances within the word "Restaurant," which is common to both Mandarin and Cantonese speakers, or simply that a history of speech received from Molly indicates that it is not Molly. This can be performed in numerous ways, such as Molly having a generally high-pitched voice and Molly's father not having this high pitch, speaking speed differences between Molly and Molly's father, and so forth.

At block <NUM>, another accent library, or no accent library, is determined for the other speech. Continuing this example, assume that accent module <NUM> determines, based on tonal variances within the word "Restaurant" that Molly's father is either a native Mandarin or Cantonese speaker. Further, assume that accent module <NUM>, determines that Molly's personal data indicates that she has friends and addresses associated more closely with a region of China in which Mandarin is the dominant language (e.g., Beijing) rather than regions associated with Cantonese (e.g., Hong Kong). This information may have already been determined at block <NUM> as noted above.

At block <NUM>, the other speech is recognized with the other accent library or with no accent library, as determined above. Concluding the ongoing example, accent module <NUM> recognizes Molly's father's speech of "Find Tew Restaurant" as "Find Thai Restaurant" by using accent library US English-Mandarin <NUM>-<NUM> of <FIG> rather than incorrectly recognize this speech as "Find Two Restaurants.

<FIG> illustrates example methods <NUM> for altering an accent library to more-accurately recognize accented speech.

At block <NUM>, a correction to a speech element is received. This correction corrects a speech element that was incorrectly recognized using an accent library. The correction can be received from a remote computing device, though this is not required. As noted in block <NUM>, speech recognition using an accent library may be incorrect and then corrected by a user. One or many corrections associated with an accent library can be received, such as from thousands of remote computing devices (e.g., smart phones, laptops, tablets, desktops and so forth). The computing device can be computing device <NUM> of <FIG> but in this embodiment is a server computer remote from computing device <NUM> and at which corrections are recorded and accent libraries <NUM> are updated to improve recognition.

At block <NUM>, an accent library is altered to provide an updated accent library, the updated accent library able to more-accurately recognize the speech element. Using one of the above examples to illustrate, assume that the accent library US English-Mandarin <NUM>-<NUM> incorrectly recognized Molly's father's speech as "Find The Restaurant" instead of "Find Thai Restaurant. " Assume also that Molly's Father corrected the incorrect recognition to "Thai. " This correction, and many others like it for the same accent library, can be sent to, and received by, an updating entity. The updating entity can be accent module <NUM> on computing device <NUM>, or another accent module or other entity on a server computer.

At block <NUM>, the updated accent library is provided to the remote computing device or devices effective to enable the remote computing device or devices to more-accurately recognize the speech element. Thus, the speech element "Tew" will be more likely to be correctly recognized as "Thai" than "The" using the updated accent library.

Furthermore, device data can also be received from the remote computing device or devices that is associated with a user of the remote computing device and based on which the accent library was determined to be used for speech recognition of speech from the user. Thus, information about Molly for corrections to accent library US English-Surfer <NUM>-<NUM> or Molly's father for accent library US English-Mandarin <NUM>-<NUM> can be provided.

The update to the appropriate accent library may then be tailored to certain device data or other data. This, in effect, may act to provide subcategories of accent libraries over time. Thus, a speaker, such as a person having similarities to Molly Chin may receive an update for US English-Surfer <NUM>-<NUM> based on her similarities in age (<NUM>-<NUM>) and region (Southern California) that another speaker using US English-Surfer <NUM>-<NUM> will not, such as a man (aged <NUM>-<NUM>) living in a different region (Miami, Florida). In so doing, updates can be provided to users based on whether the users or their computing devices have one or more same elements of device or mined data as the device or mined data of the remote computing device from which the correction was received.

<FIG> illustrates example methods <NUM> for recognizing speech at a speech recognition level based on an application field, which may use an accent library.

At block <NUM>, speech is received at a computing device. This can be as set forth in the various examples above.

At block <NUM>, a speech recognition correction level is determined based on an application field to which recognized text are set to be provided. One example of this can be example application fields <NUM> of <FIG>, namely number-only cell <NUM> and a general-text cell <NUM> of spreadsheet application <NUM>. As noted above, accent module <NUM> may determine a speech recognition correction level based on the application fields, such as it likely needing highly accurate speech recognition or less accurate and/or faster recognition.

Consider, by way of example, <FIG>, which illustrates an example email application's user interface <NUM> having application fields <NUM> and <NUM>. Application field <NUM> is an address field and application field <NUM> is a body field. Assume for example that Molly Chin from the above examples says "Surf Girl Seven Seven Seven At Gee Mail Dot Com.

When opening a new email to send to a friend, assume that an email application will receive recognized text first into the email address field shown at application field <NUM>. When speaking, and after the email address is complete, assume the email application will receive recognized text into the body of the email, at application field <NUM>. In this example, accent module <NUM> determines that a maximum level of correction should be used for the address field. In such a case, accent module <NUM> uses an appropriate accent library <NUM> or makes other refinements that improve accuracy. Improving accuracy, however, can come at a cost in terms of time to recognize text and computing resources (processor and battery), to name but a few. Therefore, higher speech correction levels may not always be appropriate.

Note also that accent module <NUM> may apply different correction levels by determining to use none, one, or multiple accent libraries <NUM>, such as both a Mandarin and a Surfer accent library, for example. Further, accent module <NUM> may determine correction levels without use, or lack of use, of accent libraries <NUM>. For example, accent module <NUM> may use a different linguistic library <NUM> for some application fields or use an accent library <NUM> that is directed to spoken numbers rather than accents in normal speech. Thus, one of linguistic libraries <NUM> may be directed to recognizing speech that is numerical or for addresses and another that is directed to recognizing speech that is conversational. In these and other ways set forth herein, the techniques may act to improve speech recognition.

At block <NUM>, the speech received is recognized at the speech recognition correction level to produce recognized text. Thus, for application field <NUM> (the email address field), accent module <NUM> recognizes speech at the determined speech recognition level, here at a maximum level using one or more accent libraries <NUM> and/or alternative linguistic libraries <NUM> directed to the expected speech.

At block <NUM>, recognized words and other text are provided to the application field. Concluding the ongoing example for Molly Chin, at block <NUM> accent module <NUM> recognizes the speech of "Surf Girl Seven Seven Seven At Gee Mail Dot Com" not as words but, based on the accent library <NUM> and/or linguistic library <NUM>, as a combination of words and text, and also because it is an address field for an email, the "at" as the "@" symbol. Thus, the speech is recognized as "surfgirl777@GMail.

While not required, the techniques, in some embodiments, use a less-than-maximum speech correction level when the application field is a body of an email, blog, social networking entry, or word-processing document. Conversely, the techniques, for address fields, number-only fields in spreadsheets, phone numbers, and so forth may use maximum speech correction levels and/or alternative linguistic libraries <NUM> or accent libraries <NUM>.

<FIG> illustrates various components of an example device <NUM> including accent module <NUM> including or having access to other modules, these components implemented in hardware, firmware, and/or software and as described with reference to any of the previous <FIG>.

Example device <NUM> can be implemented in a fixed or mobile device being one or a combination of a media device, computing device (e.g., computing device <NUM> of <FIG>), television set-top box, video processing and/or rendering device, appliance device (e.g., a closed-and-sealed computing resource, such as some digital video recorders or global-positioning-satellite devices), gaming device, electronic device, vehicle, and/or workstation.

Example device <NUM> can be integrated with electronic circuitry, a microprocessor, memory, input-output (I/O) logic control, communication interfaces and components, other hardware, firmware, and/or software needed to run an entire device. Example device <NUM> can also include an integrated data bus (not shown) that couples the various components of the computing device for data communication between the components.

Example device <NUM> includes various components such as an input-output (I/O) logic control <NUM> (e.g., to include electronic circuitry) and microprocessor(s) <NUM> (e.g., microcontroller or digital signal processor). Example device <NUM> also includes a memory <NUM>, which can be any type of random access memory (RAM), a low-latency nonvolatile memory (e.g., flash memory), read only memory (ROM), and/or other suitable electronic data storage. Memory <NUM> includes or has access to accent module <NUM>, linguistic libraries <NUM>, and accent libraries <NUM> and, in some embodiments, a speech recognition engine (not shown).

Example device <NUM> can also include various firmware and/or software, such as an operating system <NUM>, which, along with other components, can be computer-executable instructions maintained by memory <NUM> and executed by microprocessor <NUM>. Example device <NUM> can also include other various communication interfaces and components, wireless LAN (WLAN) or wireless PAN (WPAN) components, other hardware, firmware, and/or software.

Other examples capabilities and functions of these modules are described with reference to elements shown in <FIG> and <FIG>. These modules, either independently or in combination with other modules or entities, can be implemented as computer-executable instructions maintained by memory <NUM> and executed by microprocessor <NUM> to implement various embodiments and/or features described herein. Alternatively or additionally, any or all of these components can be implemented as hardware, firmware, fixed logic circuitry, or any combination thereof that is implemented in connection with the I/O logic control <NUM> and/or other signal processing and control circuits of example device <NUM>. Furthermore, some of these components may act separate from device <NUM>, such as when remote (e.g., cloud-based) libraries perform services for accent module <NUM>.

Claim 1:
A method comprising:
receiving device data for a computing device;
determining, based on the device data, an accent library for use in speech recognition;
receiving speech at the computing device;
recognizing the speech based on the accent library;
receiving other speech at the computing device;
dynamically determining, based on the other speech, that the other speech is not associated with the accent library;
determining another accent library or no accent library for the other speech; and
recognizing the other speech with the other or no accent library.