PATENT DOCUMENT

Publication Number: US-9691383-B2
Application Number: US-201314141254-A
Country: US
Kind Code: B2

Title: Multi-tiered voice feedback in an electronic device

Abstract:
This invention is directed to providing voice feedback to a user of an electronic device. Because each electronic device display may include several speakable elements (i.e., elements for which voice feedback is provided), the elements may be ordered. To do so, the electronic device may associate a tier with the display of each speakable element. The electronic device may then provide voice feedback for displayed speakable elements based on the associated tier. To reduce the complexity in designing the voice feedback system, the voice feedback features may be integrated in a Model View Controller (MVC) design used for displaying content to a user. For example, the model and view of the MVC design may include additional variables associated with speakable properties. The electronic device may receive audio files for each speakable element using any suitable approach, including for example by providing a host device with a list of speakable elements and directing a text to speech engine of the host device to generate and provide the audio files.

Claims:
What is claimed is: 
     
       1. A method for providing voice feedback to a user of an electronic device, comprising:
 determining that content displayed on the electronic device has changed; 
 in response to a determination that content displayed on the electronic device has changed, identifying at least two speakable items to be provided to a user, the at least two speakable items including a first speakable item associated with a first speakable order, and at least one second speakable item associated with a second speakable order; 
 generating an initial queue including the identified first speakable item and the at least one second speakable item; 
 ordering the first speakable item and the at least one second speakable item in the initial queue based on the respective speakable order associated with the first speakable item and the at least one second speakable item; and 
 providing voice output corresponding to the first speakable item and the at least one second speakable item in the order specified in the initial queue. 
 
     
     
       2. The method of  claim 1 , further comprising:
 determining whether content displayed on the electronic device has changed a second time; 
 in accordance with a second determination that the content displayed on the electronic device has changed:
 identifying at least two further speakable items to be provided to the user, the at least two further speakable items including a third speakable item associated with a third speakable order, and at least one fourth speakable item associated with a fourth speakable order; 
 updating at least a portion of the initial queue to generate a revised queue including at least the third speakable item and the at least one fourth speakable item; and 
 ordering at least the third speakable item and the at least one fourth speakable item in the revised queue based on the respective speakable order associated with the third speakable item and the at least one fourth speakable item. 
 
 
     
     
       3. The method of  claim 2 , further comprising, when the content displayed on the electronic device has changed the second time during the providing of the voice output corresponding to the first speakable item and the at least one speakable item:
 detecting the speakable item for which voice output was provided during changing of the content displayed on the electronic device; 
 determining that the detected speakable item has the same speakable order in the initial queue and in the revised queue; and 
 providing voice output from the revised queue starting with the detected speakable item. 
 
     
     
       4. The method of  claim 2 , further comprising, when the content displayed on the electronic device has changed the second time during the providing of the voice output corresponding to the first speakable item and the at least one speakable item:
 detecting the speakable item for which voice output was provided during changing of the content displayed on the electronic device; 
 comparing the initial queue and the revised queue to identify common portions of the queues; 
 determining that the speakable item for which voice output was provided during changing of the content displayed on the electronic device is not in a portion of the revised queue that is in common with the initial queue; and 
 stopping providing voice output for the speakable item for which voice output was provided during changing of the content displayed on the electronic device. 
 
     
     
       5. The method of  claim 4 , further comprising:
 identifying a speakable item of the revised queue that follows the common portions of the queues; and 
 providing voice output from the revised queue starting with the identified speakable item of the revised queue that follows the common portions of the queues. 
 
     
     
       6. The method of  claim 1 , wherein items associated with the first speakable order precede items associated with the second speakable order in the initial queue. 
     
     
       7. The method of  claim 1 , wherein providing the voice output comprises providing the voice output for the first speakable item and the at least one second speakable item sequentially and without human intervention. 
     
     
       8. The method of  claim 1 , wherein the at least two speakable items are displayed on a display of the electronic device. 
     
     
       9. An electronic device operative to provide voice feedback to a user, comprising a processor, a display, and an audio output, the processor operative to:
 determine that the content displayed on the electronic device has changed; 
 in response to a determination that the content displayed on the electronic device has changed, identify at least two speakable items to be provided to a user, the at least two speakable items including a first speakable item associated with a first speakable order, and at least one second speakable item associated with a second speakable order; 
 generate an initial queue including the identified first speakable item and the at least one second speakable item; 
 order the first speakable item and the at least one second speakable item in the initial queue based on the respective speakable order associated with the first speakable item and the at least one second speakable item; and 
 provide voice output corresponding to the first speakable item and the at least one second speakable item in the order specified in the initial queue. 
 
     
     
       10. The electronic device of  claim 9 , the processor further operative to:
 determine whether content displayed on the electronic device has changed a second time; 
 in accordance with a second determination that the content displayed on the electronic device has changed:
 identify at least two further speakable items to be provided to the user, the at least two further speakable items including a third speakable item associated with a third speakable order, and at least one fourth speakable item associated with a fourth speakable order; 
 update at least a portion of the initial queue to generate a revised queue including at least the third speakable item and the at least one fourth speakable item; and 
 order at least the third speakable item and the at least one fourth speakable item in the revised queue based on the respective speakable order associated with the third speakable item and the at least one fourth speakable item. 
 
 
     
     
       11. The electronic device of  claim 10 , the processor further operative to, when the content displayed on the electronic device has changed the second time during the providing of the voice output corresponding to the first speakable item and the at least one speakable item:
 detect the speakable item for which voice output was provided during changing of the content displayed on the electronic device; 
 determine that the detected speakable item has the same speakable order in the initial queue and in the revised queue; and 
 provide voice output from the revised queue starting with the detected speakable item. 
 
     
     
       12. The electronic device of  claim 10 , the processor further operative to, when the content displayed on the electronic device has changed the second time during the providing of the voice output corresponding to the first speakable item and the at least one speakable item:
 detect the speakable item for which voice output was provided during changing of the content displayed on the electronic device; 
 compare the initial queue and the revised queue to identify common portions of the queues; 
 determine that the speakable item for which voice output was provided during changing of the content displayed on the electronic device is not in a portion of the revised queue that is in common with the initial queue; and 
 stop providing voice output for the speakable item for which voice output was provided during changing of the content displayed on the electronic device. 
 
     
     
       13. The electronic device of  claim 12 , the processor further operative to:
 identify a speakable item of the revised queue that follows the common portions of the queues; and 
 provide voice output from the revised queue starting with the identified speakable item of the revised queue that follows the common portions of the queues. 
 
     
     
       14. The electronic device of  claim 9 , wherein items associated with the first speakable order precede items associated with the second speakable order in the initial queue. 
     
     
       15. The electronic device of  claim 9 , wherein the processor operative to provide the voice output is further operative to provide the voice output for the first speakable item and the at least one second speakable item sequentially and without human intervention. 
     
     
       16. The electronic device of  claim 9 , wherein the at least two speakable items are displayed on a display of the electronic device. 
     
     
       17. A non-transitory computer readable storage media for providing voice feedback to a user of an electronic device, the computer readable media comprising computer program logic recorded thereon for:
 determining that the content displayed on the electronic device has changed; 
 in response to a determination that the content displayed on the electronic device has changed, identifying at least two speakable items to be provided to a user, the at least two speakable items including a first speakable item associated with a first speakable order, and at least one second speakable item associated with a second speakable order; 
 generating an initial queue including the identified first speakable item and the at least one second speakable item; 
 ordering the first speakable item and the at least one second speakable item in the initial queue based on the respective speakable order associated with the first speakable item and the at least one second speakable item; and 
 providing voice output corresponding to the first speakable item and the at least one second speakable item in the order specified in the initial queue. 
 
     
     
       18. The non-transitory computer readable storage media of  claim 17 , further comprising computer program logic for:
 determining whether content displayed on the electronic device has changed a second time; 
 in accordance with a second determination that the content displayed on the electronic device has changed:
 identifying at least two further speakable items to be provided to the user, the at least two further speakable items including a third speakable item associated with a third speakable order, and at least one fourth speakable item associated with a fourth speakable order; 
 updating at least a portion of the initial queue to generate a revised queue including at least the third speakable item and the at least one fourth speakable item; and 
 ordering at least the third speakable item and the at least one fourth speakable item in the revised queue based on the respective speakable order associated with the third speakable item and the at least one fourth speakable item. 
 
 
     
     
       19. The non-transitory computer readable storage media of  claim 18 , further comprising computer program logic for, when the content displayed on the electronic device has changed the second time during the providing of the voice output corresponding to the first speakable item and the at least one speakable item:
 detecting the speakable item for which voice output was provided during changing of the content displayed on the electronic device; 
 determining that the detected speakable item has the same speakable order in the initial queue and in the revised queue; and 
 providing voice output from the revised queue starting with the detected speakable item. 
 
     
     
       20. The non-transitory computer readable storage media of  claim 18 , further comprising computer program logic for, when the content displayed on the electronic device has changed the second time during the providing of the voice output corresponding to the first speakable item and the at least one speakable item:
 detecting the speakable item for which voice output was provided during changing of the content displayed on the electronic device; 
 comparing the initial queue and the revised queue to identify common portions of the queues; 
 determining that the speakable item for which voice output was provided during changing of the content displayed on the electronic device is not in a portion of the revised queue that is in common with the initial queue; and 
 stopping providing voice output for the speakable item for which voice output was provided during changing of the content displayed on the electronic device. 
 
     
     
       21. The non-transitory computer readable storage media of  claim 20 , further comprising computer program logic for:
 identifying a speakable item of the revised queue that follows the common portions of the queues; and 
 providing voice output from the revised queue starting with the identified speakable item of the revised queue that follows the common portions of the queues. 
 
     
     
       22. The non-transitory computer readable storage media of  claim 17 , the computer program logic for providing the voice output further comprises computer program logic for providing the voice output for the first speakable item and the at least one second speakable item sequentially and without human intervention. 
     
     
       23. The non-transitory computer readable storage media of  claim 17 , wherein the at least two speakable items are displayed on a display of the electronic device.

