Build a text reader app with Pause and Resume Features using App Inventor | Een jeen - | Skillshare

Build a text reader app with Pause and Resume Features using App Inventor

Een jeen -, Learning anywhere

Build a text reader app with Pause and Resume Features using App Inventor

Een jeen -, Learning anywhere

Play Speed
  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x
8 Lessons (51m)
    • 1. What's in the course

      1:22
    • 2. Designing our app

      6:06
    • 3. Adding the text reader functionality

      10:17
    • 4. How to add Play and stop functions to the Tts component|

      6:34
    • 5. How are we going to add the pause and resume functions

      2:56
    • 6. Dividing the given text into a list of sentences

      10:20
    • 7. Making the tts to speak the the list items one by one

      4:16
    • 8. Debugging the errors and making of the complete and perfect Text reader app

      9:26
  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels
  • Beg/Int level
  • Int/Adv level

Community Generated

The level is determined by a majority opinion of students who have reviewed this class. The teacher's recommendation is shown until at least 5 student responses are collected.

24

Students

--

Projects

About This Class

I often hear many people complaining about the limited features of App Inventor. While it is true to some extent but it is not an actual problem. The actual problem is most of us use only the direct features of different components while we can do much more with them.

In this course, I will explain to you about developing one such feature that really doesn't exist but, we will create it using the available blocks and components.

In-App Inventor we have a TTS component but, we see that it has only a few blocks and you can only ask it to speak a particular message. The problem with this component is you cannot Pause, Resume or Stop it while it is speaking. However, this is not going to be a problem anymore as I will show you how you to develop Pause, Resume and Stop features using the built-in blocks.

Developing such a feature is a kind of miracle but, once you will go through this course you will develop a sense of being able to create so many features like this for your app projects. You will also start to explore different components and try to build the features that you need instead of restricting yourself to the features that are already available.

All this exciting information is waiting for you right at this place and you need to just click a button in order to start the course. So, what are you waiting for? just click the button and start the course.

Who this course is for:

  • This course is a best fit for you if you already using App Inventor and interested to develop some advanced skills.
  • If you want to add functions like Pause and Resume to TTS component.
  • If you want to learn the applications of lists, variables and text blocks.

Requirements

  • It is better if you have prior experience with using App Inventor before you take this course

Meet Your Teacher

Teacher Profile Image

Een jeen -

Learning anywhere

Teacher

Class Ratings

Expectations Met?
  • Exceeded!
    0%
  • Yes
    0%
  • Somewhat
    0%
  • Not really
    0%
Reviews Archive

In October 2018, we updated our review system to improve the way we collect feedback. Below are the reviews written before that update.

Your creative journey starts here.

  • Unlimited access to every class
  • Supportive online creative community
  • Learn offline with Skillshare’s app

Why Join Skillshare?

Take award-winning Skillshare Original Classes

Each class has short lessons, hands-on projects

Your membership supports Skillshare teachers

Learn From Anywhere

Take classes on the go with the Skillshare app. Stream or download to watch on the plane, the subway, or wherever you learn best.

phone

Transcripts

