PATENT DOCUMENT

Publication Number: US-10592095-B2
Application Number: US-201414490397-A
Country: US
Kind Code: B2

Title: Instantaneous speaking of content on touch devices

Abstract:
Systems and processes are disclosed for initiating and controlling content speaking on touch-sensitive devices. A gesture can be detected on a touchscreen for causing text to be spoken. Displayed content can be analyzed, and a determination can be made based on size, position, and other attributes as to which portion of displayed text should be spoken. In response to detecting the gesture, the identified portion of text can be spoken using a text-to-speech process. A menu of controls can be displayed for controlling the speaking. The menu can automatically be hidden and a persistent virtual button can be displayed that can remain available on the touchscreen despite the user navigating to another view. Selecting the persistent virtual button can restore the full menu of controls, thereby allowing the user to continue to control the speaking even after navigating away from the content being spoken.

Claims:
What is claimed is: 
     
       1. A method for speaking touchscreen content, the method comprising:
 at an electronic device having a processor, memory, and a touchscreen:
 displaying, on the touchscreen, a content container containing a plurality of portions of text,
 wherein the content container is one of a plurality of content containers displayed on the touchscreen, and 
 wherein each portion of text of the plurality of portions of text occupies a respective area and a respective position in the content container; 
 
 detecting a gesture on the touchscreen, wherein the gesture does not identify a first portion of text of the plurality of portions of text; 
 in response to detecting the gesture:
 determining the first portion of text to be spoken based on:
 comparing an attribute of the content container relative to an attribute of at least one other content container of the plurality of content containers; 
 comparing a size of the respective area occupied by the first portion of text relative to a size of the respective area occupied by a second portion of text of the plurality of portions of text; and 
 the respective position occupied by the first portion of text in the content container; and 
 
 speaking the determined first portion of text using a text-to-speech process. 
 
 
 
     
     
       2. The method of  claim 1 , wherein the gesture comprises a swipe of two input points on the touchscreen from an edge of the touchscreen toward a center of the touchscreen. 
     
     
       3. The method of  claim 1 , wherein the gesture comprises a tapping of three input points on the touchscreen. 
     
     
       4. The method of  claim 1 , wherein determining the first portion of text displayed on the touchscreen to be spoken comprises:
 in an email application, selecting one of a sender field, a subject field, and a message body field as the determined first portion. 
 
     
     
       5. The method of  claim 1 , wherein determining the first portion of text displayed on the touchscreen to be spoken comprises:
 in a messaging application, selecting one or more text messages in reverse chronological order as the determined first portion. 
 
     
     
       6. The method of  claim 1 , wherein determining the first portion of text displayed on the touchscreen to be spoken comprises:
 where two or more applications are displayed on the touchscreen, selecting text in an application with focus as the determined first portion. 
 
     
     
       7. The method of  claim 1 , further comprising:
 in response to reaching an end of the first portion of text displayed on the touchscreen, speaking additional text associated with the first portion of text displayed on the touchscreen. 
 
     
     
       8. The method of  claim 7 , wherein the additional text comprises a next paragraph, a next page, a next message, or a next email. 
     
     
       9. The method of  claim 1 , further comprising:
 while text is being spoken, displaying a menu of controls on the touchscreen for controlling the speaking, wherein the menu of controls comprises a pause control and a speed control; 
 in response to a predetermined time elapsing without selection of a menu control, ceasing to display the menu of controls on the touchscreen and displaying a persistent virtual button; 
 in response to selection of the persistent virtual button, ceasing to display the persistent virtual button and displaying the menu of controls on the touchscreen; 
 receiving a user command to display new content on the touchscreen; and 
 in response to receiving the user command, displaying the new content, wherein the persistent virtual button is overlaid over the new content. 
 
     
     
       10. The method of  claim 9 , wherein the menu of controls further comprises a skip forward control and a skip backward control. 
     
     
       11. The method of  claim 10 , further comprising:
 determining a text skipping distance based on a length of the portion of text being spoken; 
 in response to selection of the skip forward control, causing the speaking to skip forward in the portion of text by the text skipping distance; and 
 in response to selection of the skip backward control, causing the speaking to skip backward in the portion of text by the text skipping distance. 
 
     
     
       12. The method of  claim 1 , wherein determining the first portion of text to be spoken comprises:
 determining that the size of the respective area occupied by the first portion of text is larger or smaller than the size of the respective area occupied by the second portion of text. 
 
     
     
       13. The method of  claim 1 , wherein the attribute of the content container is a size of a respective area occupied by the content container on the touchscreen, and wherein the attribute of the at least one other content container of the plurality of content containers is a size of a respective area occupied by the at least one other content container on the touchscreen. 
     
     
       14. The method of  claim 1 , wherein the attribute of the content container is a respective position occupied by the content container on the touchscreen, and wherein the attribute of the at least one other content container of the plurality of content containers is a respective position occupied by the at least one other content container on the touchscreen. 
     
     
       15. The method of  claim 1 , wherein determining the first portion of text to be spoken is further based on metadata associated with the first portion of text, and wherein the metadata indicates a type of content corresponding to the first portion of text. 
     
     
       16. A method for speaking displayed content, the method comprising:
 at an electronic device having a processor, memory, and a touchscreen:
 displaying, on the touchscreen, a content container containing a plurality of portions of text,
 wherein the content container is one of a plurality of content containers displayed on the touchscreen, and 
 wherein each portion of text of the plurality of portions of text occupies a respective area and a respective position in the content container; 
 
 receiving a voice command, wherein the voice command does not identify a first portion of text of the plurality of portions of text; 
 in response to receiving the voice command:
 determining the first portion of text to be spoken based on:
 comparing an attribute of the content container relative to an attribute of at least one other content container of the plurality of content containers; 
 comparing a size of the respective area occupied by the first portion of text relative to a size of the respective area occupied by a second portion of text of the plurality of portions of text; and 
 the respective position occupied by the first portion of text in the content container; and 
 
 speaking the determined portion of text using a text-to-speech process. 
 
 
 
     
     
       17. The method of  claim 16 , wherein determining the first portion of displayed text to be spoken comprises:
 in a messaging application, selecting one or more text messages in reverse chronological order as the determined first portion. 
 
     
     
       18. The method of  claim 16 , wherein determining the first portion of displayed text to be spoken comprises:
 where two or more applications are displayed on the display, selecting text in an application with focus as the determined first portion. 
 
     
     
       19. The method of  claim 16 , further comprising:
 in response to reaching an end of the first portion of text displayed on the touchscreen, speaking additional text associated with the first portion of text displayed on the touchscreen. 
 
     
     
       20. The method of  claim 16 , further comprising:
 while text is being spoken, displaying a menu of controls on the touchscreen for controlling the speaking, wherein the menu of controls comprises a pause control and a speed control; 
 in response to a predetermined time elapsing without selection of a menu control, ceasing to display the menu of controls on the touchscreen and displaying a persistent virtual button; 
 in response to selection of the persistent virtual button, ceasing to display the persistent virtual button and displaying the menu of controls on the touchscreen; 
 receiving a user command to display new content on the touchscreen; and 
 in response to receiving the user command, displaying the new content, wherein the persistent virtual button is overlaid over the new content. 
 
     
     
       21. The method of  claim 16 , wherein determining the first portion of text to be spoken comprises:
 determining that the size of the respective area occupied by the first portion of text is larger or smaller than the size of the respective area occupied by the second portion of text. 
 
     
     
       22. The method of  claim 16 , wherein the attribute of the content container is a size of a respective area occupied by the content container on the touchscreen, and wherein the attribute of the at least one other content container of the plurality of content containers is a size of a respective area occupied by the at least one other content container on the touchscreen. 
     
     
       23. The method of  claim 16 , wherein the attribute of the content container is a respective position occupied by the content container on the touchscreen, and wherein the attribute of the at least one other content container of the plurality of content containers is a respective position occupied by the at least one other content container on the touchscreen. 
     
     
       24. The method of  claim 16 , wherein determining the first portion of text to be spoken is further based on metadata associated with the first portion of text, and wherein the metadata indicates a type of content corresponding to the first portion of text. 
     
     
       25. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by an electronic device having a processor, memory, and a touchscreen, the one or more programs including instructions for:
 displaying, on the touchscreen, a content container containing a plurality of portions of text,
 wherein the content container is one of a plurality of content containers displayed on the touchscreen, and 
 wherein each portion of text of the plurality of portions of text occupies a respective area and a respective position in the content container; 
 
 detecting a gesture on the touchscreen, wherein the gesture does not identify a first portion of text of the plurality of portions of text; 
 in response to detecting the gesture:
 determining the first portion of text to be spoken based on:
 comparing an attribute of the content container relative to an attribute of at least one other content container of the plurality of content containers; 
 comparing a size of the respective area occupied by the first portion of text relative to a size of the respective area occupied by a second portion of text of the plurality of portions of text; and 
 the respective position occupied by the first portion of text in the content container; and 
 
 speaking the determined first portion of text using a text-to-speech process. 
 
 
     
     
       26. The non-transitory computer-readable storage medium of  claim 25 , wherein the gesture comprises a swipe of two input points on the touchscreen from an edge of the touchscreen toward a center of the touchscreen. 
     
     
       27. The non-transitory computer-readable storage medium of  claim 25 , wherein the gesture comprises a tapping of three input points on the touchscreen. 
     
     
       28. The non-transitory computer-readable storage medium of  claim 25 , wherein determining the first portion of text displayed on the touchscreen to be spoken comprises:
 in an email application, selecting one of a sender field, a subject field, and a message body field as the determined first portion. 
 
     
     
       29. The non-transitory computer-readable storage medium of  claim 25 , wherein determining the first portion of text displayed on the touchscreen to be spoken comprises:
 in a messaging application, selecting one or more text messages in reverse chronological order as the determined first portion. 
 
     
     
       30. The non-transitory computer-readable storage medium of  claim 25 , wherein determining the first portion of text displayed on the touchscreen to be spoken comprises:
 where two or more applications are displayed on the touchscreen, selecting text in an application with focus as the determined first portion. 
 
     
     
       31. The non-transitory computer-readable storage medium of  claim 25 , wherein the one or more programs further include instructions for:
 in response to reaching an end of the first portion of text displayed on the touchscreen, speaking additional text associated with the first portion of text displayed on the touchscreen. 
 
     
     
       32. The non-transitory computer-readable storage medium of  claim 25 , wherein the one or more programs further include instructions for:
 while text is being spoken, displaying a menu of controls on the touchscreen for controlling the speaking, wherein the menu of controls comprises a pause control and a speed control; 
 in response to a predetermined time elapsing without selection of a menu control, ceasing to display the menu of controls on the touchscreen and displaying a persistent virtual button; 
 in response to selection of the persistent virtual button, ceasing to display the persistent virtual button and displaying the menu of controls on the touchscreen; 
 receiving a user command to display new content on the touchscreen; and 
 in response to receiving the user command, displaying the new content, wherein the persistent virtual button is overlaid over the new content. 
 
     
     
       33. The non-transitory computer-readable storage medium of  claim 25 , wherein determining the first portion of text to be spoken comprises:
 determining that the size of the respective area occupied by the first portion of text is larger or smaller than the size of the respective area occupied by the second portion of text. 
 
     
     
       34. The non-transitory computer-readable storage medium of  claim 25 , wherein the attribute of the content container is a size of a respective area occupied by the content container on the touchscreen, and wherein the attribute of the at least one other content container of the plurality of content containers is a size of a respective area occupied by the at least one other content container on the touchscreen. 
     
     
       35. The non-transitory computer-readable storage medium of  claim 25 , wherein the attribute of the content container is a respective position occupied by the content container on the touchscreen, and wherein the attribute of the at least one other content container of the plurality of content containers is a respective position occupied by the at least one other content container on the touchscreen. 
     
     
       36. The non-transitory computer-readable storage medium of  claim 25 , wherein determining the first portion of text to be spoken is further based on metadata associated with the first portion of text, and wherein the metadata indicates a type of content corresponding to the first portion of text. 
     
     
       37. A system comprising:
 one or more processors; 
 memory; 
 a touchscreen; and 
 one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for:
 displaying, on the touchscreen, a content container containing a plurality of portions of text,
 wherein the content container is one of a plurality of content containers displayed on the touchscreen, and 
 wherein each portion of text of the plurality of portions of text occupies a respective area and a respective position in the content container; 
 
 detecting a gesture on the touchscreen, wherein the gesture does not identify a first portion of text of the plurality of portions of text; 
 in response to detecting the gesture:
 determining the first portion of text to be spoken based on:
 comparing an attribute of the content container relative to an attribute of at least one other content container of the plurality of content containers; 
 comparing a size of the respective area occupied by the first portion of text relative to a size of the respective area occupied by a second portion of text of the plurality of portions of text; and 
 the respective position occupied by the first portion of text in the content container; and 
 
 speaking the determined first portion of text using a text-to-speech process. 
 
 
 
     
     
       38. The system of  claim 37 , wherein the gesture comprises a swipe of two input points on the touchscreen from an edge of the touchscreen toward a center of the touchscreen. 
     
     
       39. The system of  claim 37 , wherein the gesture comprises a tapping of three input points on the touchscreen. 
     
     
       40. The system of  claim 37 , wherein determining the first portion of text displayed on the touchscreen to be spoken comprises:
 in an email application, selecting one of a sender field, a subject field, and a message body field as the determined first portion. 
 
     
     
       41. The system of  claim 37 , wherein determining the first portion of text displayed on the touchscreen to be spoken comprises:
 in a messaging application, selecting one or more text messages in reverse chronological order as the determined first portion. 
 
     
     
       42. The system of  claim 37 , wherein determining the first portion of text displayed on the touchscreen to be spoken comprises:
 where two or more applications are displayed on the touchscreen, selecting text in an application with focus as the determined first portion. 
 
     
     
       43. The system of  claim 37 , wherein the one or more programs further include instructions for:
 in response to reaching an end of the first portion of text displayed on the touchscreen, speaking additional text associated with the first portion of text displayed on the touchscreen. 
 
     
     
       44. The system of  claim 37 , wherein the one or more programs further include instructions for:
 while text is being spoken, displaying a menu of controls on the touchscreen for controlling the speaking, wherein the menu of controls comprises a pause control and a speed control; 
 in response to a predetermined time elapsing without selection of a menu control, ceasing to display the menu of controls on the touchscreen and displaying a persistent virtual button; 
 in response to selection of the persistent virtual button, ceasing to display the persistent virtual button and displaying the menu of controls on the touchscreen; 
 receiving a user command to display new content on the touchscreen; and 
 in response to receiving the user command, displaying the new content, wherein the persistent virtual button is overlaid over the new content. 
 
     
     
       45. The system of  claim 37 , wherein determining the first portion of text to be spoken comprises:
 determining that the size of the respective area occupied by the first portion of text is larger or smaller than the size of the respective area occupied by the second portion of text. 
 
     
     
       46. The system of  claim 37 , wherein the attribute of the content container is a size of a respective area occupied by the content container on the touchscreen, and wherein the attribute of the at least one other content container of the plurality of content containers is a size of a respective area occupied by the at least one other content container on the touchscreen. 
     
     
       47. The system of  claim 37 , wherein the attribute of the content container is a respective position occupied by the content container on the touchscreen, and wherein the attribute of the at least one other content container of the plurality of content containers is a respective position occupied by the at least one other content container on the touchscreen. 
     
     
       48. The system of  claim 37 , wherein determining the first portion of text to be spoken is further based on metadata associated with the first portion of text, and wherein the metadata indicates a type of content corresponding to the first portion of text.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application claims priority from U.S. Provisional Ser. No. 62/002,725, filed on May 23, 2014, entitled INSTANTANEOUS SPEAKING OF CONTENT ON TOUCH DEVICES, which is hereby incorporated by reference in its entirety for all purposes. 
    
    
     FIELD 
     This relates generally to text-to-speech services and, more specifically, to initiating and controlling the speaking of content on touch-sensitive devices. 
     BACKGROUND 
     The use of touch-sensitive surfaces as input devices for computers and other electronic computing devices has increased significantly in recent years. Exemplary touch-sensitive surfaces include touchpads and touchscreen displays. Such surfaces are widely used to manipulate user interface objects displayed on computers or other electronic computing devices, or to otherwise control various functions of such devices. 
     In some instances, a text-to-speech service can be used to cause text to be spoken aloud, such as causing text displayed on a touchscreen to be rendered as speech and emitted from a speaker of the device. This can be used for convenience as well as to aid in accessibility (e.g., for visually impaired users). In some examples, however, it can be inconvenient and difficult to select the appropriate content to be spoken. In other examples, it can be inefficient and time-consuming to precisely identify the desired content to be rendered as speech. This can cause the process to take longer than necessary, thereby wasting energy, which can be a particularly important consideration in mobile devices that may be battery-operated. Moreover, during the actual speaking, it can be difficult and time-consuming to adjust speech settings, and the speaking can limit other functionality of the device while it continues, both of which can negatively impact the user experience. 
     Accordingly, initiating and controlling the speaking of content on touch-sensitive devices can suffer from a variety of inefficiencies and setbacks that can limit device utility and negatively impact the user experience. 
     SUMMARY 
     Systems and processes are disclosed for initiating and controlling the speaking of content on touch-sensitive devices. Such systems and processes can provide fast, efficient initiation of content speaking, and can also provide an efficient and enjoyable user experience. For battery-operated devices, such systems and processes can also conserve battery power and increase the time between battery charges because, for example, a user need not spend time selecting particular text or employing various controls and menus to cause text to be spoken. 
     In one example, a gesture can be detected on a touchscreen for causing text to be spoken. A portion of text displayed on the touchscreen can be determined to be spoken based on a size of the portion of text and a position on the touchscreen of the portion of text. In response to detecting the gesture, the determined portion of text can be spoken using a text-to-speech process. In some examples, while text is being spoken, a menu of controls can be displayed on the touchscreen for controlling the speaking, wherein the menu of controls comprises a pause control and a speed control. In response to a predetermined time elapsing without selection of a menu control, the menu of controls can be hidden and a persistent virtual button can be displayed. In response to selection of the persistent virtual button, the persistent virtual button can be hidden, and the menu of controls can be displayed on the touchscreen. A user command can be received to display new content on the touchscreen. In response to receiving the user command, the new content can be displayed, wherein the persistent virtual button is overlaid over the new content. 
     In another example, a portion of text on a touchscreen can be spoken using a text-to-speech process. A menu of controls can be displayed on the touchscreen for controlling the speaking, wherein the menu of controls comprises a pause control and a speed control. In response to a predetermined time elapsing without selection of a menu control, the menu of controls can be hidden and a persistent virtual button can be displayed. In response to selection of the persistent virtual button, the persistent virtual button can be hidden and the menu of controls can be displayed on the touchscreen. A user command can be received to display new content on the touchscreen. In response to receiving the user command, the new content can be displayed, wherein the persistent virtual button is overlaid over the new content. 
     In another example, a voice command can be received for causing text displayed on a display to be spoken. A portion of displayed text to be spoken can be determined based on a size of the portion of text and a position on the display of the portion of text. In response to receiving the voice command, the determined portion of text can be spoken using a text-to-speech process. In some examples, while text is being spoken, a menu of controls can be displayed for controlling the speaking, wherein the menu of controls comprises a pause control and a speed control. In response to a predetermined time elapsing without selection of a menu control, the menu of controls can be hidden and a persistent virtual button can be displayed. In response to selection of the persistent virtual button, the persistent virtual button can be hidden and the menu of controls can be displayed. A user command can be received to display new content. In response to receiving the user command, the new content can be displayed, wherein the persistent virtual button is overlaid over the new content. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates an exemplary system for initiating and controlling the speaking of content on touch-sensitive devices. 
         FIG. 2  illustrates an exemplary process for initiating the speaking of content on touch-sensitive devices. 
         FIG. 3  illustrates exemplary contact gestures for initiating the speaking of content on a touch-sensitive device. 
         FIG. 4  illustrates exemplary content that can be analyzed to identify desired article text to be spoken. 
         FIG. 5  illustrates exemplary content that can be analyzed to identify desired headline and summary text to be spoken. 
         FIG. 6  illustrates an exemplary email application with content that can be analyzed to identify and organize desired email message content to be spoken. 
         FIG. 7  illustrates an exemplary messaging application with content that can be analyzed to identify and organize desired messaging content to be spoken. 
         FIG. 8  illustrates an exemplary process for providing readily accessible speech control. 
         FIG. 9A  illustrates an exemplary speech control menu. 
         FIG. 9B  illustrates the speech control menu being hidden and a persistent virtual button being displayed. 
         FIG. 9C  illustrates the persistent virtual button displayed over new content. 
         FIG. 10  illustrates a functional block diagram of an electronic device configured to initiate the speaking of content on touch-sensitive devices. 
         FIG. 11  illustrates a functional block diagram of an electronic device configured to control text speaking from a text-to-speech process. 
         FIG. 12  illustrates a functional block diagram of an electronic device configured to initiate the speaking of displayed content in response to voice commands. 
     
    
    
     DETAILED DESCRIPTION 
     In the following description of examples, reference is made to the accompanying drawings in which it is shown by way of illustration specific examples that can be practiced. It is to be understood that other examples can be used and structural changes can be made without departing from the scope of the various examples. 
     This relates to systems and processes for initiating and controlling the speaking of content on touch-sensitive devices. In one example, a gesture can be detected on a touchscreen for causing text to be spoken. For example, a particular finger swipe or tap—unassociated with any particular displayed text—can be detected for causing text to be spoken. The content that is displayed on the touchscreen can be analyzed, and a determination can be made as to which portion of the displayed text should be spoken. For example, a portion of text that should be spoken can be identified based on the size of the portion of text, the position of the text relative to other content, the type of container or field housing the text, or a variety of other attributes. In response to detecting the gesture for causing text to be spoken, the identified portion of text can be spoken using a text-to-speech process (e.g., text-to-speech synthesis). From a user&#39;s perspective, the automatically identified text (e.g., identified without the user having to specifically select or otherwise identify which content to speak) can seem to be spoken instantaneously in response to performing the particular gesture for causing text to be spoken. 
     In some examples, while text is being spoken, a menu of controls can be displayed on the touchscreen for controlling the speaking. For example, the menu of controls can include a pause control, speed control, skip forward control, skip backward control, stop control, minimize control, or the like. The menu can automatically be hidden and a persistent virtual button (e.g., a user interface affordance) can be displayed after a predetermined time elapses without a user selecting any of the controls. The persistent virtual button can remain available on the touchscreen despite the user navigating to another application, to another portion of text, to a home screen, or to some other focus. Selecting the persistent virtual button can restore the full menu of controls, thereby allowing the user to continue to control the speaking even after navigating away from the content being spoken. 
     As discussed in further detail herein, initiating the speaking of content can be made fast and efficient by using a particular gesture to initiate speaking and by automatically determining which content should be spoken. In addition, an efficient and enjoyable user experience can be developed at least in part by providing a readily available menu for controlling the speaking. It should be understood, however, that still many other advantages can be achieved according to the various examples discussed herein. 
       FIG. 1  illustrates exemplary system  100  for initiating and controlling the speaking of content on touch-sensitive devices. In one example, system  100  can include user device  102  (or multiple user devices  102 ) that can display content and speak text aloud using a text-to-speech process. User device  102  can include any of a variety of devices, such as a cellular telephone (e.g., smartphone), tablet computer, laptop computer, desktop computer, portable media player, wearable digital device (e.g., digital glasses, wristband, wristwatch, brooch, armbands, etc.), television, set top box (e.g., cable box, video player, video streaming device, etc.), gaming system, or the like. In some examples, user device  102  can include touchscreen  112 . Touchscreen  112  can include any of a variety of touchscreens (e.g., capacitive, resistive, etc.). In other examples, user device  102  can include a display that can be separate from a touchpad, keyboard, mouse, or other input mechanisms. User device  102  can also include buttons or other interactive elements that are not shown. In one example, touchscreen  112  can be incorporated within user device  102 . In other examples, touchscreen  112  can be external to—but communicatively coupled to—user device  102  (e.g., as in a touch-sensitive television, touch-sensitive external monitor, etc.). 
     Touchscreen  112  can be used to detect input points from contact with the touchscreen surface. For example, a contact/motion software module can interpret signals from touch-sensitive elements in touchscreen  112  to identify touch events. In some examples, touchscreen  112  can be used to determine if contact has occurred (e.g., detecting a finger-down event), determine an intensity of the contact (e.g., the force or pressure of the contact or a substitute for the force or pressure of the contact), determine if there is movement of the contact and track the movement across the touch-sensitive surface (e.g., detecting one or more finger-dragging events), and determine if the contact has ceased (e.g., detecting a finger-up event or a break in contact). Touchscreen  112  can also be used to determine speed (magnitude), velocity (magnitude and direction), and/or an acceleration (a change in magnitude and/or direction) of an input point (or multiple input points). These operations can be applied to single input points (e.g., one finger contacts) or to multiple simultaneous input points (e.g., “multitouch”/multiple finger contacts). 
     Touchscreen  112  can further be used to detect gesture input by a user. Different gestures on the touch-sensitive surface can have different contact patterns and intensities. Thus, a gesture can be detected by detecting a particular contact pattern. For example, detecting a finger tap gesture can include detecting a finger-down event followed by detecting a finger-up (lift off) event at the same position (or substantially the same position) as the finger-down event (e.g., at the position of an icon or other location on a touchscreen). As another example, detecting a finger swipe gesture on the touch-sensitive surface can include detecting a finger-down event followed by detecting one or more finger-dragging events, subsequently followed by detecting a finger-up (lift off) event. With multiple fingers used in a swipe gesture (e.g., two or more fingers or input points), detecting the multiple finger swipe gesture can include detecting multiple finger-down events followed by detecting multiple finger-dragging events, subsequently followed by detecting multiple finger-up (lift off) events. 
     In other examples, instead of touchscreen  112 , a touchpad, touch-sensitive remote control, or other touch-sensitive device can be used as part of user device  102  or in conjunction with user device  102  to detect contact gestures. In still other examples, various other input mechanisms can be used to detect user gestures that can be used in any of the various processes discussed herein (e.g., proximity sensors, ambient light sensors, cameras, keyboards, mice, joysticks, remote controls, motion sensors, orientation sensors, etc.). 
     User device  102  can also include microphone  114  and speaker  116 . Microphone  114  can be used to capture sounds, such as voice commands. Speaker  116  can be used to generate audible sounds, such as text that is being spoken according to the methods discussed herein. 
     User device  102  can also include processor  104 , which can receive touch detection signals from touchscreen  112  and interact with other elements of user device  102  as shown. In one example, processor  104  can be configured to perform any of the methods discussed herein, such as detecting user gestures (e.g., from touchscreen  112 ) to initiate content speaking (e.g., through speaker  116 ) and causing display of speech control menus (e.g., on touchscreen  112 ). In some examples, processor  104  can cause data (e.g., entered text, user data, etc.) to be transmitted to server system  120  through network  118 . Network  118  can include any of a variety of networks, such as a cellular telephone network, WiFi network, wide area network, local area network, the Internet, or the like. Server system  120  can include a server, storage devices, databases, and the like and can be used in conjunction with processor  104  to perform any of the methods discussed herein. 
     User device  102  can also include storage device  106 , memory  108 , and text-to-speech module  110 . In some examples, text-to-speech module  110  can include software instructions and data stored on storage device  106 . Text-to-speech module  110  can be used to render text as speech (e.g., convert textual content into phonemes or other audio sounds that can be played). In one example, text-to-speech module  110  can form part of a virtual assistant that can understand spoken user requests (e.g., from microphone  114 ) and respond, in some instances, with audible speech output (e.g., through speaker  116 ). Text-to-speech module  110  can be used to render text as playable speech both for convenience and to support accessibility for users with impaired vision. Text-to-speech module  110  can include any of a variety of text-to-speech synthesis processes. 
     Any of the functions or methods discussed herein can be performed by a system similar or identical to system  100 . It should be appreciated that system  100  can include instructions stored in a non-transitory computer readable storage medium, such as memory  108  or storage device  106 , and executed by processor  104 . The instructions can also be stored and/or transported within any non-transitory computer readable storage medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, processor-containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device and execute the instructions. In the context of this document, a “non-transitory computer readable storage medium” can be any medium that can contain or store the program for use by or in connection with the instruction execution system, apparatus, or device. The non-transitory computer readable storage medium can include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, a portable computer diskette (magnetic), a random access memory (RAM) (magnetic), a read-only memory (ROM) (magnetic), an erasable programmable read-only memory (EPROM) (magnetic), a portable optical disc such as CD, CD-R, CD-RW, DVD, DVD-R, or DVD-RW, or flash memory such as compact flash cards, secured digital cards, USB memory devices, memory sticks, and the like. 
     The instructions can also be propagated within any transport medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, processor-containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device and execute the instructions. In the context of this document, a “transport medium” can be any medium that can communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The transport medium can include, but is not limited to, an electronic, magnetic, optical, electromagnetic, or infrared wired or wireless propagation medium. 
     It should be understood that the system is not limited to the components and configuration of  FIG. 1 , but can include other or additional components in multiple configurations according to various examples. For example, user device  102  can include a variety of other mechanisms for receiving input from a user, such as a keyboard, mouse, optical sensor, camera, gesture recognition sensor, proximity sensor, ambient light sensor, fingerprint sensor, or the like. Additionally, the components of system  100  can be included within a single device, or can be distributed among multiple devices. For example, microphone  114  and speaker  116  can be external to user device  102  (e.g., as in a headset). 
       FIG. 2  illustrates exemplary process  200  for initiating the speaking of content on touch-sensitive devices. Process  200  can, for example, be executed on processor  104  of user device  102  utilizing touchscreen  112  and text-to-speech module  110  discussed above with reference to  FIG. 1 . At block  202 , a gesture can be detected on a touchscreen for causing text to be spoken. For example, a gesture can be detected on touchscreen  112  of user device  102  discussed above. In some examples, a particular contact gesture (e.g., a way of contacting a touch-sensitive surface like a touchscreen) can be used to trigger the audible speaking of displayed text. Any of a variety of gestures can be used. 
       FIG. 3  illustrates exemplary contact gestures for initiating the speaking of content on user device  102  with touchscreen  112 . In this example, user device  102  includes bezel  322  surrounding touchscreen  112 . It should be appreciated, however, that the example illustrated in  FIG. 3  can be representative of any of a variety of electronic devices having touch-sensitive surfaces. In other examples, for instance, user device  102  can include a touch-sensitive remote control, a touchscreen without a defined bezel, a touchpad in a laptop computer, a touchpad connected to a desktop computer, or the like. 
     In one example, a contact gesture for initiating the speaking of content can include a two-finger swipe from the middle of an edge of a touchscreen toward the center of the touchscreen. In particular, as illustrated on the upper portion of  FIG. 3 , two input points  324  can begin at the middle of an edge of touchscreen  112  (e.g., where a user&#39;s fingers can be detected touching down on the surface of touchscreen  112 ). Input points  324  can then move according to swipe motion  326  (e.g., the user&#39;s fingers can be detected sliding down while keeping contact with the surface). Input points  324  can then terminate a short distance thereafter nearer the center of touchscreen  112  (e.g., the user&#39;s fingers can be detected lifting away from the surface of touchscreen  112 ). In some examples, the initial contact positions can occur anywhere on the touch-sensitive surface (e.g., in the center of the touchscreen, on the side of the touchscreen, etc.) and/or the swipe motion can occur in any direction (e.g., toward the center, away from the center, at an angle, toward a particular side, etc.). In one example, the swipe motion can have a minimum acceptable length and a maximum acceptable length outside of which a gesture may not be recognized as a gesture to initiate content speaking. 
     Input points  324  can be detected according to the type of touchscreen. In one example, input points  324  can be detected according to capacitive charge coupling between drive and/or sense lines in touchscreen  112  and a user&#39;s fingers. In another example, input points  324  can be detected according to pressure sensing elements in touchscreen  112  being displaced by the pressure of a user&#39;s fingers against the surface. In other examples, a stylus or other object can be detected as one or more of input points  324 . 
     In another example, as illustrated in the lower portion of  FIG. 3 , a contact gesture for initiating the speaking of content can include a three-finger tap anywhere on the touchscreen or in a particular portion of the touchscreen (e.g., center, edge, corner, etc.). Three input points  324  can occur at approximately the same time in a pattern on touchscreen  112 . For example, three of a user&#39;s fingers can be detected making contact briefly with the surface of touchscreen  112 . In one example, the pattern of the three input points  324  (e.g., the detection of three fingers) can have a maximum spread or separation outside of which a gesture may not be recognized as a gesture to initiate content speaking. For example, three input points  324  grouped relatively closely together (e.g., as may be expected from three fingers on the same hand) can be recognized as a gesture to initiate content speaking. Three input points  324  that may be spread out on touchscreen  112  (e.g., as may be expected from fingers from different hands making contact with the surface) can be interpreted as not being a gesture to initiate content speaking. 
     In still other examples, any of a variety of other contact gestures can be detected for initiating content speaking. For example, a particular number of taps against the surface of the screen using a particular number of fingers (e.g., two-finger double-tap), a particular motion drawn on the surface of the screen using a particular number of fingers (e.g., two fingers drawing a curve), a portion of the hand pressed against a portion of the touchscreen (e.g., palm pressed against the center of the touchscreen), or any of a variety of other contact gestures could be used to initiate content speaking. 
     In addition, in still other examples, non-contact gestures can be used to initiate content speaking. For example, hand or finger gestures can be detected near a touch-sensitive surface and can be used to initiate content speaking. Likewise, hand, finger, arm, or various other gestures can be detected using an optical sensor, motion sensor, or the like and can be used to initiate content speaking. Similarly, motions like shaking a device, rotating a device, or otherwise moving a device can be detected (e.g., using accelerometers, gyroscopes, etc. in a handheld device) and can be used to initiate content speaking. Thus, various gestures can be detected and used to cause text to be spoken. 
     Referring again to process  200  of  FIG. 2 , in another example, at block  203 , a voice command for causing text to be spoken can be received. For example, user speech can be received from microphone  114 . In one example, user device  102  can include an always-listening feature that allows microphone  114  to listen for voice commands without a specific physical trigger (e.g., monitoring for human speech and causing it to be processed upon detection of appropriate frequencies, sounds, volume levels, etc.). In another example, a user can activate microphone  114  using a button, key press, gesture, or the like. Received user speech can be interpreted according to any of a variety of methods of speech recognition using processor  104  and/or server system  120  through network  118 . In some examples, it can be determined that the user speech includes a request or command to speak displayed text. For example, a user can utter commands such as “speak,” “read,” “speak this,” “read this,” “speak this to me,” “read this to me,” or the like for causing displayed text to be spoken. Thus, a voice command can be received and used to cause text to be spoken. 
     In other examples (not shown in  FIG. 2 ), a variety of other approaches can be used to initiate text speaking in a similar fashion as a gesture or voice command. For example, a button can be provided in a control center menu (e.g., a menu accessible from some or all views on a device) that causes text to be spoken when selected. In another example, a physical hardware button can be used to initiate text speaking (e.g., using a single press, long press and hold, double press, etc.). In yet another example, a combination of physical hardware buttons can be used to initiate text speaking (e.g., pressing multiple buttons in combination). In still other examples, a variety of other user interactions can be employed to initiate text speaking. 
     At block  204 , a portion of text displayed on the touchscreen can be determined for being spoken (e.g., for being spoken in response to a gesture at block  202  or a voice command at block  203 ). In one example, without a user having to specifically designate displayed text to be spoken (e.g., by manually selecting it), a portion of text to be spoken can be automatically determined according to a variety of factors. For example, the content displayed on the touchscreen (or on a display in other examples) can be analyzed to identify content that can be spoken (e.g., text) and that may be most likely to correspond to content that a user would manually select for speaking in the absence of such an automatic determination. Content analysis can thus be employed to identify content that a user may most likely want spoken, thereby saving the user from having to manually select desired content. 
       FIG. 4  illustrates exemplary content that can be analyzed to identify desired article text to be spoken. In the example of  FIG. 4 , three content containers  430 ,  432 , and  434  are illustrated as being displayed on touchscreen  112  of user device  102 . Content containers  430 ,  432 , and  434  can include application windows, graphic elements, or the like. In examples where only a single content container is displayed, that content container can be selected to identify text for speaking. Where there are multiple containers, as in the example of  FIG. 4 , however, one of the content containers can be selected first based on a variety of factors for identifying text for speaking. 
     In one example, in determining which content should be spoken in response to a gesture or voice command for speaking text, a window, content container, or other element can be selected over other windows, content containers, or elements based on current application focus. For example, content container  430  can be selected as the desired content container based on recent user interaction with that container (e.g., based on a user selecting that container more recently than containers  432  or  434 ). Container  430  can be considered to be in the current focus, while containers  432  and  434  can be considered to be in the background. In other examples, the foremost or forefront application window or content container can be selected as the desired content container for text selection (e.g., based on content container  430  occupying virtual z space nearer to the user than content containers  432  and  434  as illustrated by content container  430  being positioned on top of all other containers). Similarly, the application window occupying the largest screen real estate can be selected as the desired content container. In a split-screen example (e.g., two application windows side by side), either the rightmost or leftmost application window can be selected as desired by default absent other indicators noted above (e.g., absent recent interaction with one rather than the other). 
     In still other examples, a user can manually indicate the desired content container for identifying text for speaking. For example, a user can perform a gesture as discussed above on a position on the screen that indicates the desired content container (e.g., gesturing on top of a particular application window, on a particular side of a touchscreen, or the like). In another example, a user can include a selection as part of a voice command by referring to an application, particular content, or the like (e.g., “read that article to me,” “speak the news app,” “read my email,” etc.). In still other examples, a predetermined hierarchy of content can be used to select content for speaking. For example, with multiple content containers open, text from each content container can be read in sequence (e.g., beginning at a forefront container and proceeding to other containers deeper in the virtual z space of a display). In another example, a predetermined order of content can be selected based on user preferences or settings, such as selecting email content first, news content second, browser content third, and so on. There can thus be a variety of ways to identify a particular content container (or multiple content containers) for identifying text to be spoken. 
     In the example of  FIG. 4 , given that content container  430  may have been selected as the desired content container according to the above, the content can be analyzed to identify text for speaking to the user. In this example, content container  430  illustrates an article displayed on a web page or in an application. It should be appreciated that a user viewing content container  430  may be most interested in article headline  444  and article text  446 . While the various other elements can be spoken, it may be desirable to speak only the likely preferred content to improve the user experience. The content of container  430  can thus be analyzed to identify text to be spoken and to exclude other elements. 
     In one example, text to be spoken can be identified based on size and position. As illustrated, article text  446  occupies a larger portion of container  430  than any other element. Likewise, the bulk of the text in container  430  can be found in article text  446 . Based on these size characteristics, article text  446  can be identified as desirable text to be spoken. Similarly, article headline  444  and article text  446  appear on the right side of container  430  and below various other elements. Article headline  444  and article text  446  can both be identified as desirable text to be spoken based on these position characteristics. For the same reasons, other elements can be excluded. For example, navigation links  442  occupy a relatively small portion of the area of container  430  and appear on the leftmost portion of the container. Based on the size and position, navigation links  442  can be excluded from the text selected for speaking. 
     Other elements can be excluded from text selected for speaking for a variety of other reasons. For example, banner advertisement  436  can be excluded from the automatically selected text based on containing predominantly images, animations, or other non-text content. Banner advertisement  436  (or like content) can also be excluded based on webpage metadata (e.g., markup language, identifiers, etc.). In another example, banner advertisement  436  can be excluded based on its position at the top of container  430  and/or its relative size compared to article text  446 . Similarly, search field  438  and search button  440 —although potentially including associated text—can be excluded from the automatically selected text based on being active elements. For example, fields, buttons, navigation tools, drop-down menus, calendars, and the like can be excluded from the automatically selected text as these elements can be less likely to correspond to desired text to be spoken. Thus, by identifying desirable textual content and excluding less desirable text and non-text content, article headline  444  and article text  446  can be automatically selected as text to be spoken to the user. It should be understood, however, that in other examples, article text  446  alone can be selected as the desired text to be spoken to the user (e.g., by excluding article headline  444  based on position, size, font, etc.). 
     It should be appreciated that text to be spoken to the user can also be selected in a variety of other ways. For example, a web page as in content container  430  can include metadata describing the various elements rendered on the page that can be used to eliminate certain elements and select others. Likewise, reader tools designed to pull desirable text and hide advertising content can be used alone or in conjunction with other characteristics discussed herein to automatically select text to be spoken. 
       FIG. 5  illustrates another example of content that can be analyzed to identify desired headline and summary text to be spoken. In the example of  FIG. 5 , content container  434  displayed on touchscreen  112  of user device  102  can be selected as the desired content container for any of the reasons discussed above (e.g., focus, size, position, etc.). For example, content container  434  can be selected based on the apparent focus on that container over container  430 . Given that container  434  may have been selected as the desired content container, the content can be analyzed in a similar manner as discussed above for  FIG. 4  to identify text for speaking to the user. In this example, content container  434  illustrates a group of article headlines and summaries  552  presented along with images  550  on a web page or in an application. For example,  FIG. 5  can correspond to a home page of a news website or other content provider. It should be appreciated that a user viewing content container  434  may be most interested in hearing article headlines and summaries  552  in sequence down the page (e.g., to identify an article of interest to consume in full, get an overview of news, etc.). The content of container  434  can thus be analyzed to identify the desirable headline and summary text to be spoken and to exclude other elements. 
     As with the example of  FIG. 4 , text to be spoken can be identified based on any of a variety of factors. For example, article headlines and summaries  552  collectively occupy a larger portion of container  434  than any other element. Likewise, the bulk of the text in container  434  can be found in article headlines and summaries  552 , which can include, for example, an article headline coupled with a brief summary or the first few lines of the article. Based on these size characteristics, article headlines and summaries  552  can be identified as desirable text to be spoken. In particular, the uppermost article headline and summary  552  can be identified as the first text to be spoken followed in sequence by others down the page. Similarly, article headlines and summaries  552  appear on the right side of container  430  and below various other elements. Article headlines and summaries  552  can be identified as desirable text to be spoken based on these position characteristics. For the same reasons, other elements can be excluded. As with the example of  FIG. 4 , navigation links  442  can be excluded based on the relatively small area they occupy in container  434  and based on their leftmost position in the container. 
     In some examples, images  550  can be excluded from selected text to be spoken. Images  550  can include textual content either visibly or in metadata (e.g., such as an image title, date, source, etc.). This textual content could be spoken to a user, as could a generic indicator phrase like “image,” “photograph,” or the like. In some examples, however, it may be desirable to limit automatically selected text to the primary textual content displayed on touchscreen  112 . Accordingly, in some examples, images  550  can be excluded from the automatically selected text to be spoken based on their image content. 
     Other elements can similarly be excluded from text selected for speaking for a variety of other reasons. As with the example of  FIG. 4 , banner advertisement  436  can be excluded from the automatically selected text based on containing predominantly images, animations, or other non-text content. In another example, banner advertisement  436  can be excluded based on its position at the top of container  434  and/or its relative size compared to the collective group of article headlines and summaries  552 . Similarly, search field  438  and search button  440 —although potentially including associated text—can be excluded from the automatically selected text based on being active elements. Likewise, scroll bar  554  can be excluded based on being an active element likely lacking textual content. Other fields, buttons, navigation tools, sliders, drop-down menus, calendars, and the like can also be excluded from the automatically selected text as these elements can be less likely to correspond to desired text to be spoken. Thus, by identifying desirable textual content and excluding less desirable text and non-text content, article headlines and summaries  552  can be automatically selected as text to be spoken to the user. 
       FIG. 6  illustrates another example of content that can be analyzed to identify desired text to be spoken.  FIG. 6  illustrates an exemplary email application displayed on touchscreen  112  of user device  102 . In this example, the email application includes message previews  667  and  668  displayed alongside message pane  664  displaying a selected message. Message preview  667  can correspond to the message displayed in message pane  664 . Message previews  667  and  668  can include a variety of textual information describing each message, including sender, date/time, subject, the first few lines of the email body, and the like. Also included in this exemplary email application are application buttons  660  and message buttons  662 . It should be appreciated that a user viewing the exemplary email application of  FIG. 6  may be most interested in hearing the selected email message displayed in message pane  664 . The content displayed on touchscreen  112  can thus be analyzed to identify the desirable message content to be spoken and to exclude other elements. 
     Text to be spoken can be identified based on a variety of factors. In some examples, users can set preferences for which message content should be spoken. An email message can include a variety of textual content beyond the email message body. As illustrated in message pane  664 , a displayed email message can include sender field  670 , recipient field  672 , subject field  674 , date field  676 , and message body pane  678 . These fields can be identified in metadata associated with an email message, and that metadata can be used to identify which elements to select for speaking. In some examples, a user may prefer to hear the textual content of all of these fields. In other examples, however, a user may prefer to hear only a subset. For example, in automatically selecting text to be spoken, sender field  670 , subject field  674 , and message body pane  678  can be automatically selected as containing desirable textual content, while recipient field  672  and date field  676  can be excluded. 
     Moreover, in some examples, given the known context of an email message, specific text can be added to aid users in identifying the source of the content, whether or not the specific words appear in the message application. For example, the words “message from” can be prepended to the contents of sender field  670  whether or not the word “from” is displayed in the application (e.g., “message from Jennifer”). Similarly, the word “regarding” can be prepended to the contents of the subject field and/or replace the word “subject” (e.g., “message from Jennifer regarding meeting”). Other additions or replacements are likewise possible to further enhance the user experience and aid users to understand the source of spoken content (e.g., “Jennifer said . . . ,” “sent to you,” etc.). 
     In some examples, it may be sufficient to identify text to be spoken based on email message metadata. In other examples, desired text can be identified in a similar fashion as discussed above. For example, in a webpage displaying the same or similar content as illustrated in  FIG. 6 , desired text can be selected as discussed above with reference to  FIG. 4  and  FIG. 5  (e.g., based on position, size, etc.). Likewise, other displayed elements can be excluded based on a variety of factors. For example, message previews  667  and  668  can be excluded based on their relatively small size compared to message pane  664  and/or based on their leftmost position on the screen. Application buttons  660  and message buttons  662  can be excluded from the automatically selected text based on being active elements. Other fields, buttons, navigation tools, sliders, drop-down menus, and the like can also be excluded from the automatically selected text as these elements can be less likely to correspond to desired text to be spoken. Thus, in an email message application (or in a webpage displaying such message content), desired text to be spoken can be identified based on known email message metadata and/or by selecting desirable text and excluding less desirable text and non-text content. 
     It should be appreciated that not all content of an email message (or article or any other content) may be desired to be spoken. For example, as illustrated in  FIG. 6 , message body pane  678  can include hyperlink  680  and image  666 . While both of these elements can be associated with textual content that can be spoken (e.g., hyperlink text, hyperlink destination address, image title, image source, etc.), it may be desirable to exclude such content in some examples. In some examples, a user can set a desired preference for inclusion or exclusion of such text content. Thus, in automatically selecting text to be spoken, hyperlink  680  and image  666 —along with their associated textual content—can be excluded in some examples. Similarly, signature line text and/or quoted text can also be excluded from automatically selected text to be spoken. For example, in reply emails, quoted content from previous emails can be excluded. 
       FIG. 7  illustrates another example of content that can be analyzed to identify desired text to be spoken.  FIG. 7  illustrates an exemplary messaging application displayed on touchscreen  112  of user device  102 . Such a messaging application can include text messaging, instant messaging, chat applications, or the like. In this example, the messaging application includes participant name  786  with participant messages  782  and user messages  784  displayed in chronological order based on timestamps  788 . The exemplary application view also includes navigation button  790 , application buttons  792 , and text entry field  794 . Although this example illustrates a conversation with one other participant (Jonathan), it should be appreciated that in other examples there can be more than two participants in a group conversation. In such examples, participant messages  782  can also include participant identifiers (e.g., names, images, distinctive coloring, etc.). 
     It should be appreciated that a user viewing the exemplary messaging application of  FIG. 7  may be most interested in hearing the most recent message, a chronological speaking of the conversation, a reverse chronological speaking of the conversation, or the like. In some examples, the text to be spoken can be set by a user preference (e.g., speak messages in reverse chronological order). The content displayed on touchscreen  112  can be analyzed to identify the desirable messaging content to be spoken and to exclude other elements (with or without a user preference). 
     Text to be spoken can be identified based on a variety of factors. A message in such an application can include a sender (e.g., a user, a participant name, etc.), message body text, and a timestamp. These elements can be identified in metadata associated with a messaging conversation, and that metadata can be used to identify which elements to select for speaking. In other examples, these elements can be identified based on how the messaging is displayed. For example, text presented in a speech bubble can be identified as message text, messages presented on the left can be identified as messages from the remote conversation participant, messages presented on the right can be identified as local user messages, etc. Irrespective of how the message elements are identified, textual content can be selected according to a preference or a default order to be spoken to a user. For example, only the most recent message positioned at the bottom can be selected, the displayed messages can be selected in chronological order, or the displayed messages can be selected in reverse chronological order. 
     Moreover, in some examples, given the known context of a messaging application, specific text can be added to aid users in identifying the source of the content, whether or not the specific words appear in the messaging application. For example, the words “Jonathan said” can be prepended to the contents of participant message  782 , and the words “you said” can be prepended to the contents of user message  784 . Similarly, “at ten twenty-five” could be prepended or appended to participant message  782 , and “at ten twenty-seven” could be prepended or appended to user message  784  (alone or in conjunction with a sender identifier). Other additions or replacements are likewise possible to further enhance the user experience and aid users to understand the source of spoken content. 
     In some examples, it may be sufficient to identify text to be spoken based on identifying specific messaging content as noted above. In other examples, desired text can be identified based on other factors. For example, in a webpage displaying the same or similar content as illustrated in  FIG. 7 , desired text can be selected as discussed above with reference to  FIG. 4  and  FIG. 5  (e.g., based on position, size, etc.). Likewise, other displayed elements can be excluded based on a variety of factors. For example, navigation button  790 , application buttons  792 , and text entry field  794  can be excluded from the automatically selected text based on being active elements. Participant name  786  and timestamps  788  can also be excluded based on size, position, font, or other characteristics. Images can similarly be excluded, including any associated text content (e.g., a profile picture and its title). Other fields, buttons, navigation tools, sliders, drop-down menus, and the like can also be excluded from the automatically selected text as these elements can be less likely to correspond to desired text to be spoken. Thus, in a messaging application (or in a webpage displaying such content), desired text to be spoken can be identified based on known messaging metadata and/or by selecting desirable text and excluding less desirable text and non-text content. 
     Moreover, in some examples, determining text to be spoken can further include interacting with a webpage, application, electronic book (“e-book”), or other content to automatically obtain additional content to be spoken. For example, upon reaching an end of a portion of selected text, additional text can be obtained by scrolling, turning a page in an electronic book, advancing to another message, advancing to another paragraph, advancing to another email, or the like. 
     Referring again to the content example of  FIG. 5 , upon reaching the end of the displayed article headlines and summaries  552 , the webpage or application can be scrolled automatically to pull additional article headlines and summaries that may appear further down the page than what is displayed on touchscreen  112 . Referring again to the content example of  FIG. 6 , upon reaching the end of the contents of message pane  678  corresponding to message preview  667 , the next message can be automatically selected (e.g., the topmost message preview  668 ) to capture the desired text of the subsequent email message. Referring again to the content example of  FIG. 7 , upon reaching the end of the displayed messaging contents, additional messages can be automatically retrieved. For example, when reading in reverse chronological order, previous messages within the same conversation can be automatically retrieved (e.g., by scrolling up). In another example, a next conversation (e.g., with a different participant) can be automatically retrieved (e.g., by traversing menus, emulating a left or right swipe motion, or the like). In the example of an electronic book, upon reaching the end of a displayed page, the page can automatically be turned to advance to the next page in the book. Thus, determining text to be spoken can also include automatically advancing beyond displayed content to identify additional content to be spoken. 
     Referring again to process  200  of  FIG. 2 , at block  206 , the determined portion of text (e.g., as discussed with reference to  FIG. 4 ,  FIG. 5 ,  FIG. 6 , and  FIG. 7 ) can be spoken using a text-to-speech process. For example, text-to-speech module  110  of user device  102  discussed above with reference to  FIG. 1  can be used to render the determined portion of text as playable speech and have it played audibly (e.g., on speaker  116  of user device  102 ). Accordingly, in response to detecting a gesture or receiving a voice command, a selected portion of displayed text can be spoken automatically (e.g., without a user manually selecting specific text to be spoken). 
       FIG. 8  illustrates exemplary process  800  for providing readily accessible speech control (e.g., controlling speech synthesis or speech playback). For example, process  800  can be used following process  200  discussed above to provide control of the speaking of the determined text. In other examples, process  800  can be used to provide control of any speech playback or speech synthesis. Process  800  can, for example, be executed on processor  104  of user device  102  discussed above with reference to  FIG. 1 . 
     At block  802 , a portion of text can be spoken. For example, as mentioned above, process  200  can be used to cause a portion of displayed text to be spoken using a text-to-speech process. In other examples, text can be spoken in other ways (e.g., using accessibility applications, speech synthesis applications, etc.). At block  804 , a menu of controls can be displayed. For example, a menu of controls can be displayed on touchscreen  112  of user device  102  discussed above.  FIG. 9A  illustrates exemplary speech control menu  922  displayed on touchscreen  112  of user device  102 . As illustrated, menu  922  can be overlaid on top of other displayed content. For example, menu  922  can be overlaid on top of content  921  in content container  920 . Content  921  can include any type of content (e.g., any of the content discussed above with reference to  FIG. 4 ,  FIG. 5 ,  FIG. 6 , and  FIG. 7 ). 
     Menu  922  can include a variety of different controls. For example, menu  922  can include minimize button  924 . Minimize button  924  can cause menu  922  to be hidden and a persistent virtual button to be displayed as discussed in further detail below with reference to  FIG. 9B . In other examples, the minimize control can cause menu  922  to be minimized to a taskbar icon, control menu button, or the like, or it can cause menu  922  to be hidden from the display. Menu  922  can also include speed control buttons  926 . Speed control buttons  926  can control the rate of speaking. For example, a slower speed control can cause the speaking rate to be decreased, and a faster speed control can cause the speaking rate to be increased. 
     Menu  922  can also include skip forward button  928  and skip backward button  930 . In one example, skip forward button  928  can cause the speaking to skip to a later portion of the text being spoken, and skip backward button  930  can cause the speaking to skip to an earlier portion of the text being spoken. The amount of text skipped (e.g., the text skipping distance) can be determined in a variety of ways. In one example, the text skipping distance can be determined by a set amount of speaking time (e.g., skip forward or backward an amount of text corresponding to approximately ten seconds of rendered speech). In other examples, the text skipping distance can be a set number of characters, words, sentences, lines, paragraphs, pages, or the like. 
     In another example, the text skipping distance for skip forward button  928  and skip backward button  930  can be determined based on the length of the portion of text being spoken. For example, if the portion of text being spoken is a single sentence, the text skipping distance can be a few words. If the portion of text being spoken is a paragraph of multiple sentences, the text skipping distance can be a sentence, a few lines, several words, or the like. If the portion of text being spoken is multiple paragraphs, the text skipping distance can be a paragraph, several sentences, a sentence, a few lines, or the like. If the portion of text being spoken is multiple pages (e.g., an electronic book, a long article, etc.), the text skipping distance can be a page, multiple paragraphs, a chapter, multiple lines, a section (e.g., as separated by headings), or the like. The text skipping distance can thus be varied based on the length of the portion of text being spoken. 
     In still other examples, skip forward button  928  and skip backward button  930  can cause speaking to move to a previous or next message, email, page, document, conversation, or the like. For example, if the text being spoken corresponds to an email in an email application (e.g., as discussed above with reference to  FIG. 6 ), skip forward button  928  and skip backward button  930  can cause speaking to move to the next or previous email message, respectively. Similarly, if the text being spoken corresponds to a message in a messaging application (e.g., as discussed above with reference to  FIG. 7 ), skip forward button  928  and skip backward button  930  can cause speaking to move to the next or previous message in a conversation, to the next or previous conversation in a list of conversations, or the like. 
     In still other examples, skip forward button  928  and skip backward button  930  can cause speaking to shift according to a programmatic view structure of displayed content. For example, absent metadata that can identify particular types of content, a programmatic view structure can be used to determine the previous or next content that should be spoken in response to selection of skip backward button  930  or skip forward button  928 . In a table, for example, speaking can skip to the previous or next cell in the table (e.g., knowing that an application, program, designer, or the like has already delineated content using those boundaries). Speaking can similarly shift to previous or next entities in other programmatic view structures, such as traversing forward or backward in a flowchart, slideshow, list, calendar, or the like. 
     Menu  922  can also include pause button  932 . Pause button  932  can cause the speaking to be paused (e.g., cause the speaking to cease). When paused, pause button  932  can be replaced with a play button or resume button to cause the speaking to be resumed. Menu  922  can also include stop button  934 . Stop button  934  can cease the speaking. In some examples, stop button  932  can also cause menu  922  to be hidden from the display (e.g., without displaying a persistent virtual button). After being stopped, menu  922  can be restored and speaking can be continued by re-initiating text speaking using a gesture or voice command as discussed above. It should be appreciated that the illustrated and described controls are provided as examples, and menu  922  can include fewer or more buttons than those illustrated in  FIG. 9A . Moreover, while menu  922  is illustrated as having textual buttons, it should be appreciated that icons, images, figures, or the like can be used instead of or in addition to the text of the various buttons of menu  922  (e.g., a small line for minimize button  924 , a tortoise and a hare for speed buttons  926 , arrows for skip buttons  928  and  930 , parallel vertical lines for pause button  932 , a square for stop button  934 , etc.). 
     In addition, while menu  922  can be displayed, and the various control buttons can be selected using a tap (e.g., on a touchscreen), mouse click, keyboard controls, or the like, in some examples, voice commands can also be used to employ any of the controls of menu  922 . For example, user speech can be received from microphone  114  of user device  102  discussed above. Received user speech can be interpreted according to any of a variety of methods of speech recognition using processor  104  and/or server system  120  through network  118 . A user can, for example, utter commands corresponding to any of the controls of menu  922 , and the user&#39;s utterance can be interpreted to identify and execute the corresponding command. For example, a user can speak the text corresponding to the buttons of menu  922  to cause the corresponding control functions to be executed (e.g., a user can say “minimize,” “slower,” “faster,” “skip forward,” “skip backward,” “pause,” or “stop”). In other examples, a user can utter commands or requests using semantically similar terminology, and the similar terminology can likewise be interpreted to cause the corresponding functions to be performed (e.g., “hide” instead of “minimize,” “close” instead of “stop,” “next” instead of “skip forward,” or the like). Thus, voice commands can be used to employ any of the controls of menu  922 . In some example, voice commands can also be used to interact with content in complementary ways (e.g., change application windows, scroll, navigate to new content, etc.). 
     In some examples, menu  922  can be movable around the display area. For example, a user can touch, hold, and drag menu  922  around touchscreen  112  to relocate the controls and reveal underlying content. In another example, a move button can be provided to enable a user to move menu  922  around the display area. In other examples, a user can double tap, long press, or perform another gesture to move menu  922 , or a user can use keyboard controls, voice commands, or any of a variety of other controls to move menu  922  as desired. 
     Referring again to process  800  of  FIG. 8 , at block  806 , the menu of controls can be hidden and a persistent virtual button can be displayed after a timeout period has elapsed. As mentioned above, minimize button  924  illustrated in  FIG. 9A  can be used to hide or minimize menu  922  and display a persistent virtual button. In other examples, a timeout period elapsing can likewise cause menu  922  to be hidden and a persistent virtual button to be displayed.  FIG. 9B  illustrates the menu of speech controls having been hidden and exemplary persistent virtual button  936  having been displayed (the dashed lines corresponding to menu  922  are illustrated for reference and may not be displayed). As illustrated, in one example, menu  922  can be replaced by a single button designated here as persistent virtual button  936  corresponding to an expand control. Referring again to process  800  of  FIG. 8 , at block  808 , the menu of controls can be restored (e.g., displayed, expanded, etc.) when the persistent virtual button is selected. In particular, the expand control of persistent virtual button  936  illustrated in  FIG. 9B  can restore the various buttons of menu  922  (e.g., as in  FIG. 9A ). 
     In some examples, persistent virtual button  936  can be kept on top of all other content displayed on touchscreen  112 . For example, despite a user moving content  921  (e.g., scrolling), persistent virtual button  936  can remain in place overlaid on top of all other content. Likewise, despite a user navigating to another screen, to another application, to a home page, or the like, persistent virtual button  936  can remain in place on the display overlaid on top of all other content (as discussed in further detail below with reference to  FIG. 9C ). This can provide users ready access to speech controls while minimizing screen real estate intrusion, and can also allow users to multitask and perform other functions while continuing to benefit from the text speaking and speech controls discussed herein. When speaking is no longer desired, a user can restore menu  922  by selecting persistent virtual button  936 , and can stop speech by selecting stop button  934 , thereby ceasing the speaking and hiding menu  922  from view (without it being replaced by persistent virtual button  936 ). 
     As discussed above with regard to menu  922 , persistent virtual button  936  can be movable around the display area. For example, a user can touch, hold, and drag persistent virtual button  936  around touchscreen  112  to relocate the button and reveal underlying content. In another example, a move button can be provided to enable a user to move persistent virtual button  936  around the display area. In other examples, a user can double tap, long press, or perform another gesture to move persistent virtual button  936 , or a user can use keyboard controls, voice commands, or any of a variety of other controls to move persistent virtual button  936  as desired. 
     Referring again to process  800  of  FIG. 8 , at block  810 , a command can be received to display new content. For example, a command (voice command, text command, touch command, etc.) can be received from the user to navigate to another screen, to another application, to a home page, or the like. Similarly, a command to scroll through a page (e.g., by flicking the page with a finger) or navigate to a different part of a page can be received from the user. In some examples, text speaking can continue despite such commands to display new content. At block  812 , for example, the new content can be displayed with the persistent virtual button overlaid thereon (and text speaking continuing). 
       FIG. 9C  illustrates persistent virtual button  936  overlaid on top of new content  939  in content container  938 . As illustrated, despite the underlying content changing from content  921  of  FIG. 9B  to content  939  of  FIG. 9C , persistent virtual button  936  can remain in place, and speaking can continue (e.g., the previously identified portion of text to be spoken can continue to be spoken without interruption and without switching the spoken text to the newly displayed content). In this manner, persistent virtual button  936  can continue to provide users ready access to speech controls while minimizing screen real estate intrusion, and can also allow users to multitask and perform other functions while continuing to benefit from the text speaking and speech controls discussed herein. As noted above, when speaking is no longer desired, a user can expand menu  922  by selecting persistent virtual button  936 , and can stop speech by selecting stop button  934 , thereby ceasing the speaking and hiding menu  922  from view (without it being replaced by persistent virtual button  936 ). 
     In any of the various examples discussed herein, content speaking, menus, control functions, and the like can be personalized for a particular user. For example, the particular gesture that causes text speaking to begin can be personalized for a particular user, default speech rates can be set for a particular user, language preferences can be set for a particular user, expected voice commands can be remembered for a particular user to improve recognition, or the like. The various processes discussed herein can thus be modified according to user preferences, contacts, text, usage history, profile data, demographics, or the like. In addition, such preferences and settings can be updated over time based on user interactions (e.g., frequently uttered commands, gesture motions, etc.). Gathering and use of user data that is available from various sources can be used to improve the delivery to users of invitational content or any other content that may be of interest to them. The present disclosure contemplates that in some instances, this gathered data can include personal information data that uniquely identifies or can be used to contact or locate a specific person. Such personal information data can include demographic data, location-based data, telephone numbers, email addresses, home addresses, or any other identifying information. 
     The present disclosure recognizes that the use of such personal information data, in the present technology, can be used to the benefit of users. For example, the personal information data can be used to deliver targeted content that is of greater interest to the user. Accordingly, use of such personal information data enables calculated control of the delivered content. Further, other uses for personal information data that benefit the user are also contemplated by the present disclosure. 
     The present disclosure further contemplates that the entities responsible for the collection, analysis, disclosure, transfer, storage, or other use of such personal information data will comply with well-established privacy policies and/or privacy practices. In particular, such entities should implement and consistently use privacy policies and practices that are generally recognized as meeting or exceeding industry or governmental requirements for maintaining personal information data as private and secure. For example, personal information from users should be collected for legitimate and reasonable uses of the entity and not shared or sold outside of those legitimate uses. Further, such collection should occur only after receiving the informed consent of the users. Additionally, such entities would take any needed steps for safeguarding and securing access to such personal information data and ensuring that others with access to the personal information data adhere to their privacy policies and procedures. Further, such entities can subject themselves to evaluation by third parties to certify their adherence to widely accepted privacy policies and practices. 
     Despite the foregoing, the present disclosure also contemplates examples in which users selectively block the use of, or access to, personal information data. That is, the present disclosure contemplates that hardware and/or software elements can be provided to prevent or block access to such personal information data. For example, in the case of advertisement delivery services, the present technology can be configured to allow users to select to “opt in” or “opt out” of participation in the collection of personal information data during registration for services. In another example, users can select not to provide location information for targeted content delivery services. In yet another example, users can select not to provide precise location information, but permit the transfer of location zone information. 
     Therefore, although the present disclosure broadly covers use of personal information data to implement one or more various disclosed examples, the present disclosure also contemplates that the various examples can also be implemented without the need for accessing such personal information data. That is, the various examples of the present technology are not rendered inoperable due to the lack of all or a portion of such personal information data. For example, content can be selected and delivered to users by inferring preferences based on non-personal information data or a bare minimum amount of personal information, such as the content being requested by the device associated with a user, other non-personal information available to the content delivery services, or publicly available information. 
     In accordance with some examples,  FIG. 10  shows a functional block diagram of an electronic device  1000  configured in accordance with the principles of the various described examples. The functional blocks of the device can be implemented by hardware, software, or a combination of hardware and software to carry out the principles of the various described examples. It is understood by persons of skill in the art that the functional blocks described in  FIG. 10  can be combined or separated into sub-blocks to implement the principles of the various described examples. Therefore, the description herein optionally supports any possible combination or separation or further definition of the functional blocks described herein. 
     As shown in  FIG. 10 , electronic device  1000  can include a touchscreen unit  1002  configured to display content and detect touch, and a speaker unit  1004  configured to audibly play sounds, such as speech from a text-to-speech process. Electronic device  1000  can further include a processing unit  1006  coupled to touchscreen unit  1002  and speaker unit  1004 . In some examples, processing unit  1006  can include a gesture detecting unit  1008 , a text portion determining unit  1010 , and a text-to-speech processing unit  1012 . 
     Processing unit  1006  can be configured to detect a gesture (e.g., using gesture detecting unit  1008 ) on a touchscreen (e.g., touchscreen unit  1002 ). The gesture, when detected, can cause text to be spoken. Processing unit  1006  can be further configured to determine a portion of text (e.g., using text portion determining unit  1010 ) displayed on the touchscreen (e.g., touchscreen unit  1002 ) to be spoken based on a size of the portion of text and a position on the touchscreen of the portion of text. Processing unit  1006  can be further configured to cause, in response to detecting the gesture, the determined portion of text to be spoken using a text-to-speech process (e.g., using text-to-speech processing unit  1012  and speaker unit  1004 ). 
     In some examples, the gesture (e.g., detected using gesture detecting unit  1008 ) comprises a swipe of two input points on the touchscreen (e.g., touchscreen unit  1002 ) from an edge of the touchscreen toward a center of the touchscreen. In other examples, the gesture (e.g., detected using gesture detecting unit  1008 ) comprises a tapping of three input points on the touchscreen (e.g., touchscreen unit  1002 ). Processing unit  1006  can be further configured to determine the portion of text to be spoken (e.g., using text portion determining unit  1010 ) by, in an email application, selecting one of a sender field, a subject field, and a message body field as the determined portion. Processing unit  1006  can be further configured to determine the portion of text to be spoken (e.g., using text portion determining unit  1010 ) by, in a messaging application, selecting one or more text messages in reverse chronological order as the determined portion. Processing unit  1006  can be further configured to determine the portion of text to be spoken (e.g., using text portion determining unit  1010 ) by, where two or more applications are displayed on the touchscreen (e.g., touchscreen unit  1002 ), selecting text in an application with focus as the determined portion. 
     In some examples, processing unit  1006  can be further configured to, in response to reaching an end of the portion of text displayed on the touchscreen (e.g., on touchscreen unit  1002 ), cause additional text associated with the portion of text displayed on the touchscreen to be spoken (e.g., using text-to-speech processing unit  1012  and speaker unit  1004 ). The additional text can comprise a next paragraph, a next page, a next message, or a next email. While text is being spoken (e.g., using text-to-speech processing unit  1012  and speaker unit  1004 ), processing unit  1006  can be further configured to, in response to receiving a command to navigate away from the portion of text displayed on the touchscreen, cause navigation away from the portion of text displayed on the touchscreen according to the command while continuing to cause the determined portion of text to be spoken. 
     In some examples, while text is being spoken (e.g., using text-to-speech processing unit  1012  and speaker unit  1004 ), processing unit  1006  can be further configured to cause a menu of controls to be displayed on the touchscreen (e.g., on touchscreen unit  1002 ) for controlling the speaking, wherein the menu of controls comprises a pause control and a speed control; in response to a predetermined time elapsing without selection of a menu control, to cause the menu of controls to cease being displayed and to cause a persistent virtual button to be displayed; in response to selection of the persistent virtual button, to cause the persistent virtual button to cease being displayed and to cause the menu of controls to be displayed on the touchscreen; to receive a user command to display new content on the touchscreen; and in response to receiving the user command, to cause the new content to be displayed, wherein the persistent virtual button is overlaid over the new content. 
     In some examples, the menu of controls further comprises a skip forward control and a skip backward control. Processing unit  1006  can be further configured to determine a text skipping distance based on a length of the portion of text being spoken; in response to selection of the skip forward control, to cause the speaking to skip forward in the portion of text by the text skipping distance; and in response to selection of the skip backward control, to cause the speaking to skip backward in the portion of text by the text skipping distance. In some examples, the menu of controls further comprises a stop control. Processing unit  1006  can be further configured to, in response to selection of the stop control, cause the speaking to cease, and cause the menu of controls to cease being displayed. In some examples, the menu of controls further comprises a minimize control. Processing unit  1006  can be further configured to, in response to selection of the minimize control, cause the menu of controls to cease being displayed and cause the persistent virtual button to be displayed. 
     In accordance with some examples,  FIG. 11  shows a functional block diagram of an electronic device  1100  configured in accordance with the principles of the various described examples. The functional blocks of the device can be implemented by hardware, software, or a combination of hardware and software to carry out the principles of the various described examples. It is understood by persons of skill in the art that the functional blocks described in  FIG. 11  can be combined or separated into sub-blocks to implement the principles of the various described examples. Therefore, the description herein optionally supports any possible combination or separation or further definition of the functional blocks described herein. 
     As shown in  FIG. 11 , electronic device  1100  can include a touchscreen unit  1102  configured to display content and detect touch, and a speaker unit  1104  configured to audibly play sounds, such as speech from a text-to-speech process. Electronic device  1100  can further include a processing unit  1106  coupled to touchscreen unit  1102  and speaker unit  1104 . In some examples, processing unit  1106  can include a control menu displaying unit  1108 , a control menu hiding unit  1110 , a user command receiving unit  1112 , a text-to-speech processing unit  1114 , and a new content displaying unit  1116 . 
     Processing unit  1106  can be configured to cause a portion of text to be spoken (e.g., using text-to-speech processing unit  1114  and speaker unit  1104 ). Processing unit  1106  can be further configured to cause a menu of controls to be displayed on a touchscreen (e.g., using control menu displaying unit  1108  to display the menu on touchscreen unit  1102 ) for controlling the speaking, wherein the menu of controls comprises a pause control and a speed control. Processing unit  1106  can be further configured to, in response to a predetermined time elapsing without selection of a menu control, cause the menu of controls to cease being displayed on the touchscreen and cause a persistent virtual button to be displayed (e.g., using control menu hiding unit  1110 ). Processing unit  1106  can be further configured to, in response to selection of the persistent virtual button, cause the persistent virtual button to cease being displayed and cause the menu of controls to be displayed on the touchscreen (e.g., using control menu displaying unit  1108 ). Processing unit  1106  can be further configured to receive a user command to display new content on the touchscreen (e.g., using user command receiving unit  1112 ). Processing unit  1106  can be further configured to, in response to receiving the user command, cause the new content to be displayed (e.g., using new content displaying unit  1116 ), wherein the persistent virtual button is overlaid over the new content. In some examples, processing unit  1106  can be further configured to, in response to receiving the user command, cause the new content to be displayed (e.g., using new content displaying unit  1116 ) while continuing to cause the portion of text to be spoken (e.g., using text-to-speech processing unit  1114  and speaker unit  1104 ). 
     In some examples, the menu of controls further comprises a skip forward control and a skip backward control. Processing unit  1106  can be further configured to determine a text skipping distance based on a length of the portion of text being spoken; in response to selection of the skip forward control, to cause the speaking to skip forward in the portion of text by the text skipping distance; and in response to selection of the skip backward control, to cause the speaking to skip backward in the portion of text by the text skipping distance. In some examples, the menu of controls further comprises a stop control. Processing unit  1106  can be further configured to, in response to selection of the stop control, cause the speaking to cease, and cause the menu of controls to cease being displayed on the touchscreen. In some examples, the menu of controls further comprises a minimize control. Processing unit  1106  can be further configured to, in response to selection of the minimize control, cause the menu of controls to cease being displayed (e.g., using control menu hiding unit  1110 ) on the touchscreen and cause the persistent virtual button to be displayed. 
     In accordance with some examples,  FIG. 12  shows a functional block diagram of an electronic device  1200  configured in accordance with the principles of the various described examples. The functional blocks of the device can be implemented by hardware, software, or a combination of hardware and software to carry out the principles of the various described examples. It is understood by persons of skill in the art that the functional blocks described in  FIG. 12  can be combined or separated into sub-blocks to implement the principles of the various described examples. Therefore, the description herein optionally supports any possible combination or separation or further definition of the functional blocks described herein. 
     As shown in  FIG. 12 , electronic device  1200  can include a display unit  1202  configured to display content, a speaker unit  1204  configured to audibly play sounds (such as speech from a text-to-speech process), and a microphone unit  1206  configured to record sounds (such as user utterances, voice commands, etc.). Electronic device  1200  can further include a processing unit  1208  coupled to display unit  1202 , speaker unit  1204 , and microphone unit  1206 . In some examples, processing unit  1208  can include a voice command receiving unit  1210 , a text portion determining unit  1212 , and a text-to-speech processing unit  1214 . 
     Processing unit  1208  can be configured to receive a voice command (e.g., using voice command receiving unit  1210  and microphone unit  1206 ). The voice command, when received, can cause text displayed on a display (e.g., on display unit  1202 ) to be spoken. Processing unit  1208  can be further configured to determine (e.g., using text portion determining unit  1212 ) a portion of displayed text (e.g., on display unit  1202 ) to be spoken based on a size of the portion of text and a position on the display of the portion of text. Processing unit  1208  can be further configured to cause, in response to receiving the voice command, the determined portion of text to be spoken using a text-to-speech process (e.g., using text-to-speech processing unit  1214  and speaker unit  1204 ). 
     Processing unit  1208  can be further configured to determine the portion of displayed text to be spoken (e.g., using text portion determining unit  1212 ) by, in a messaging application, selecting one or more text messages in reverse chronological order as the determined portion. Processing unit  1208  can be further configured to determine the portion of displayed text to be spoken (e.g., using text portion determining unit  1212 ) by, where two or more applications are displayed on the display (e.g., display unit  1202 ), selecting text in an application with focus as the determined portion. 
     In some examples, processing unit  1208  can be further configured to, in response to reaching an end of the portion of displayed text (e.g., on display unit  1202 ), cause additional text associated with the portion of displayed text to be spoken (e.g., using text-to-speech processing unit  1214  and speaker unit  1204 ). The additional text can comprise a next paragraph, a next page, a next message, or a next email. While text is being spoken (e.g., using text-to-speech processing unit  1214  and speaker unit  1204 ), processing unit  1208  can be further configured to, in response to receiving a command to navigate away from the portion of displayed text displayed, cause navigation away from the portion of displayed text according to the command while continuing to cause the determined portion of text to be spoken. 
     In some examples, while text is being spoken (e.g., using text-to-speech processing unit  1214  and speaker unit  1204 ), processing unit  1208  can be further configured to cause a menu of controls to be displayed (e.g., on display unit  1202 ) for controlling the speaking, wherein the menu of controls comprises a pause control and a speed control; in response to a predetermined time elapsing without selection of a menu control, to cause the menu of controls to cease being displayed on the display and to cause a persistent virtual button to be displayed; in response to selection of the persistent virtual button, to cause the persistent virtual button to cease being displayed and to cause the menu of controls to be displayed; to receive a user command to display new content; and in response to receiving the user command, to cause the new content to be displayed, wherein the persistent virtual button is overlaid over the new content. 
     In some examples, the menu of controls further comprises a skip forward control and a skip backward control. Processing unit  1208  can be further configured to determine a text skipping distance based on a length of the portion of text being spoken; in response to selection of the skip forward control, to cause the speaking to skip forward in the portion of text by the text skipping distance; and in response to selection of the skip backward control, to cause the speaking to skip backward in the portion of text by the text skipping distance. In some examples, the menu of controls further comprises a stop control. Processing unit  1208  can be further configured to, in response to selection of the stop control, cause the speaking to cease, and cause the menu of controls to cease being displayed. In some examples, the menu of controls further comprises a minimize control. Processing unit  1208  can be further configured to, in response to selection of the minimize control, cause the menu of controls to cease being displayed on the display and cause the persistent virtual button to be displayed. 
     Although examples have been fully described with reference to the accompanying drawings, it is to be noted that various changes and modifications will become apparent to those skilled in the art (e.g., modifying any of the systems or processes discussed herein according to the concepts described in relation to any other system or process discussed herein). Such changes and modifications are to be understood as being included within the scope of the various examples as defined by the appended claims.

Metadata:
Filing Date: 20140918
Publication Date: 20200317
Grant Date: 20200317
Priority Date: 20140523
Inventors: KASEMSET, CLARE T.
FLEIZACH, CHRISTOPHER B.
Assignee: APPLE INC
CPC Classifications: [{"code": "G06F3/04883", "inventive": true, "first": true, "tree": "[]"}, {"code": "G10L13/02", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0482", "inventive": true, "first": false, "tree": "[]"}, {"code": "G10L13/00", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/04883", "inventive": true, "first": true, "tree": "[]"}, {"code": "G06F3/167", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/04886", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/04886", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/167", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0482", "inventive": true, "first": false, "tree": "[]"}, {"code": "G10L13/02", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/167", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/04883", "inventive": true, "first": true, "tree": "[]"}, {"code": "G10L13/00", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/04886", "inventive": true, "first": false, "tree": "[]"}, {"code": "G10L13/00", "inventive": true, "first": false, "tree": "[]"}]
Family ID: 54556099