Description:
RELATED APPLICATION 
     This application is a continuation of U.S. application Ser. No. 12/205,780, filed Sep. 5, 2008, which is incorporated herein by reference in its entirety. 
    
    
     BACKGROUND OF THE INVENTION 
     This invention is directed to providing multi-tiered voice feedback in an electronic device. 
     Many electronic devices provide a significant number of features or operations accessible to a user. The number of available features or operations may often exceed the number of inputs available using an input mechanism of the electronic device. To allow users to access electronic device operations that are not specifically tied to particular inputs (e.g., inputs not associated with a key sequence or button press, such as a MENU button on an iPod, available from Apple Inc.), the electronic device may provide menus with selectable options, where the options are associated with electronic device operations. For example, an electronic device may display a menu with selectable options on a display, for example in response to receiving an input associated with the menu from an input mechanism (e.g., a MENU button). 
     Because the menu is typically displayed on an electronic device display, a user may be required to look at the display to select a particular option. This may sometimes not be desirable. For example, if a user desires to conserve power (e.g., in a portable electronic device), requiring the electronic device to display a menu and move a highlight region navigated by the user to provide a selection may use up power. As another example, if a user is in a dark environment and the display does not include back lighting, the user may not be able to distinguish displayed options of the menu. As still another example, if a user is blind or visually impaired, the user may not be able to view a displayed menu. 
     To overcome this issue, some systems may provide audio feedback in response to detecting an input from a user or a change in battery status, as described in commonly assigned U.S. Patent Publication No. 2008/0129520, entitled ELECTRONIC DEVICE WITH ENHANCED AUDIO FEEDBACK, filed Dec. 1, 2006, which is incorporated by reference herein in its entirety. In some cases, the electronic device may provide voice feedback describing options that a user may select or operations that the user may direct the electronic device to perform. If several menus are simultaneously displayed, or if a display includes different modules or display areas (e.g., several views), the electronic device may have difficulty determining the objects or menu options, or the order of objects or menu options, for which to provide a voice feedback. 
     SUMMARY OF THE INVENTION 
     This invention is directed to systems and methods for providing multi-tiered voice feedback to a user. In particular, this invention is directed to providing voice feedback for several displayed objects (e.g., menu items) in a predetermined order (e.g., based on tiers associated with each displayed object). 
     In some embodiments, a method, electronic device, and computer readable media for providing voice feedback to a user of an electronic device may be provided. The electronic device may display several elements and identify at least two of the elements for which to provide voice feedback. The electronic device may determine a tier associated with the display of each of the identified elements, where the tier defines the relative importance of each displayed element. The electronic device may then provide voice feedback for the identified elements in an order of the determined tiers, for example such that voice feedback is first provided for the most important element, and subsequently provided for the next most important element until voice feedback has been provided for each element. 
     In some embodiments, a method, electronic device, and computer readable media for providing audio feedback for displayed content may be provided. The electronic device may direct a display to display several elements, where speakable properties are associated with at least two of the elements. The electronic device may determine a tier associated with each of the at least two elements and generate a queue that includes the at least two elements. The determined tiers may set the order of the elements in the generated queue. The electronic device may direct an audio output to sequentially speak each queue element in the order of the queue, where the audio output includes voice feedback associated with each of the at least two elements. 
     In some embodiments, a method, electronic device and computer readable media for speaking the text of elements displayed by an electronic device may be provided. The electronic device may display several elements with which speakable properties are associated. The speakable properties may identify, for each element, text to speak. The electronic device may display the several elements in several views, where each view is associated with speakable order. The electronic device may generate a queue that includes the several elements, where the order of the elements in the queue is set from the speakable order of each view (e.g., such that elements with a higher speakable order are at the beginning of the queue). The electronic device may wait for a first timeout to lapse and identify audio files associated with each of the elements of the queue. During the first timeout, the electronic device may modify audio playback to make speech easier to hear and to prevent the electronic device from speaking while a transaction is detected. The audio files may include the spoken speakable property text to speak for each element. The electronic device may sequentially play back the identified audio files in the order of the queue and pause for a second timeout. The second timeout may allow the electronic device to return audio playback to the pre-speaking configuration (e.g., music playback). In some embodiments, the electronic device may receive the audio files from a host device that generates the audio files using a text to speech engine from the speakable property text to speak for each element. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The above and other features of the present invention, its nature and various advantages will be more apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings in which: 
         FIG. 1  is a schematic view of a electronic device in accordance with one embodiment of the invention; 
         FIG. 2  is a schematic view of an illustrative display screen having content for which voice feedback may be available in accordance with one embodiment of the invention; 
         FIG. 3  is a schematic view of an illustrative queue of speakable items for playback associated with the display of  FIG. 2  in accordance with one embodiment of the invention; 
         FIG. 4  is a schematic view of an electronic device display after receiving a user selection of an option of the display of  FIG. 2  in accordance with one embodiment of the invention; 
         FIG. 5  is a schematic view of an illustrative queue of speakable items for playback associated with the display of  FIG. 4  in accordance with one embodiment of the invention; 
         FIG. 6  is a schematic view of the electronic device display of  FIG. 4  having a different marked option in accordance with one embodiment of the invention; 
         FIG. 7  is a schematic view of an illustrative queue of speakable items for playback associated with the display of  FIG. 6  in accordance with one embodiment of the invention; 
         FIG. 8  is a schematic view of an electronic device display provided in response to a user selecting the highlighted menu option of  FIG. 6  in accordance with one embodiment of the invention; 
         FIG. 9  is a schematic view of an illustrative queue of speakable items for playback associated with the display of  FIG. 8  in accordance with one embodiment of the invention; 
         FIG. 10  is a schematic view of an illustrative “Now Playing” display in accordance with one embodiment of the invention; 
         FIG. 11  is a schematic view of an illustrative queue of speakable items for a Now Playing display in accordance with one embodiment of the invention; 
         FIG. 12  is an illustrative state diagram for speaking speakable strings in accordance with one embodiment of the invention; 
         FIG. 13  is a schematic view of an illustrative communications system including an electronic device and a host device in accordance with one embodiment of the invention; 
         FIG. 14  is a flowchart of an illustrative process for providing static strings to an electronic device; and 
         FIG. 15  is a flowchart of an illustrative process for providing dynamic strings to an electronic device. 
     
    
    
     DETAILED DESCRIPTION 
     An electronic device operative to provide selective voice feedback based on tiers associated with displayed options is provided. 
     The electronic device may include a processor and a display. The electronic device may display any suitable information to the user. For example, a display may include a title bar, a menu with selectable options, an information region for displaying information related to one or more options, information identifying media or files available for selection, or any other suitable information. As the user accesses the display, the electronic device may provide voice feedback for the different displayed elements. 
     Each displayed element may be associated with different properties. In some embodiments, displayed elements for which voice feedback is to be provided may be associated with a speakable property. The speakable property may include the text to be spoken for the associated element. In addition, each element, as part of a view implemented for displaying the element, may be associated with a speakable order or tier. As an electronic device displays elements (e.g., as part of the view), the electronic device may determine, from the speakable properties and the speakable orders, the text for which to provide voice feedback (e.g., the text to speak) and the order or tiers associated with each element. The electronic device may select the element having the highest tier and provide voice feedback (e.g., speak) for the selected element. The electronic device may then successively select each element having the next highest tier and provide voice feedback for the subsequent elements in tier order (e.g., using a queue in which the order of elements is set by the tiers associated with each element). Elements that do not include a speakable property or speakable order (e.g., elements for which no voice feedback is provided) may be ignored or skipped by the electronic device as it provides voice feedback. 
     The electronic device may determine which element to speak at a particular time using any suitable approach. In some embodiments, the electronic device may provide voice feedback in response to detecting a transaction (e.g., a decision regarding what elements can be spoken). For example, the electronic device may detect a transaction in response to determining that the display has transitioned, or in response to receiving a user action causing the display to change (e.g., the user selected an option or moved a highlight region). In response to detecting a transaction, the electronic device may identify the speakable elements of the updated display, and the tiers associated with the speakable elements (e.g., elements within the transaction to speak in order). The electronic device may then create a new queue of elements for which voice feedback is to be provided based on the identified elements of the updated display, and provide voice feedback based on the newly created queue. In some embodiments, the new queue may be constructed by replacing unspoken equal or lower tier items of an existing queue. The particular elements spoken, and the order in which the elements are spoken may change with each transaction. 
     The audio files that are played back in response to receiving an instruction to provide voice feedback for a particular displayed element may be generated using any suitable approach. In some embodiments, to provide high quality audio using a text to speech (TTS) engine, the audio files may be received from a host device connected to the electronic device. This approach may be particularly desirable if the electronic device has limited resources (e.g., inherent memory, processing and power limitations due to the portability of the electronic device). The electronic device may provide a host device with a file listing strings associated with each element to be spoken by the device. The host device may then convert the strings to speech using a text-to-speech engine and provide the audio files of the speech to the electronic device. The electronic device may then consult a mapping of strings to audio files to provide the proper audio file for playback in response to determining that voice feedback for a displayed element is to be provided. 
       FIG. 1  is a schematic view of a electronic device in accordance with one embodiment of the invention. Electronic device  100  may include processor  102 , storage  104 , memory  106 , input mechanism  108 , audio output  110 , display  112 , and communications circuitry  114 . In some embodiments, one or more of electronic device components  100  may be combined or omitted (e.g., combine storage  104  and memory  106 ). In some embodiments, electronic device  100  may include other components not combined or included in those shown in  FIG. 1  (e.g., a power supply or a bus), or several instances of the components shown in  FIG. 1 . For the sake of simplicity, only one of each of the components is shown in  FIG. 1 . 
     Processor  102  may include any processing circuitry operative to control the operations and performance of electronic device  100 . For example, processor  100  may be used to run operating system applications, firmware applications, media playback applications, media editing applications, or any other application. In some embodiments, a processor may drive a display and process inputs received from a user interface. 
     Storage  104  may include, for example, one or more storage mediums including a hard-drive, solid state drive, flash memory, permanent memory such as ROM, any other suitable type of storage component, or any combination thereof. Storage  104  may store, for example, media data (e.g., music and video files), application data (e.g., for implementing functions on device  100 ), firmware, user preference information data (e.g., media playback preferences), authentication information (e.g. libraries of data associated with authorized users), lifestyle information data (e.g., food preferences), exercise information data (e.g., information obtained by exercise monitoring equipment), transaction information data (e.g., information such as credit card information), wireless connection information data (e.g., information that may enable electronic device  100  to establish a wireless connection), subscription information data (e.g., information that keeps track of podcasts or television shows or other media a user subscribes to), contact information data (e.g., telephone numbers and email addresses), calendar information data, and any other suitable data or any combination thereof. 
     Memory  106  can include cache memory, semi-permanent memory such as RAM, and/or one or more different types of memory used for temporarily storing data. In some embodiments, memory  106  can also be used for storing data used to operate electronic device applications, or any other type of data that may be stored in storage  104 . In some embodiments, memory  106  and storage  104  may be combined as a single storage medium. 
     Input mechanism  108  may provide inputs to input/output circuitry of the electronic device. Input mechanism  108  may include any suitable input mechanism, such as for example, a button, keypad, dial, a click wheel, or a touch screen. In some embodiments, electronic device  100  may include a capacitive sensing mechanism, or a multi-touch capacitive sensing mechanism. Some sensing mechanisms are described in commonly owned U.S. patent application Ser. No. 10/902,964, filed Jul. 10, 2004, entitled “Gestures for Touch Sensitive Input Device,” and U.S. patent application Ser. No. 11/028,590, filed Jan. 18, 2005, entitled “Mode-Based Graphical User Interfaces for Touch Sensitive Input Device,” both of which are incorporated herein in their entirety. 
     Audio output  110  may include one or more speakers (e.g., mono or stereo speakers) built into electronic device  100 , or an audio connector (e.g., an audio jack or an appropriate Bluetooth connection) operative to be coupled to an audio output mechanism. For example, audio output  110  may be operative to provide audio data using a wired or wireless connection to a headset, headphones or earbuds. 
     Display  112  may include display circuitry (e.g., a screen or projection system) for providing a display visible to the user. For example, display  112  may include a screen (e.g., an LCD screen) that is incorporated in electronic device  100 . As another example, display  112  may include a movable display or a projecting system for providing a display of content on a surface remote from electronic device  100  (e.g., a video projector). In some embodiments, display  112  can include a coder/decoder (Codec) to convert digital media data into analog signals. For example, display  112  (or other appropriate circuitry within electronic device  100 ) may include video Codecs, audio Codecs, or any other suitable type of Codec. 
     Display  112  also can include display driver circuitry, circuitry for driving display drivers, or both. Display  112  may be operative to display content (e.g., media playback information, application screens for applications implemented on the electronic device, information regarding ongoing communications operations, information regarding incoming communications requests, or device operation screens) under the direction of processor  102 . 
     One or more of input mechanism  108 , audio output  110  and display  112  may be coupled to input/output circuitry. The input/output circuitry may be operative to convert (and encode/decode, if necessary) analog signals and other signals into digital data. In some embodiments, the input/output circuitry can also convert digital data into any other type of signal, and vice-versa. For example, the input/output circuitry may receive and convert physical contact inputs (e.g., from a multi-touch screen), physical movements (e.g., from a mouse or sensor), analog audio signals (e.g., from a microphone), or any other input. The digital data can be provided to and received from processor  102 , storage  104 , memory  106 , or any other component of electronic device  100 . In some embodiments, several instances of the input/output circuitry can be included in electronic device  100 . 
     Communications circuitry  114  may be operative to communicate with other devices or with one or more servers using any suitable communications protocol. Electronic device  100  may include one more instances of communications circuitry for simultaneously performing several communications operations using different communications networks. For example, communications circuitry may support Wi-Fi (e.g., a 802.11 protocol), Ethernet, Bluetooth™ (which is a trademark owned by Bluetooth Sig, Inc.), radio frequency systems, cellular networks (e.g., GSM, AMPS, GPRS, CDMA, EV-DO, EDGE, 3GSM, DECT, IS-136/TDMA, iDen, LTE or any other suitable cellular network or protocol), infrared, TCP/IP (e.g., any of the protocols used in each of the TCP/IP layers), HTTP, BitTorrent, FTP, RTP, RTSP, SSH, Voice over IP (VOIP), any other communications protocol, or any combination thereof. In some embodiments, communications circuitry  114  may include one or more communications ports operative to provide a wired communications link between electronic device  100  and a host device. For example, a portable electronic device may include one or more connectors (e.g., 30 pin connectors or USB connectors) operative to receive a cable coupling the portable electronic device to a host computer. Using software on the host computer (e.g. iTunes available from Apple Inc.), the portable electronic device may communicate with the host computer. 
     In some embodiments, electronic device  100  may include a bus operative to provide a data transfer path for transferring data to, from, or between control processor  102 , storage  104 , memory  106 , input/output circuitry  108 , sensor  110 , and any other component included in the electronic device. 
     The electronic device may provide voice feedback for any suitable displayed content, including for example menu options or content available for playback to a user (e.g., voice feedback for metadata associated with media, such as an artist name, media title, or album).  FIG. 2  is a schematic view of an illustrative display screen having content for which voice feedback may be available in accordance with one embodiment of the invention. Display  200  may include several areas on which content is displayed. For example, display  200  may include title bar  210 , menu  220  and additional information  230 . Title bar  210  may include title  212  indicating the mode or application in use by the electronic device. For example, title  212  may include iPod (e.g., the top most title when no application has been selected), Music, Videos, Photos, Podcasts, Extras, and Settings. Other titles may be available, for example when an accessory device is coupled to the electronic device (e.g., a radio accessory or workout accessory). Title bar  210  may also include any other suitable information, including for example battery indicator  214 . 
     Menu  220  may include several selectable options  222 , including for example options for selecting a mode or application, or options associated with a particular selected mode or application. A user may select an option from menu  220  by navigating highlight region  224  over an option. The user may provide a selection instruction (e.g., by pressing a button or providing any other suitable input) while the highlight region is over a particular option to select the particular option. Additional information  230  may include any suitable information, including for example information associated with the mode or application identified by title  212 , one or more displayed options  222 , the particular option identified by highlight region  224 , or any other suitable information. 
     The electronic device may generate display  200 , or any other display using any suitable approach. In some embodiments, a Model-View-Controller (MVC) architecture or design may be used. The model may include any suitable information coupled to a view for display by a controller (e.g., the controller may query the model to construct views, or modify a view&#39;s connection to a model at runtime). For example, a model may include one or more strings or images. Each view may be configured to display (e.g., support) one or more types of element. The view may pass the supported types to a get_Property call, in response to which the model may provide data associated with the supported type to the view for display by the device. Several views may be combined to form each display. For example, display  200  may include at least one view for each area of the display. 
     To facilitate providing voice feedback for displayed content, the electronic device may incorporate voice feedback variables and settings in the MVC architecture associated with the actual display of content. In some embodiments, the model may include an additional speakable property field. The speakable property field may include any suitable information necessary or useful for providing voice feedback. In some embodiments, the speakable property field may include an indication that voice feedback is to be provided (e.g., a toggled setting). The electronic device may determine the text to speak using any suitable approach. In some embodiments, the view or scheduling system may query the property ID of the type associated with the view. In some embodiments, a fixed size ID generated from a property ID (e.g., using a hash table) may instead or in addition be provided to identify the text for which to provide voice feedback. In some embodiments, the speakable property may instead or in addition include a string of text to be spoken by the electronic device, or a pointer to the field having the text to be displayed in the model. 
     The electronic device may incorporate the tier or importance in any suitable component of the MVC architecture, including for example as a speakable order variable associated with each view. The speakable order may provide an indication of the importance of the speakable element displayed in the corresponding view, for example relative other text in other views that may be displayed. The indication may include, for example, a tier of speech. The electronic device may define any suitable speakable order or tier, including for example, context (e.g., associated with menu titles), focus (e.g., list control, such as highlight region position), choice (e.g., an option associated with an item on a list), property (e.g., a detailed description or lyrics for media), detail, and idle. Each view may be associated with one or more tiers or speakable orders, for example based on the model or elements displayed in the view. For example, a view may be associated with several tiers if a menu option and associated setting (e.g., Backlight option  224  and setting  226 ) are simultaneously displayed within a view. Alternatively, the menu option and setting may be provided in different views. 
     If a view or several views are displayed as part of a display, the electronic device may retrieve from the model the elements to display, and the manner in which to display the elements. In addition, the electronic device may retrieve the speakable properties from each model and the speakable order from each displayed view. The electronic device may provide voice feedback for any suitable speakable element of a display. For example, the electronic device may provide voice feedback for one or more views. As another example, the electronic device may provide voice feedback for one or more elements in a particular view. In some embodiments, the electronic device may provide voice feedback, in a particular view, for only one element at each tier (e.g., provide voice feedback for only one element in menu  220 , where each option is associated with a particular tier). 
     To provide voice feedback for displayed speakable elements in the proper order, a speech scheduler of the electronic device may define a queue of items for which to provide voice feedback (e.g., speakable items) in which the speakable order or tier sets the order of the elements in the queue. The electronic device may speak any suitable combination of displayed elements. For example, the electronic device may speak only one menu item (e.g., the menu item identified by a highlight region). As another example, the electronic device may speak several menu items (e.g., all menu items that come after the highlighted menu item). As still another example, the electronic device may speak all menu items. To ensure that the electronic device first speaks the menu item identified by the highlight region, the electronic device may associate a higher tier or order to the corresponding menu item. This discussion will interchangeably use the terms “speaking” a speakable element or string and “playing an audio file” associated with a speakable element or string to describe providing voice feedback for a speakable element. 
     In some embodiments, the speech scheduler may only include one speakable element for each tier of each view in the queue. This may provide an easy mechanism, for example, for the electronic device to speak only a menu item that is highlighted (e.g., only speak “Music” and not the other items in menu  220  by assigning the Focus tier only to the “Music” menu option). If, within a transaction, several displayed items change within a view at a given tier, the speech scheduler may only place the most recent changed item in the queue. To provide voice feedback for several items associated with a same speakable order in a single transaction, the electronic device may display the several items in distinct views associated with the same speakable order. The speech scheduler may use any suitable approach for providing voice feedback for different elements of views having the same tier (e.g., Idle tier in a Now Playing display, described below in more detail). For example, the speech scheduler may follow the order of the elements in one or more resource files, an order based on the graphical position of the views, alphabetically, or using any suitable order. 
       FIG. 3  is a schematic view of an illustrative queue of speakable items for playback associated with the display of  FIG. 2  in accordance with one embodiment of the invention. Queue  300  may be depicted using any suitable approach. In the example of  FIG. 3 , queue  300  may include list  310  of speakable strings to speak successively. Each speakable string, as part of a view, may be associated with a speakable tier, identified in corresponding column  340 . Using the elements from display  200  ( FIG. 2 ), the speakable strings may include iPod string  312  having Context tier  342  and Music string  313  having Focus tier  343  (e.g., the menu item identified by the highlight region is the only one spoken). In implementations in which all menu items are spoken (e.g., and not only the menu items identified by a highlight region), the speakable strings may include a Videos string, a Photos string, a Podcasts string, an Extras string, a Settings string, a Shuffle Songs string, and a Backlight string, for example all having Choice tiers (e.g., a tier below the Focus tier of Music string  313 ). In addition, because the Backlight option may be displayed with an associated setting, queue  300  may also include an On string associated with a Properties tier, which may be spoken after the Backlight string is spoken. In implementations in which only the highlighted option is spoken, the electronic device may assign a Focus tier to the Backlight string and a Choice tier to the On string in response to detecting that the highlight region has been placed over the Backlight option in the menu. The electronic device may identify audio files associated with each of the speakable strings (e.g., using a hash or database) and successively play back each of the identified audio files in the order set by queue  300 . 
     When the content on the electronic device display changes, the electronic device may modify the voice feedback provided to reflect the changed display.  FIG. 4  is a schematic view of an electronic device display after receiving a user selection of an option of the display of  FIG. 2  in accordance with one embodiment of the invention. Similar to display  200  ( FIG. 2 ), display  400  may include several areas on which content is displayed. For example, display  400  may include title bar  410 , menu  420  and additional information  430 . Title bar  410  may include title  412  indicating the mode or application in use by the electronic device. In the example of  FIG. 4 , title  412  may include Music, indicating the option from menu  220  ( FIG. 2 ) that was selected. 
     Menu  420  may include several selectable options  422 , including for example options associated with a particular selected mode or application. A user may select an option from menu  420  by navigating highlight region  424  over the option. The user may provide a selection instruction (e.g., by pressing a button or providing any other suitable input) while the highlight region is over a particular option to select the particular option. In the example of  FIG. 4 , options  422  may include Cover Flow, Playlists, Artists, Albums, Songs, Genres, Composers, Audiobooks, and Search. Additional information  430  may include any suitable information, including for example information associated with the mode or application identified by title  412 , one or more displayed options  422 , the particular option identified by highlight region  424 , or any other suitable information. 
     In response to determining that the displayed content has changed (e.g., in response to detecting a transaction), the speech scheduler may update or revise the queue of speakable items providing voice feedback for the display. For example, the speech scheduler may determine the speakable properties associated with each view of the changed display to generate the queue.  FIG. 5  is a schematic view of an illustrative queue of speakable items for playback associated with the display of  FIG. 4  in accordance with one embodiment of the invention. Queue  500  may be depicted using any suitable approach. In the example of  FIG. 5 , queue  500  may include list  510  of speakable strings to speak successively. Each speakable string, as part of a view, may be associated with a speakable tier, identified in corresponding column  540 . Using the elements from display  400  ( FIG. 4 ), the speakable strings may include Music string  512  having Context tier  542  and Cover Flow string  513  having Focus tier  543  (e.g., the menu option identified by the highlight region). In implementations where all menu items are spoken, queue  500  may include a Playlists string, an Artists string, an Albums string, a Songs string, a Genres string, a Composers, an Audiobooks string, and a Search string, for example all having a Choice tier (e.g., a tier below Focus tier  543  of Cover Flow string  513 ). The electronic device may identify audio files associated with each of the speakable strings (e.g., using a hash or database) and successively play back each of the identified audio files in the order set by queue  500 . 
     In some embodiments, the voice feedback provided by the electronic device may change when the displayed content remains the same, but when a marker controlled by the user (e.g., a highlight region) changes. This may allow a user to identify the action that will be performed in response to a user selection of the option identified by the marker as the user moves the marker.  FIG. 6  is a schematic view of the electronic device display of  FIG. 4  having a different marked option in accordance with one embodiment of the invention. Similar to display  400  ( FIG. 4 ), display  600  may include several areas on which content is displayed. For example, display  600  may include title bar  610 , menu  620  and additional information  630 . Title bar  610  may include title  612  indicating the mode or application in use by the electronic device, which may be the same mode (e.g., Music) as display  400 . 
     Menu  620  may include the same selectable options  622  as display  400 . As shown in  FIG. 6 , a user may have navigated highlight region  624  over an Artist option (e.g., instead of a Cover Flow option as in display  400 ). The displayed additional information  630  may include any suitable information, including for example information associated with the mode or application identified by title  612 , one or more displayed options  622 , the particular option identified by highlight region  624 , or any other suitable information. In the example of  FIGS. 4 and 6 , the additional information displayed may be different, reflecting the position of highlight region  624 . 
     In response to determining that the position of the highlight region has changed (e.g., in response to detecting a transaction), the speech scheduler may update the queue of speakable items providing voice feedback for the display. For example, the speech scheduler may determine the revised, modified or updated speakable properties associated with each view of the changed display to generate the queue.  FIG. 7  is a schematic view of an illustrative queue of speakable items for playback associated with the display of  FIG. 6  in accordance with one embodiment of the invention. Queue  700  may be depicted using any suitable approach. In the example of  FIG. 7 , queue  700  may include list  710  of speakable strings to speak successively. Each speakable string, as part of a view, may be associated with a speakable tier, identified in corresponding column  740 . Using the elements from display  600  ( FIG. 6 ), the speakable strings may include Music string  712  having Context tier  742  and Artists string  713  having Focus tier  743  (e.g., the menu option identified by the highlight region). In particular, the listing of speakable strings in queue  700  may be different than that of queue  500  ( FIG. 5 ) to reflect that the highlight region moved down to the Artists option. For example, the speakable strings that would be spoken in queue  500  before queue  700  may be removed from queue  700 . The electronic device may identify audio files associated with each of the speakable strings (e.g., using a hash or database) and successively play back each of the identified audio files in the order set by queue  700 . In implementations where voice feedback for non-highlighted menu options is provided, queue  700  may include an Albums string, a Songs string, a Genres string, a Composers, an Audiobooks string, a Search string, a Cover Flow string, and a Playlists string, for example all having a Choice tier (e.g., a tier below Focus tier  743  of Artist string  713 ). The other menu options may be ordered in any suitable manner, including for example as a repeating list that begins with the menu item identified by the highlight region. 
     The electronic device may play back any portion of a speakable option audio file in response to detecting a transaction. In some embodiments, if the electronic device begins playing back the audio files associated with display  200  when the user provides an instruction to access display  400 , or the audio files associated with the speakable strings of display  400  as the user moves the highlight region to the position reflected in display  600 , the electronic device may selectively stop playing back the audio file or continue playing back the audio file based on at least one of the tier associated with the audio file and the modification of the speech scheduler queue of speakable items. In some embodiments, the speech scheduler may first determine the updated queue, and compare the initial queue to the updated queue. In particular, the speech scheduler may determine, from the beginning of the queues, the portions of the initial queue and updated queue that remain the same, and the position of the updated queue from which the order of speakable elements changes. For example, as the speech scheduler moves from queue  300  to queue  500 , the speech scheduler may determine that the queues do not share any common speakable strings and therefore are different from the first position. As another example, as the speech scheduler moves from queue  500  to queue  700 , the speech scheduler may determine that the queues share the speakable string associated with the Context tier, but differ starting with the speakable string associated with the Focus tier. 
     The speech scheduler may further determine the position on each of the initial queue and the updated queue (if present) of the speakable string for which audio is currently being provided. For example, as the speech scheduler moves from queue  500  to queue  700 , the speech scheduler may determine whether the speakable string for which an audio file is played back is the speakable string “Music” (e.g., the speakable string shared by queues  500  and  700 ) or a different speakable string (e.g., not shared by queues  500  and  700 ). If the speech scheduler determines that the currently spoken speakable string falls within the speakable strings shared by the initial and updated queues, the speech scheduler may continue to speak or play back the audio associated with the speakable string, and subsequently continue to play back audio associated with the speakable strings of the updated queue in the order set by the updated queue. For example, if the electronic device is playing back the audio associated with the speakable string “Music” (which has a Context tier) as the user causes the display to change from display  400  to display  600 , the electronic device may provide the audio associated with the speakable string “Artists” (the next item in the queue associated with display  600 ) when the electronic device finishes playing back the audio associated with the speakable string “Music” (e.g., instead of the audio associated with the speakable string “Cover Flow,” which was the next speakable string in the queue associated with display  400 ). 
     If the speech scheduler instead determines that the currently spoken speakable string does not fall within the range of speakable strings shared by the initial and updated queues, the electronic device may cease playing back the audio associated with the currently spoken speakable string. For example, the electronic device may cease playing back the audio as soon as the speech scheduler determines that the currently spoken speech is not within the range of shared speakable strings. The electronic device may then resume playing back audio associated with any suitable speakable string of the updated queue, including for example speakable strings of the updated queue starting with the speakable string of the updated queue from which the order of speakable elements changed. For example, if the electronic device is currently speaking the speakable string “Cover Flow” as the user causes the electronic device to move from display  400  to display  600 , the electronic device may stop playing back the audio associated with the speakable string “Cover Flow” (e.g., and only play back the audio for “Cover”) and begin playing back the audio associated with the speakable string “Artists” (e.g., the first speakable string of queue  700  that is different from queue  500 ). In implementations in which all menu items are spoken, if the electronic device is currently speaking the speakable string “Genres” as the user causes the electronic device to move from display  400  to display  600 , the electronic device may stop playing back the audio associated with the speakable string “Genre” and begin playing back the audio associated with the speakable string “Artists.” The speakable string “Genre” may then be spoken again when it is reached in the queue associated with display  600  (e.g., queue  700 ). Accordingly, if a user moves a highlight region along the options displayed in display  400  at an appropriate speed, the electronic device may only play back portions (e.g., the first syllables) of each of the options of display  400 . 
     In some embodiments, the electronic device may provide voice feedback for menu items that are not statically provided by the electronic device firmware or operating system. For example, the electronic device may provide voice feedback for dynamic strings generated based on content provided by the user to the electronic device (e.g., from a host device). In some embodiments, the electronic device may provide voice feedback for media transferred to the electronic device by a user (e.g., based on metadata associated with the transferred media).  FIG. 8  is a schematic view of an electronic device display provided in response to a user selecting the highlighted menu option of  FIG. 6  in accordance with one embodiment of the invention. Similar to display  600  ( FIG. 6 ), display  800  may include several areas on which content is displayed. For example, display  800  may include title bar  810 , menu  820  and additional information  830 . Title bar  810  may include title  812  indicating the mode or application in use by the electronic device (e.g., “Artists”). 
     Menu  820  may include any suitable listing associated with “Artists” mode, including for example listing  822  of the artist names for media available to the electronic device (e.g., media stored by the electronic device). The electronic device may gather the artist names using any suitable approach, including for example from metadata associated with the media. The displayed additional information  830  may include any suitable information, including for example information associated with one or more artists identified in menu  820  (e.g., information related to the media available from the artist identified by highlight region  824 ), or the mode or application identified by title  612 . 
     In response to detecting a transaction (e.g., a user selection of the Artists option in display  600 ,  FIG. 6 ), the speech scheduler may update the queue of speakable items to reflect the displayed dynamic artist names. For example, the speech scheduler may determine the revised, modified or updated speakable properties associated with each view of the changed display to generate the queue.  FIG. 9  is a schematic view of an illustrative queue of speakable items for playback associated with the display of  FIG. 8  in accordance with one embodiment of the invention. Queue  900  may be depicted using any suitable approach. In the example of  FIG. 9 , queue  900  may include list  910  of speakable strings to speak successively. Each speakable string, as part of a view, may be associated with a speakable tier, identified in corresponding column  940 . Using the elements from display  800  ( FIG. 8 ), the speakable strings may include Artists string  912  having Context tier  942  and Common string  913  having Focus tier  943  (e.g., the artist identified by the highlight region). In implementations where voice feedback for non-highlighted menu options is provided, queue  900  may include a The Cons string, a Craig David string, a Creed string, a D 12  string, a Da Brat string, and a Daniel Beddingfield string, for example all having a Choice tier (e.g., a tier below Focus tier  843  of Common string  813 ). The other artists may be ordered in any suitable manner, including for example as a repeating list that begins with the artist identified by the highlight region. 
     In some embodiments, the electronic device may selectively provide voice feedback based on the status of media playback. For example, the electronic device may not provide voice feedback for particular elements or in a particular mode when the electronic device is playing back media.  FIG. 10  is a schematic view of an illustrative “Now Playing” display in accordance with one embodiment of the invention. Display  1000  may include title bar  1010 , menu  1020  and additional information  1030 . Title bar  1010  may include title  1012  indicating the mode or application in use by the electronic device. For example, title  1012  may include iPod (e.g., the top most title when no application has been selected), Music, Videos, Photos, Podcasts, Extras, Settings, and Now Playing. Title bar  1010  may also include any other suitable information, including for example battery indicator  1014 . 
     Menu  1020  may include several selectable options  1022 , including for example options for selecting a mode or application, or options associated with a particular selected mode or application. A user may select an option from menu  1020  by navigating highlight region  1024  over an option. The user may provide a selection instruction (e.g., by pressing a button or providing any other suitable input) while the highlight region is placed over a particular option to select the particular option. For example, to view information related to media that is currently being played back (e.g., currently playing or paused media), the user may select a Now Playing option. In response to receiving a user selection of the Now Playing option, the electronic device may display additional information  1030  related to the now playing media. For example, additional information  1030  may include artist  1032 , title  1034 , and album  1036  overlaid on album art. In some embodiments, each of artist  1032 , title  1034  and album  1036  may be associated with the same or different views (e.g., different views to allow for voice feedback of the additional information using the same tier for all of the additional information elements). 
     In response to receiving a selection of the Now Playing option of display  1000  ( FIG. 10 ), the speech scheduler may update the queue of speakable items to speak one or more strings related to the now playing media. For example, the speech scheduler may determine the revised, modified or updated speakable properties associated with each view of the changed display to generate the queue.  FIG. 11  is a schematic view of an illustrative queue of speakable items for a Now Playing display in accordance with one embodiment of the invention. Queue  1100  may be depicted using any suitable approach. In the example of  FIG. 11 , queue  1100  may include list  1110  of speakable strings to speak successively. Each speakable string, as part of a view, may be associated with a speakable tier, identified in corresponding column  1140 . Using the elements from display  1000  ( FIG. 10 ), the speakable strings may include iPod string  1112  having Context tier  1142 , Now Playing string  1113  having Focus tier  1143  (e.g., the menu option identified by the highlight region), Mika string  1114  having Idle tier  1144 , Grace Kelly string  1115  having Idle tier  1145 , and Life in Cartoon Motion string  1116  having Idle tier  1146 . 
     To ensure that voice feedback for the artist, title and album are not provided at inopportune times, the electronic device may not provide voice feedback for speakable elements associated with the Idle tier when media is playing back (e.g., not paused). For example, the electronic device may first determine whether media is playing back. In response to determining that no media is playing back, the electronic device may provide voice feedback for all of the elements in queue  1100 , including the elements associated with the Idle tier. If the electronic device instead determines that media is currently being played back, the electronic device may provide voice feedback for elements in queue  1100  from views associated with tiers other than the Idle tier. The speech scheduler may, in response to detecting that media is playing back, remove elements associated with the Idle tier from queue  1100 , or instead skip elements associated with Idle tier in queue  1100 . The electronic device may assign an Idle tier to any suitable displayed information, including for example to information displayed in an additional information window or area (e.g., the number of songs or photos stored on the device). 
     The electronic device may determine what strings to speak at what time using any suitable approach.  FIG. 12  is an illustrative state diagram for speaking speakable strings in accordance with one embodiment of the invention. State diagram  1200  may include several states and several paths for accessing each of the several states. The electronic device may begin in Idle state  1202 . For example, the electronic device may remain in the Idle state when no content is displayed. As another example, the electronic device may remain in the Idle state when content is displayed, but the displayed content is not associated with voice feedback (e.g., an album cover art is displayed). As still another example, the electronic device may remain in the Idle state when speakable content is displayed, but the speakable content has all been spoken. 
     While in Idle state  1202 , the electronic device may monitor for transactions of the display. Any decision by the electronic device regarding what elements to speak may result in a transaction. A transaction may be initiated (and detected by the electronic device) using several different approaches. For example, a transaction may be detected in response to receiving a user instruction (e.g., a user selection of a selectable option causing the display to change). As another example, a transaction may be detected in response to a transition of the display (e.g., the display changing, for example due to a timeout or due to a user moving a highlight region). In response to detecting a transaction, the electronic device may move to Update step  1204 . At Update step  1204 , the electronic device may update the variables or fields associated with providing voice feedback. For example, a speech scheduler may generate a queue of items for the electronic device to speak, for example based on fields available from one or more models used to generate views for the post-transaction display. The electronic device may move to PreSpeakTimeout state  1206  after Update step  1204 . 
     At PreSpeakTimeout state  1206 , the electronic device may pause for a first timeout. During the timeout, the electronic device may perform any suitable operation, including for example generate the queues of speakable strings to speak, identify the audio files associated with the speakable strings and perform initial operations for preparing the audio files for playback, duck or fade prior audio outputs (e.g., outputs due to music playback), or perform any other suitable operation. For example, the electronic device may reduce prior audio feedback (e.g., ducking) so that the spoken string may be clearer. As another example, the electronic device may pause the playback of media during the voice feedback (e.g., so that the user does not miss any of the media). As still another example, the electronic device may use PreSpeakTimeout state to ensure that no more recent transactions are detected (e.g., a subsequent movement of a highlight region) to avoid partially speaking text. The electronic device may remain in PreSpeakTimeout state  1206  for any suitable duration, including for example a duration in the range of 0 ms to 500 ms (e.g., 100 ms). Once the first timeout associated with PreSpeakTimeout state  1206  has lapsed, the electronic device move to Resume step  1206  to access Speaking state  1210 . 
     At Speaking state  1210 , the electronic device may speak a speakable item placed in the queue generated during Update step  1204 . For example, the electronic device may identify the audio file associated with a speakable item in the generated queue and play back the identified audio file. When the electronic device finishes speaking the first item in the voice feedback queue generated by the speech scheduler, the electronic device may determine that proper voice feedback has been provided and move to Complete step  1212 . At Complete step  1212 , the speech scheduler may remove the spoken speakable element from the queue or move a pointer to the next speakable element in the queue. In some embodiments, the electronic device may instead remove the speakable element from the queue just before speaking the element (e.g., while in Speaking state  1210 ) so that the first speakable element identified by the electronic device after Complete step  1212 , as the electronic device returns to Speaking state  1210 , is the next element to speak. The electronic device may successively move between Speaking state  1210  and Complete step  1212  until all of the speakable items in the queue generated during an Update step (e.g., Update step  1204 ) have been spoken (e.g., the queue is empty or the pointer has reached the end of the queue), or until the display is changed and a new Update step is performed. 
     In response to detecting a transaction (e.g., described above) while in Speaking state  1210 , the electronic device may move to Update step  1214 . At Update step  1214 , the electronic device may update the variables or fields associated with providing voice feedback to conform to the display resulting from the transaction. For example, the speech scheduler may update the speakable elements, and the order of speakable elements for which to provide voice playback based on the display after the transaction, in an updated voice feedback queue. In some embodiments, the electronic device may in addition determine the portion of the updated queue, starting with the first speakable element of the queue, that matches the initial voice feedback queue (e.g., prior to step  1214 ), and identify the current speakable element for which voice feedback is being provided. If the electronic device determines that the current speakable element is within the portion of shared speakable elements of the initial and updated queues, the electronic device may return to Speaking state  1210  and continue to speak the next speakable element of the updated queue (e.g., using Complete step  1212  and Speaking state  1210 ). If the electronic device instead determines that the current speakable element is not within the portion of shared speakable elements of the initial and updated queues, the electronic device may cease speaking the current speakable element (e.g., stop playing back the audio file associated with the current speakable element) and return to Speaking state  1210 . Upon returning to Speaking state  1210 , the electronic device may provide voice feedback for the speakable elements of the updated queue, for example beginning with the first speakable element of the queue after the determined portion of shared speakable elements. 
     Once the electronic device has provided voice feedback for every element in the queue generated by the speech scheduler (e.g., once the queue is empty), the electronic device may move to no_ready_queue step  1216 . At no_ready_queue step  1216 , the electronic device may receive an indication that the queue of speakable items is empty from the speech scheduler (e.g., a no_ready_queue variable). From no_ready_queue step  1216 , the electronic device may move to PostSpeakTimeout state  1218 . At state  1218 , the electronic device may pause for a second timeout. During the timeout, the electronic device may perform any suitable operation, including for example preparing other audio for playback, initializing an operation selected by a user (e.g., in response to detecting a selection instruction for one of the displayed and spoken menu options), or any other suitable operation. The electronic device may instead or in addition return audio output from a ducked or faded mode (e.g., enabled during PreSpeakTimeout state  1206  to a normal mode for playing back audio or other media). Alternatively, the electronic device may resume the playback of paused media. The electronic device may remain in PostSpeakTimeout state  1218  for any suitable duration, including for example a duration in the range of 0 ms to 500 ms (e.g., 100 ms). Once the first timeout associated with PostSpeakTimeout state  1218  has lapsed, the electronic device move to Resume step  1220  to return to Idle state  1202 . 
     In some embodiments, the electronic device may detect a transaction (e.g., described above) while in PostSpeakTimeout state  1218  and move to Update step  1222 . Update step  1222  may include some or all of the features of Update step  1214 . At Update step  1222 , the electronic device may update the variables or fields associated with providing voice feedback to conform to the display resulting from the transaction. For example, the speech scheduler may update the speakable elements, and the order of speakable elements for which to provide voice playback based on the display after the transaction, in an updated voice feedback queue. In some embodiments, the electronic device may in addition determine the portion of the updated queue, starting with the first speakable element of the queue, that matches the initial voice feedback queue (e.g., prior to step  1222 ), and identify the current speakable element for which voice feedback is being provided (e.g., as described above in connection with Update step  1214 ). The electronic device may then return to Speaking state  1210  and provide voice feedback for the speakable elements of the updated queue, for example beginning with the first speakable element of the queue after the determined portion of shared speakable elements. 
     In some embodiments, the electronic device may detect an error in the speaking process. For example, the electronic device may receive, at play_error step  1224 , an indication of an error associated with Speaking state  1210 . The electronic device may receive any suitable indication of an error at step  1224 , including for example a play_error variable. The electronic device may then reach ErrorSpeaking state  1226 . The electronic device may perform any suitable operation in ErrorSpeaking state  1226 . For example, the electronic device may perform a debugging operation, or other operation for identifying the source of the error. As another example, the electronic device may gather information associated with the error to provide to the developer of the software for debugging or revision. If the electronic device completes the one or more operations associated with ErrorSpeaking state  1226 , the electronic device may move to Complete step  1228  and return to Speaking state  1210  to continue to provide voice feedback for the speakable elements in the queue generated by the speech scheduler. 
     Alternatively, if the electronic device fails to perform all of the operations associated with ErrorSpeaking state  1226 , the electronic device may move to Resume step  1230  and return to Speaking state  1210 . The electronic device may fail to perform the operations associated with Speaking state  1210  for any suitable reason, including for example a failure to receive a valid “Complete” message, receiving a user instruction to cancel the ErrorSpeaking operations or to return to Speaking state  1210 , an error timeout (e.g., 100 ms), or any other suitable reason or based on any other suitable condition. 
     The electronic device may acquire audio files associated with each of the speakable elements using any suitable approach. In some embodiments, the audio files may be locally stored by the electronic device, for example as part of firmware or software of the device. An inherent limitation of this approach, however, is that firmware is generally provided globally to all electronic devices sold or used in different locations where languages and accents may vary. To ensure voice feedback is provided in the proper language or with the proper accent, the firmware used by each device may need to be personalized. This may come at a significant cost, as several versions of firmware may need to be stored and provided, and be significantly more complex, as the firmware or software provider may need to manage the distribution of different firmware or software to different devices. In addition, the size of audio files (e.g., as opposed to text files) may be large and prohibitive to provide as firmware or software updates. 
     In some embodiments, the electronic device may generate audio files locally using a text to speech (TTS) engine operating on the device. Using such an approach, each electronic device may provide text strings associated with different menu options in the language associated with the device to the TTS engine of the device to generate audio files for voice feedback. This approach may allow for easier firmware or software updates, as changes to displays in which speakable elements are present may be reflected by a change in text strings on which the TTS engine may operate. The TTS engine available from the electronic device, however, may limit this approach. In particular, if the electronic device has limited resources, such as limited memory, processing capabilities, or power supply (e.g., limitations associated with a portable electronic device), the quality of the speech generated by the TTS engine may be reduced. For example, intonations associated with dialects or accents may not be available, or speech associated with particular languages (e.g., languages too different from a default language) may not be supported. 
     In some embodiments, the electronic device may instead or in addition receive audio files associated with speakable elements from a host device to which the electronic device is connected.  FIG. 13  is a schematic view of an illustrative communications system including an electronic device and a host device in accordance with one embodiment of the invention. Communications system  1300  may include electronic device  1302  and communications network  1310 , which electronic device  1302  may use to perform wired or wireless communications with other devices within communications network  1310 . For example, electronic device  1302  may perform communications operations with host device  1320  over communications network  1310 . Although communications system  1300  may include several electronic devices  1302  and host devices  1320 , only one of each is shown in  FIG. 13  to avoid overcomplicating the drawing. 
     Any suitable circuitry, device, system or combination of these (e.g., a wireless communications infrastructure including communications towers and telecommunications servers) operative to create a communications network may be used to create communications network  1310 . Communications network  1310  may be capable of providing wireless communications using any suitable short-range or long-range communications protocol. In some embodiments, communications network  1310  may support, for example, Wi-Fi (e.g., a 802.11 protocol), Bluetooth (registered trademark), radio frequency systems (e.g., 1300 MHz, 2.4 GHz, and 5.6 GHz communication systems), infrared, protocols used by wireless and cellular phones and personal email devices, or any other protocol supporting wireless communications between electronic device  1302  and host device  1320 . Communications network  1310  may instead or in addition be capable of providing wired communications between electronic device  1302  and host device  1320 , for example using any suitable port on one or both of the devices (e.g., 30-pin, USB, FireWire, Serial, or Ethernet). 
     Electronic device  1302  may include any suitable device for receiving media or data. For example, electronic device  1302  may include one or more features of electronic device  100  ( FIG. 1 ). Electronic device  1302  may be coupled with host device  1320  over communications link  1340  using any suitable approach. For example, electronic device  1302  may use any suitable wireless communications protocol to connect to host device  1320  over communications link  1340 . As another example, communications link  1340  may be a wired link that is coupled to both electronic device  1302  and media provider  1320  (e.g., an Ethernet cable). As still another example, communications link  1340  may include a combination of wired and wireless links (e.g., an accessory device for wirelessly communicating with host device  1320  may be coupled to electronic device  1302 ). In some embodiments, any suitable connector, dongle or docking station may be used to couple electronic device  1302  and host device  1320  as part of communications link  1340 . 
     Host device  1320  may include any suitable type of device operative to provide audio files to electronic device  1302 . For example, host device  1320  may include a computer (e.g., a desktop or laptop computer), a server (e.g., a server available over the Internet or using a dedicated communications link), a kiosk, or any other suitable device. Host device  1320  may provide audio files for speakable elements of the electronic device using any suitable approach. For example, host device  1320  may include a TTS engine that has access to more resources than one available locally on electronic device  1302 . Using a more expansive host device TTS engine, host device  1320  may generate audio files associated with text strings for speakable elements of the electronic device. The host device TTS engine may allow the electronic device to provide voice feedback in different languages or with personalized accents or voice patterns (e.g. using a celebrity voice or an accent from a particular region). The TTS engine may include a general speech dictionary and pronunciation rules for different sounds to generate audio for the provided text and convert the generated audio to a suitable format for playback by the electronic device (e.g., AIFF files). In some embodiments, the TTS engine may include a pre-processor for performing music specific processing (e.g., substituting the string “feat.” or “ft.” with “featuring”). Illustrative TTS implementations and host devices operative to provide audio to an electronic device are described in commonly assigned U.S. patent application Ser. No. 12/240,397, filed Sep. 29, 2008, entitled SYSTEMS AND METHODS FOR SPEECH PREPROCESSING IN TEXT TO SPEECH SYNTHESIS, which is incorporated by reference herein in its entirety. In some embodiments, host device  1320  may limit the amount of media transferred to the electronic device to account for the storage space needed to store the audio files associated with providing voice feedback (e.g., calculate the space expected to be needed for the voice feedback audio files based on the expected number of media files stored on the electronic device). 
     The host device may identify the text strings for which to provide audio files using any suitable approach. In some embodiments, the host device may identify text strings associated with data transferred from the host device to the electronic device, and provide the identified text strings to a TTS engine to generate corresponding audio files. This approach may be used, for example, for text strings associated with metadata for media files (e.g., title, artist, album, genre, or any other metadata) transferred from the host device to the electronic device (e.g., music or video). In some embodiments, the electronic device may identify the particular metadata for which to provide audio feedback to the host device (e.g., the electronic device identifies the title, artist and album metadata). The host device may use any suitable approach for naming and storing audio files in the electronic device. For example, the audio file name and stored location (e.g., directory number) may be the result of applying a hash to the spoken text string. 
     [For speakable elements that are not transferred from the host device to the electronic device (e.g., text of menu options of the electronic device firmware), however, the host device may not be aware of the text strings for which the TTS engine is to provide audio files. In some embodiments, the electronic device may provide a text file (e.g., an XML file) that includes strings associated with each of the static speakable elements for which voice feedback is provided to the host device. The electronic device may generate the text file with the speakable element strings at any suitable time. In some embodiments, the file may be generated each time the electronic device boots based on data extracted from the firmware or software source code during compiling. For example, when the electronic device compiles the source code associated with the models and views for display, the electronic device may identify the elements having a speakable property (e.g., the speakable elements) and extract the text string to speak and the priority associated with the speakable element. In some embodiments, the electronic device may generate the text file in response to detecting a change in the voice feedback language, voice feedback voice, or build change. 
     The extracted text may be provided to the host device in a data file (e.g., an XML file) generated when the electronic device boots. This approach may allow for easier changing of speakable elements with firmware or software updates, as the compiled firmware or software code may include the extracted speakable element information needed by the host device to generate audio files for voice feedback. In response to receiving the text file, the host device may generate, using the TTS engine, audio files for each of the speakable elements. In some embodiments, the text file may include an indication of a language change to direct the host device to generate new audio files for the changed text or using the changed voice or language. Systems and methods for generating audio files based on a received text file are described in more detail in commonly assigned U.S. Publication No. 2006/0095848, entitled AUDIO USER INTERFACE FOR COMPUTING DEVICES, filed Nov. 4, 2004, which is incorporated by reference herein in its entirety. 
     The following flowcharts describe illustrative processes for providing audio files used for voice feedback to an electronic device.  FIG. 14  is a flowchart of an illustrative process for providing static strings to an electronic device. Process  1400  may begin at step  1402 . At step  1404 , the electronic device may generate a data file listing static strings. For example, the electronic device may extract, from firmware, strings of text displayed by the electronic device for which voice feedback may be provided. At step  1406 , the electronic device may provide the file to a host device. For example, the electronic device may provide the file to the host device using a wired or wireless communications path. 
     At step  1408 , the host device may convert the static strings of the provided data file to audio files. For example, the host device may use a TTS engine to generate audio for each of the static strings (e.g., generate audio, compress the audio, an convert the audio to a file format that may be played back by the electronic device). At step  1410 , the host device may transfer the generated audio to the electronic device. For example, the host device may transfer the generated audio files to the electronic device over a communications path. Process  1400  may then end at step  1412 . The host device may store the audio files at any suitable location on the electronic device, including for example at a location or directory number resulting from a hash of the text string to speak. 
       FIG. 15  is a flowchart of an illustrative process for providing dynamic strings to an electronic device. Process  1500  may begin at step  1502 . At step  1504 , the host device may identify media to transfer to the electronic device. For example, the host device may retrieve a list of media to transfer (e.g., media within playlists) to transfer to the electronic device. At step  1506 , the host device may identified metadata strings associated with the identified media. For example, the host device may retrieve specific metadata strings identified by a host device (e.g., artist, title and album strings) for each identified media item to be transferred to the electronic device. 
     At step  1508 , the host device may convert the identified metadata strings (e.g., dynamic strings) to audio files. For example, the host device may use a TTS engine to generate audio for each of the dynamic strings (e.g., generate audio, compress the audio, an convert the audio to a file format that may be played back by the electronic device). At step  1510 , the host device may transfer the generated audio to the electronic device. For example, the host device may transfer the generated audio files to the electronic device over a communications path. Process  1500  may then end at step  1512 . The host device may store the audio files at any suitable location on the electronic device, including for example at a location or directory number resulting from a hash of the text string to speak. 
     The above-described embodiments of the present invention are presented for purposes of illustration and not of limitation, and the present invention is limited only by the claims which follow.

Metadata:
Filing Date: 20131226
Publication Date: 20170627
Grant Date: 20170627
Priority Date: 20080905
Inventors: MASON JAMES ERIC
BOETTCHER JESSE
Assignee: APPLE INC
CPC Classifications: [{"code": "G10L13/00", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0482", "inventive": true, "first": false, "tree": "[]"}, {"code": "G10L15/22", "inventive": true, "first": true, "tree": "[]"}, {"code": "G10L13/00", "inventive": true, "first": false, "tree": "[]"}, {"code": "G10L15/22", "inventive": true, "first": true, "tree": "[]"}, {"code": "H04M1/72583", "inventive": false, "first": false, "tree": "[]"}, {"code": "G10L13/00", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0482", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0482", "inventive": true, "first": true, "tree": "[]"}, {"code": "H04M1/72469", "inventive": false, "first": false, "tree": "[]"}, {"code": "H04M1/72469", "inventive": false, "first": false, "tree": "[]"}]
Family ID: 41506526