1. What's in the course: I often hear many people complaining about the limited features off up in winter. While it is true, do some extent. But it is not an actual problem. The actual problem is most off us use only the direct features off different competence. Wow, We can do much more with them in this ghost. I will explain to you about delivering one such feature that really doesn't exist. But we will create it using the available blocks and competence in up in men door We how extra speech competent. But we see that it has only a few blocks and you can only ask you to speak a particle A message. The problem with this competent is that you cannot false resume or stop it while it is speaking. However, this is not going to be a problem anymore because in this ghost I will explain to you how to develop those features with built in blocks. All this exciting information is waiting for you right at this place. And you needed this click a button in order to start Icos. So what are you waiting for? Just click that button and how all this information 2. Designing our app : by default. That extra speech component has feature such as it can convert a given text into a speech. But there are so many drawbacks with that competent, such as it doesn't off even though the up closes. And it doesn't how the play and force options we are going toe add the plan Boss Functionality toe the tedious, competent, available in thinkable. So this is my bankable dashboard, and first of all, I'm going to create a new app, so I will click this button and add a name forest. So how created a product sing idiots testing And this is our blank up in this up. You're going to add the labels and bottles with the help of which we can ask the hideous, competent to read a particular text. And Father, we are going to enhance its functionality by adding the play and boss features in orderto play and pause a particular text. We need a bottom and hence I will track the bottom confident and after a button, we also need a text that is to be displayed in a rap, and the X that is being displayed in our app will be spoken by the tedious, competent for that purpose. I'm going to use the label competent. Let us align this to calm parents properly so that they look good and do a line and arrange them properly. I'm going to make use off the arrangements available in the layout. Drop down. So for the label, I want a vertical arrangement. So I was just drag and drop it here. And in this arrangement, I will add the label confident. I want this label competent to occupy the complete space in APP and let this button the available at the bottom off the map. And to do so, we should change the height and width off the vertical arrangement. So first of all, I will select this vertical arrangement and in the property section off the vertical arrangement, there is the option to change its height and wet. First of all, I was said the height off this article arrangement to be Phil parent and next the wit, the word I will choose it to be about 95%. And after that I want to change the horizontal alignment off the political arrangement. I want to set it do left so that the X that is shown with the help of a label will start from the left corner. You can also use a wedding. Those cool arrangement in start off using a political arrangement because you will, how the scrolling feature. And even though the X exceeds the size of the article arrangement, you will be able to scroll it and read it. But for the same purpose, I'm going to use a vertical arrangement as I will not be Addy so much off next. So this is the basic design off our up. And apart from that instead of just showing the label one as a text with help of the label confident, I will select this label competent and in the property section I will change its text Right now, the text in this label component is label one. I would replace it with a short paragraph so I just promoted. You can create your own paragraph or ALS. You can use the paragraph that I how created for the testing purpose and I will make it available to you with the help of an article are true resource file. So this is the pain Enough. Let me cope it and based it here in the X section in the properties off level one, competent. So right now you can see that this label is occupying more wit. Hence, letters change its wit. No, Phil parent. So this is the complete checks that will be displayed with help off the label. One component and apart from that led the button one display that ext as play. So we want to use this, but as a play button. So that's why I am renaming it. Ask play. And apart from that, it's better to change the competent names in order to gain better understanding. And even I will change the name off this play button. So completed we have the text, arranged it properly and at the bottom. We have a play button. Now, offer this. We should be able to test our 80 s competent and which we will stop doing in the next video . So what are you waiting for? Take a small break and motor the next video 3. Adding the text reader functionality: welcome back. So now that is at the tedious, confident it is available in the media. Drop down, just drag and drop it, and it will be visible in the non visible competence section. That extra speech, competent, is a non visible complaint, and it doesn't occupy any space on the screen. Off the up for the text to speech competent. There are some of the properties which you can change by default, such as the country, the language, the page and the speech rate off the voice which will be generated. We're not going to change any off those properties, but rather we are going to the block section. So when I select this text to speech competent, there are about two evens that comes with this text to speech, competent first, even ease After the text to speech has spoken, the text are after speaking, has been finished, and the next even these other even which occurs before the extra speech starts speaking. And here is ah, method block, which can be used in order to ask the text to speech, confident to speak a particular message. And in the misstates socket you have tow, add a ext with the help offers Texas String block. And apart from that, you can change the properties, the default properties whenever you want. When you attach this, blocks that as Texas Beach Country text to speech language off the text to speech competent . So first of all, we are going to make you so often. Even that comes with the play button. So let me select the play button and here at the doctor, even saying when play button door click is available So that even say, Is that what I have to do? Or the world the APP should do whenever the play button will be clear when the play button will be cleared? Of course I want to ask the text to speech, competent to read the message that is visible with help off the label competent that we have added. So let me select the text to speech, comprehend and let me drag this block, saying called extra speech speak message. And I would like that it that this even and the next thing that I had to do is that how to fill this socket with the text and the next he's available with this label competent And so I will say this label company and here when I scroll on the block, sing next to translate Door ext which indicates the text that is being displayed with the help off this level com print. So I would drag this one and, uh, attach it here in this socket. So no, what happens is there whenever the play button will be clicked, the extra speech competent, speaks a message. That is the checks that we have added. So the extra translate label component. Now that is just over app. In order to just over up As you know, we have to flick the drop down saying est and later you have to say the uncle live option. It will generate a pure gold and also extra coats saying VB t u c ists in this case, how to make use off this goal in order to s the up I'm using ah, screen sharing software. So I will be opening the up and displaying to you right here. So let me open the app. So this is the screen sharing software. Let me have the coat and is the up. So how opened the trunk of a live up and added the court. Now the tangible life is showing the app that we are creating, So this is how the app will be. The play button will be available at the bottom and the label is available at the door. It's breaded or just the design, so that the play button will be available after a small parting from the bottom. So let me click. The play button paragraph will be divided into a single lie of a sentence. We know that after every sentence we should take a break intense. We will utilize this property. We will now divide the paragraph into a list of sentences and the TTS will speak each sentence separately. This will help us to detect the sentence which tts was speaking while the pause button was clicked in. Whenever the user clicks the resume play, but in the TTS will start speaking the sentence. So this is how it speaks the end, our X that is said to speak. I want the pause feature, so it's a lot of time the user meeting that he needs to boss and he needs to resume the TDs right at the point of time if you observing the bankable website here with extra speech, comprehend no block saying DDS Boss is available bossing the DDS, resuming the tedious and stopping the media's. All these features are not available with a tedious component itself, so we should make use off some other medium whenever the play button will be click instead of showing the play next on the button. I want to show the stop next so that the user can click the star button and stop it. Let us use, uh, if then condition for that purpose because we're using the same button, even for stopping the tedious and even for playing the tedious. So I would drag and drop this whole extra speed speak block in the then section. The next thing that I want to share with you is that in order to detect whether the idiocy is speaking or not, we need to make use off a variable and hence let us create a variable in the building blocks section. You have a variables available. Just drag this boxing initialized global name, too. Variables can be a number of extra string or a list which can be used in any event that is available in the block section is off name I want Do replace it with speaking. And here I will use the true and force a block right now, by default, I want to set it do false in order to say that the force, I will just click this drop down and selling this false option. So whenever the APP stores by default, the speaking variable is set to false. And next I'm going to use a logic block in the if section. So first of all, like this block which checks whether the speaking is true or falls. And next year I will drag this variable saying, get speaking so it will actually get the value that is present in this variable. And next I will duplicate this block with Safe's false and I will attach it here. So what we're checking here is that we are checking whether the extra speech component is not speaking. So if global speaking is force means that extra speech component is not speaking. And in that case, we want that extra speech confident to speak that X that is present in the label component . Next, I will click this Gair button available here. It will enable me to extend the features in this block. Next case is the else. If case so offered this check, I want to make another check. I will duplicate this block, which is a logic block, and attach it here in the else if socket. So in the next case, what? I will seize that if speaking is true. Which means that the text to speech Cameron is speaking. Then I want to stop it. And hence in order to stop the extra speech comprehend what he had to do is first of all, you have to make it off this block with stays called extra speech. Don't speak. Hence I will duplicate this block on how attached it here in the den section. So in the case, when we got to know that text to speech component is yet speaking, we want to stop that extra speech competent from speaking and hence instead off setting the message as the label components, ext. Let me delete this one and replace it with a blank extra string block. And hence the message that the extra speak competent will speak will be nothing. And it will not generate any voice. I hope you how understood this concept. And in the next video, we're going to test whether the play and stop process will work properly or not. 4. How to add Play and stop functions to the Tts component|: Welcome back. As I have said you in the previous video, we're going to test whether the play and stop function works probably in or up or not. So let us attach this control block to this even block, which is play but and not sleep. And after attaching it, let us open printable life up where we're going to test this app. So this is the dunk of a life up. Let me click the play button. The paragraph will be divided into a single line of a set. We know that after every sentence we should take hence we will utilize this property with the paragraph will be divided two paragraph. So as I'm clicking the play button, you can see that the ideas is speaking the pair of rough right from the start. But it is not actually stopping, has there is an error. Let us check watch the error in the about face. When we asked us to speech, confident to speak. Then the PDS will start speaking, and in the case we have not changer the value off the variable called global speaking. So when the extra speech starts speaking, then we have to set the global speaking variable true which we have not done. If we have done it, then it would have detected a in this case that Lowell speaking we will is set to true and idiocy is speaking. And hence it will do the things that are added here in the den section. So the variable is different from the extra speech competent. We have created the variable, which is a bullion with checks, whether the biggest is speaking or not. And hence whenever we are switching on and off the extra switch competent, we had to manually change the value off this variable also. So let us drag the blocks. Seeing said Global, speaking to and after that duplicate this false block a gadget here and again duplicate this one. So now we want Oh said this variable toe falls in the case when we are asking the Texas speech competent to speak nothing and in the next is here at the top. When we asked the extra switch Competent does speak a particular message. We have to change the value of the variable that is global speaking, were able to true and attach this block here. Now this does the up again and see whether it is working properly or not. So this is atthe let me click the play button. The paragraphs will be divided into a single line of a sentence. We know that after every sentence we should take a break in. So yeah, it's working properly. So when I click the blame, it on the paragraph will be divided into a single line of a sentence. And whenever I again click the play button and it'll stalls. So we have added the play and stop function in our app. But there is one thing which looks a bit Akwa here that the text off this button, the display button remains play even when tedious, competent is speaking at the time. I want it to show the stop next insert of the Playtex and whenever the stop it and will be click and the extra switch competent stops speaking. Then I want to show the play button again. So let us go back to bankable website and here. What we can do is that we can change the text off the button by adding the blocks in this control block section. Just click this play button and you can find the different blocks related to the play button. In a school down, you can find a block saying set play button next to just drag that block. And now Dagenham need extra string from Busan Block section and attached it to this socket . And here I want to change the name off the play button to stop. Let me duplicate this one whenever the stop button will be clicked. Then I want to change the text back toe play. So let me also at the plate next year. So let me drag this block and attach it here at the bottom. And when the stop button will be clear, we want to set the play button next to display the plate. Next. So what has the block here? Now let us just the app. So I will click the play button. The paragraph will be developed. Bite into a single line of a sentence. It is displaying the stop text now. Now admitted the stop button. Yeah, Now it is a swing. A play text back. So in this way you can use the same button for two purposes. We are clicking the play button right Now it is displaying the stop next as the text to speech. Competent east yet speaking and now again, when the tedious, confident is not speaking, it is displaying the play text In the coming videos. I will explain you how you can add the play boss and resume functions in your app. So hope you're more excited to learn about that. Then what are we waiting for? Take a small break and move to the next video. 5. How are we going to add the pause and resume functions: in order to add the play false and resume function in your app, we should be able to detect where we have boss that text to speech competent while it waas speaking a particular text. This function is not available by default, with extra speech confident and you cannot even did it. The exact position where the text to speech competent has bean stopped. But I want you to observe while extra speech confident speaks the text. So let me click the play button and I need you to observe some important thing here. The paragraph will be divided into a single line of a sentence. The night the doctor, every sentence. We should take a break intense. We will utilize this property. So here the point that I wanted you to absorb is that after every sentence, that extra speech component, he's taking a small break, and it's a basic rule that even every person should follow. We have to take a break between each sentence that we don't. We can use this property off the extra speech competent in order to detect the exact point where it has stopped speaking, offer every senders. We have a small dot indicating the end off that particular sentence and has. What we have to do is that divide the paragraph in the different sentences as they are separated by dot. So we will create a list off different sentences and we will ask the text to speech, competent to speak one sentence at a time. And after that, centers have Bean spoken by tedious com print. Then we will ask it to speed the next sentence. And in this way we can detect where the extra speech comment has bean past and we can resume it by asking the text to speech comment to read from that particular item available in the list off the sentences. So we're doing Do add the OSS resume and play functioning are up with help off breaking the paragraph in. Do a list off different sentences. Hope you understood this concept and we will do it in the next radio. So what are you waiting for? Take a small break and motor the next video 6. Dividing the given text into a list of sentences : So first of all, before we ask that extra speech competent to speak, we will divide the given paragraph in the list off different sentences. And for that purpose, we have to create a list. The list that we will be creating should be used through various blocks, and hence it should be a global variable. So for that purpose, let us create a valuable dying this block from variable section. Let us name it as list off, Send Ince's and now from the list section that the bloc saying Create them the list and attach it to this socket. So whenever the AB starts, the variable list is created with the name list off sentences. So we should make use off this variable list in various blocks present in the block section . We will add the items to this list when we got to know that extra speech component is not yet speaking. So let me drag the blocks, Ng said. Global list off sentences to so we should divide the given paragraph into different sentences by detecting the dorks present in the paragraph and has let me go to the next section where I have an option saying split next ed. So this is a block with say's split, ext. Ed Dr. This block when it keep the cursor on this block, it will show a comment Very content to know that this block helps you. Did you wide the given text into different pieces? Amazed on the para meter or the ultimate that you have given in the etch socket, You can have a comma there you can add a dog or anything else. So for this variable, I will attach this block to its socket. The text that should be divided is the text that is being shown in the extra translate label. So let me duplicate this. So this is the text that we want to be wide. I will attach it here in the Texas. Soak it I want to do Why the text at darts? So let me go to the next section of game. Scroll it and dragged this empty extreme are that it did this socket and here I will add that dot So now, through this block, we are able to create a list off different sentences. So this will divide the paragraph text into different sentences and it is being said toe be represented with a variable list that this list off sentences Well, that that's just block the oh, the control block here. So whenever we got to know that extra speech component is not working, we will first reportedly wide the given text into different sentences and then in the media section through the message that we have at it is that extra translate text. But we will remove this one's Troy in the men and now in the Miss Aid socket inside off asking the text to speech component to speed the complete text off the paragraph. We will ask it to speak each sentence one by one. And for that purpose, let us get a block from the list section school in here and you can find the block saying select list item list index. Just drag that block and attach it here to this socket. So here, with the help of this block, we can sell a particular item in the list. But you should also be able to add the index here in next. He's a serial number, and the serial number is related to the items present in the list. So whenever I will link the particular list here and add the index as one. Then it will select the first item in the list. If I will add in excess to, then it will select the second item in the list. In the list socket we have are the variable list that we create. So let us drive this get block and adapted here in the end it section, we can add the value asked one. But you have to notice one thing. We will use the same play button you pause and even to resume and hence the index will be varying. And as the index is rotting, we should add that particular number in the index from where you want to resume that extra speech confident. So we should create a variable for representing the index so that in the locker saying initialized global name do And here let me change the name Indu Index and in the socket, I want to set the variable to a number which he's one when it initialize is so. The list doesn't contain a Geo index. The index starts from one, so by default the value for the index will be one and whenever the text to speech come back and speak something, we have to increase the value by one in order to ask the Texas which competent to speak the next sentence in the list. So drag this variable and attach it here in the index socket. The next thing that we have to do is that as the extra speech com brand complete speaking a particular sentence in the list, we have to ask it to speak the next sentence for that purpose. We have gotten even blocked in with the text to speech competent. So select the Texas. Which comment dragged the even block with safe extra speech after speaking. This even occurs when the Texas speech confident, has completed speaking a particular message that has bean given to it. So now how the forcible check if the variable that is global speaking is true or not, and only in that case I will ask the extra speech competent to speak the next item in the list. I hope you understood. What I wanted to say is that even in the case when we are bossing that extra switch competent, we are asking it to speak a blank next, which will not generate any speech. But it will stop speaking the previous message. And even for this method law, the even occurs that is the when extra speech offer speaking even occurs and we want ask the extra switch, competent to speak the next sentence only in the case when the global speaking variable is set to true. So dragged the control block, which is, if then control block a magic here to this, even let us force of all check if the global speaking is true and for that purpose, let me duplicate this one. And in the case, if the Texas which component is yet speaking, then what I want to do is that I want to increase the index by the value off one, which means that, for example, if the next he's one right now, then I want to change its value toe do and we can do it by using the mat blocks. But before that one you have toe also did it. Another thing. The thing that you had a predict is that whether extra speech comment has completed speaking, all the items are not, and in the case, if all the sentences are items in the list. How spoken by tedious, then we don't want it to speak next. Rather, we want to stop it. So before going forward to increase the value off index, you need to first check whether the tedious has been posed by the user or not. And then you have to check whether the TDs has completely spoken the message or it is yet to speak some off the sentences and only if the BDS hasn't been posed and it is yet to speak some off the sentences. Then you can increase the value off index. You will get to know more about how we are going to do this in the next video. So take a small break and we will meet in the next video on building. Well, I 7. Making the tts to speak the the list items one by one: in order the check whether the extra speech component has spoken. All the items in the less we have to again use a control block, so drag if then block and as it here to the socket. So in the if socket we have the first of all, check whether the items are it's spoken or not. So first of all click the mat block and dragged this equal to block available, and here we're going to check the value of the index. And in the case, if the value of the index he's less than if the value of the index is less Dan the lend off the list you can get the northern end of the list with a block from this section. So this is the land of the list of lock this drag it and as it here to the socket. So for which list do you want to know it's Lent? It is this Global list offs and dances duplicate this block and attach it to this one. Adapted this block to the if socket. So now what we will do is that we will increase the value of this index in the den section So in order to increase the value off the index, you had to drag the block with, say, certain global index to drag it and attach it here in the den section. In the two socket, you have to increase its value. And in order to increase its value again, we have to use the map block. So go to the math section, back this addition block and attach it here to this soccer. Now we want to increase the value off global index, so get the variable and attach it here in the socket and the valued by which we want to increase. The global index value is one. Hands duplicated this block, which is representing the number one and attach it here. So when the global index value is less than the length off the list, we are increasing the value of the global index. And next, we will ask the text to speech comment to speak that particular sentence. So selected extra speech, confident and drag this method lock, which is called extra speech, speak message and in a missing section again, how to use this block, which is select list item list where the list will be the list off sentences and the next will be the global variable index. So duplicate this one on a dashed good here. So in this video, we how created a mechanism using another control block, which is, if then block which will first of all, check if there are any sentences that are yet to be spoken by the tedious, competent. And in the case, if there are the sentences, then it will first of all, increase the value off index. And it will allow the DDS competent to speak the next item in the list. So there is yet another video which you need to watch in orderto how you were exciting balls and resume feature for your extra speech up. So see you there by 8. Debugging the errors and making of the complete and perfect Text reader app: Hey, welcome back, everyone. In this video, we're going the test. Whether rap is working finally or not Sanam going to click the play button now paragraph will be divided into a single line of a sentence. We know it's after every sentence. We should take a break and hence we will utilize this property. So the previous center that was spoken by the tedious Waas, the second sentence very deserted as we know that after every sentence we should take a break and hence we you will utilize this property now. When I would hit the play button, it should start right from this sentence because we have actually paused. And now we are going to resume it. And as we resume it, it should speak from that sentence. We know it's after every sentence. We should take a break and hence we will utilize this property. Yeah, so it is working properly. But there is a small mistake in the procedure which you will get to know once the complete sentence has been spoken by the tedious. So let me click the play button and help you understand What is the editor that may occur? We know that after every sentence, we should take a break and hence we move. Utilize this property. We will now divide the paragraph into a list of sentences on the TTS will speak each certain separately. This will help us to detect the sentence which tts was speaking while the Bulls button was clicked in. Whenever the user clicks the resume play. But in the TTS will start speaking that sentence. It has spoken the complete paragraph but yet the button is showing the stop next. But rather we want to display the play text. And apart from that let me click the stop button Now. Now it was showing play button, whatever I click play. But now, as it has spoken the complete paragraph it should start speaking again right at the beginning. But it will not do so So by clicking the play button. Now this will help us to detect the sentence which tts was speaking while the fourth button was clicked in when it So it is speaking from this point which is the last sentence. This is an error. Even though it has spoken complete paragraph, it is again speaking the last senders which we need to correct The probable mistake that re how done is that in the even brought buddies? Went extra speech offer speaking. We are increasing the value when the index ceaseless Stangeland off the available sentences in the list. In the case when it has completely speaking all the text, we are not doing anything, and this is creating an error. So for this control block, we should are even more blocks that is an else if condition. So click this Gair button and during this else, if block and in the else if section, we are going to check whether now index is equals to the length off the list. So for that purpose, let me duplicate this one and a gadget here, an instant of the less dan condition. I'm going to change it to equals two. So when I take the drop down, I can find the Radius options such as equals to Noriko's to less. Donna recalls to another Matt conditions. I'm going to choose the equals two. So now the trick is something as if the global indexes equals to the length off the list. Then you do something and water it has to do. We should add the blocks here in the detection. First of all, we want Todo said, the global index to one So which indicates that this has completed speaking all the text. And now whenever the play button will be click again, it should speak from the beginning off the paragraphs and apart from that, we want to stop the tedious. And hence as we stop the DDS, we should also mention through this global speaking variable that that extra speech is not speaking. So this is that variable which we are using in order to check whether that extra speech com brand is speaking or not. And hence we had to even change the value off this video. So, like this block, things that global speaking do and duplicated this block magic here in the socket and click this drop down changing who falls so as the globally next will attain the value off the length of the list, then we are going to stop the media's. We don't want the PDS to speak right from this point, and apart from that, we also want the play button to display the Playtex instead of the stop X whenever it completes speaking all the text in the paragraph. So this Click this button Scroll down, Dr This Block, Let's say said Labour, an extra two grab MD extra string block from the extra section A gadget here and in this block I will die B l you wise. So now it will work properly. But let me make changes to other blocks. So whenever the play button will be collect if the extra speeches yet speaking, then instead of displaying the next I want to display the resume next. And while that extra speech is speaking, I don't want to stop the extra Swiss competent another. I want o lost it. Now let us this hour up and check whether it will be working properly or not. So this is a wrap and it is doing the play button right now for clicking the play button. Let me refresh this up because it will yet speak the last sentence only in order to refresh toe at all how to do is just make some changes. No, the properties off any of the competent. So I'll just change the next color of the next off a button. I also didn't do no gray and nobody can You are up. What? How would he fished? So now let me click the play button the top paragraph. Bite it into a single line of a sentence. The night is after every sense installation, so it is now displaying the pause and resume X on the button instead of showing the stop or latex. But I will click the zoom button. We know it's after every sentence. We should take a break intensely Move you tonight This property it is showing the force text. Yes, we speak each says and separately, this will help us to detect the sentence which tts was speaking while the Bulls button was selecting. Whenever the music place the resume play bus in the TTS will start speaking but sentence So yeah, it has completed speaking all the next as it has completed. Now it is showing the play next instead of showing the pause or resume next on the bottom. So now this is working properly. You can test it, Andi, on Libya, Egypt. One other thing that is let me quit the play button and check whether it will be speaking. This last sentence are it will be speaking that X from the beginning. So let me click the play button. Para rock will be divided into a sign of a sentence. So it is speaking from the beginning off the paragraph. Now I'm sure that it is the perfect one, as we have added also and resume function, do tedious and instead of just adding the Boston Resume, But you can also add the stop button, which can be beside this boss or resume button.