Today, I’ll show you how to tap into the “world’s most powerful speech-to-text API” from our own applications. We’ll be using Deepgram, which is based on OpenAI’s Whisper AI SST technology. Deepgram claims to have trained their AI model with10,000+ years worth of audio data.
(For more of my posts about Text to Speech and vice versa, about AI and/or Machine Learning, click here.)
So how do we leverage this magical power? Of course, anyone can try out their UI on their web site by checking out a few samples, but the real fun is writing your own program that can transcript any audio file, whenever we want using their powerful AI platform.
The full source code is below but I have also shared the code publicly at my Google Colab space here from where it can be downloaded as .py or .jpynb file.
Of course, to use their AI service from our apps, we need to get a developer API key, which is avaiable for free (for now) with limitations from the site: deepgram.com
Without a valid API key, my code is not going to run locally or in Colab. So, get your own key (I cannot share mine as my tokens would be used everytime that key is used to make a query and after a limited time, it costs money), and then assign the key’s value to DEEPGRAM_API_KEY variable as a string.
Further instructions on the setup and explanations are in my Google Colab space, but to summarize what it does…the program calls the AI engine that does the heavy lifting of transcribing an audio file using Whisper technology created by OpenAI. Then an implementation of that by Deepgram improves on the performance metrics and removes some size limitations along with adding more language support and speaker diarization. Diarization means ability to recognize different speakers in an audio (e.g. conference, meetings, conversations, interviews) which allows it to include a unique tag for each speaker in the transcript.
While it does a very good job transcribing pre-recorded audio whether it’s from a local file or via URL on a remote location such as in streaming format (e.g. podcasts), it can also do real-time transcribing of a live stream, which I was able to also verify in another program I wrote. But in this blog, we’ll just discuss transcribing pre-recorded files both local and remote. The code in Colab I share above includes all the required code for such.
But for completeness, here’s the full source here as well. Feel free to play with it and modify it after you read the rest of this post.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 | from deepgram import Deepgram # module name is deepgram-sdk import json import os import time as t import asyncio # module 'asyncio' needs to be installed separately. DEEPGRAM_API_KEY = 'YOUR_API_KEY' # this code will not work without a valid API (get one from deepgram.com) def count_the_words(data): """ JSON Format: (shortened version for brevity but enough to understand the JSON structure to able to access any key and value we're interested in ) "results": { "channels": [ { "alternatives": [ { "transcript": "some folks say", "confidence": 0.99058765, "words": [ { "word": "some" }, { "word": "folks" }, { "word": "say" }, ....etc. repeats for as many "word" in "words" key array ] } ] } ] } """ # Count "word" keys count = 0 for word in data['results']['channels'][0]['alternatives'][0]['words']: if 'word' in word: # if a "word": key exits count += 1 return count ## --------------------------------- def load_from_disk(full_path_transaction_file): """ Loads a JSON file from disk and extracts 'transcript' key value. args: full_path_transaction_file -- full path to a complete file (path+filename+extension must be supplied in arg) opens for reading only and displays the transcripted part only with each sentence on its own line. """ # The following block of code is commented out as for Colab, File I/O will be different, so you'll need to modify it for Colab/Jupyter. # But works perfectly running this as a .py code locally with VS Code or Thonny or another IDE. Which is how I run this program. """ with open(full_path_transaction_file, "r") as file: data = json.load(file) # get the transcript part only result = data['results']['channels'][0]['alternatives'][0]['transcript'] # Show the transcript text # Split the string (sentences) by periods and show each sentence line by line result = result.split('.') for sentence in result: print(sentence + '.') ### optionally, count the words processed wc = count_the_words(data) print(f"Count of words detected: {wc}") """ return ## --------------------------------- def save_to_disk(js, subdir, fext): """ Saves JSON load from memory (entire json payload) to a local file as .json args: js -- json object (from dumps) to save subdir -- directory name under current directory or path to save to. e.g. "e.g. transcripts/" does NOT create it if subdir doesn't exist (will generate FileNotFoundError) by design fext --- filename with extension string to save as: e.g. "afile.mp3" adds ".json" extension fext and uses subdir to build path and saves it there. """ # The following block of code is commented out as for Colab, File I/O will be different, so you'll need to modify it for Colab/Jupyter. # But works perfectly running this as a .py code locally with VS Code or Thonny or another IDE. Which is how I run this program. """ final_name = subdir + fext + ".json" # print(final_name) # e.g. out: transcript/the_specified_file.ext.json with open(final_name, "w") as outfile: outfile.write(js) print(f"JSON file saved to: {final_name}") """ return def main(f, src, mime_str): """ args: f -- full path to filname including protcol (if url) + extension. src -- string either 'url' or 'buffer' mime_str -- MIMETYPE string containing the value in str format 'audio/wav' or 'audio/mp3' etc. mime_str value is not used when src = 'url' The source parameter format (argument: scr): source = {'url': f} # for URL: http:// or https:// urls full path to audio file. e.g. "https://static.deepgram.com/examples/Bueller-Life-moves-pretty-fast.wav" source = {'buffer': audio, 'mimetype': MIMETYPE_OF_FILE} # for local file: e.g. "C:\\audio\\afile.mp3" """ # start time for performance tracking start = t.time() # Initializes the Deepgram SDK dg_client = Deepgram(DEEPGRAM_API_KEY) # initialize the Deepgram client source_param='url' if src.lower()=='url' else 'buffer' if len(f) <3 or len(src) < 1: print("Missing file or source type") return # set options for either source (url or local) options = { "punctuate": True, "model": "nova", "language": "en-US" } if src == 'url': source = {'url': f} print('Generating transcript from remote audio file...') else: # assume src='buffer' audio_file = open(f, "rb") source = {'buffer': audio_file, 'mimetype': mime_str} # need to pass file handle (not name) to buffer value. print('Generating transcript from local audio file...') # Create the transcripts (this code block is same for both URL and local/buffer) response = dg_client.transcription.sync_prerecorded(source, options) json_object = json.dumps(response, indent=4) # this saves the entire json content in a json var if DEBUG: print(json_object) # show on screen the full load if flag is turned 'ON' # end timer speed = t.time() - start # get the start and end time diff (secs) print(f"Seconds to execute: {speed:.3f}") # 3 decimals # Extract only the transcripted text part and confidence value: trans = response['results']['channels'][0]['alternatives'][0]['transcript'] confidence = response['results']['channels'][0]['alternatives'][0]['confidence'] print(f"Transcript:\n{trans},\n** Overall accuracy ** : {confidence:.4f}%") ### Show the number of the words processed/detected wc = count_the_words(response) print(f"Count of words detected: {wc}") # Write the entire json dump as string to disk for later loading # Extract the filename with extension filename = os.path.basename(f) save_to_disk(json_object, "transcripts/", filename) # end main() ## Main Driver ### # *** Function main() is our custom function above. *** DEBUG=0 # create a tuple for 2 different types to pass to function as param SOURCE_TYPES =('url', 'buffer') # 'url' for remote/url and 'buffer' for local file. ## ------------------------- # The code for configuring for opening a local file: # To open a local file, specify the path, source type, and mime_string values and call main() passing the arguments. # Uncomment the following 2 lines to open a local file after configuring with your specified files/types: # mime_string = 'audio/wav' # change the extension part according to FULLPATH's file specified. Can be 'audio/mp3', 'audio/m4a', etc. # main(FULLPATH, SOURCE_TYPES[1], mime_string) # 1 for 'buffer' (local file) ## ------------------------- # For pre-recorded streaming audio (e.g. podcast) remotely via URL: FULLPATH = 'https://res.cloudinary.com/deepgram/video/upload/v1663090406/dg-audio/Upgrading-phone-plan_pmfsfm.m4a' mime_string = "" # not needed for URL paths # start creating transcription from the audio file via Deepgram main(FULLPATH, SOURCE_TYPES[0], mime_string) ### end |
Ok, so let’s put it to test. Let’s load a streaming m4a formatted audio of a support call involving a caller (man) and a woman (support rep) over the internet. To do that, in the code above we use the url: ‘https://res.cloudinary.com/deepgram/video/upload/v1663090406/dg-audio/Upgrading-phone-plan_pmfsfm.m4a’ and assign FULLPATH to it, and then we call our custom function main() with it. That takes care of the authentication, communication with the backend and talks to the AI engine to get the results back as a JSON payload.
Then our program will parse through the JSON content and extract what we care about. In my case, I only want the value of the key ‘transcript’, ‘confidence’ (for accuracy), and in the program I’ll enumerate all occurrences of the key ‘word’ in ‘words’ array which gives me the number of words it processed. When you look at a sample JSON response which I share below, it’ll make more sense.
You can hear the actual audio file we’re using below (2 mins long):
The output from my program is shown in the shell as below:
The program, running on my PC took 1.2 seconds and got a whole bunch of information back from the AI model in JSON format over the internet. Then I extract the transcript (shown in the output above in a condensed form…which I’ll share in full below), and AI’s overall confidence in the transcription (99.9%) and the count of words it processed (339). That was impressive.
By the way, the ‘Seconds to execute’ and ‘Count of words detected’ are not in the Deepgram API, instead I have implemented them in my code using standard python time library to measure block execution and by parsing the JSON file that their AI returned to me. I’ll explain more on the overall process again below.
For now, let’s take a look at what the transcription I got in 1.2 seconds without even listening to the audio, and compare with the audio above! Here’s the transcript by AI:
And thank you for calling Premier Phone Service. This call may be recorded for quality and training purposes. My name is Beth, and I'll be assisting you. How are you today? I'm pretty good. Thanks. How are you? I'm doing well. Thank you. May I have your name? Sure. My name's Tom Idle. Can you spell that last name for me? Yeah. Yeah. I d l e. Okay. L e at the end. I was picturing it idle, like American idle, I d o l. Yeah. That that happens a lot. It's not really a common name. Okay, mister Eidle. How can I help you today? Yeah. I need some information on upgrading my service plan. Sure, I can absolutely help you with that today. Can you tell me what plan you have currently? I think it's a silver And let me get my glasses so I can read this. Yeah. Yeah. It's the silver plan. Okay. Alright, silver plan. And how many people do you have on your plan right now? Three. I've got my brother, Billy, my mom, cat, and I guess I count two. So, yeah, that's three. Great. And how can I help you with your plan today, sir? Oh, you can call me Tom. There's no need for the sir. I'm sorry, Tom. It's just an old habit. How can I help you with your plan? Well, on my plan right now, I can only have three people on it, and I'm wanting to add more, so I'm wondering if I can switch my plan up or upgrade it somehow. How many more people are you wanting to add to your plan? Well, here's the thing. I need to add three more people. So far. I wanted to add my friend Margaret, my daughter, Anna, and my son Todd. Alright. We do have a few options that support six users. One is our gold. The other is our platinum plan. Okay. So how much are those gonna cost me? Well, the gold plan is
That was a file that’s located on a remote server in a streaming audio format. But I’d also said that I’ll demonstrate transcribing a local audio file. Let’s do that next.
Here’s an audio recorded (in British accent, no less) by a fan of Shakepeare’s play Henry V. It’s 3.5 minutes long and you can listen to it yourself below:
The file is local to my PC in MP3 file. And I want to get a transcription of this beautiful narration.
Configuring a local file vs a remote file for AI processing is a little different. Instead of sending the file name and path (which is local to my PC only), I have to open it and send the engine a handle to the binary file. I also need to set its source type to “buffer” and specify its mime type with mime_type attribute (it’s according to Deepgram’s SDK documentation, so we have to comply fully or it won’t work) accordingly. The code I share here and in Colab has comments inline to explain further. At any rate, when these are set, then we can call dg_client.transcription.sync_prerecorded() function with these parameters. And if all goes well, we get a detailed JSON response just above with the remote URL.
Then it’s up to my program to decide what to do with it, fortunately, as earlier, it has everything I need and a little more in the JSON content.
Once we run the program, the output in the shell in summary looks like this:
We see the time it took to transcribe (2.8 s), the overall accuracy of confidence it has (99.5%), and it detected 418 words spoken in the audio. The actual transcription in my editor shown in screenshot above is just a condensed line as a summary but it’s much longer, so if I click on it and copy the text to clipboard, I get the full transcription. However, my program saves the entire transcription, including details such as start time and end time of each word, and much more as a file locally as well (as shown in the source code). So, it’s convenient for me to open it and analyze it and reuse the transcription or information within however format I want.
The entire JSON content is shown later in the post. The output file name of the JSON file is in this format: ‘<audio_file.ext>.json’ and it’s placed in a subdirectory of current working directory called ‘\transcripts’. So, it’s really easy to locate and identify any of the JSON files just by looking at the name which audio file it corresponds to. Of course, you can change the code to save however you wish.
We can open it with the custom function: load_from_disk(TRANSCRIPTION_FILE) where TRANSCRIPTION_FILE is the input full path of the local audio file.
Because everything is saved in the saved JSON file, we don’t need to make another API call to the AI to extract details of the transcription. We simply need to parse the JSON file content. And the output I want in shell is just the transcripted text and the number of words transcribed. Here’s the output from the JSON file for Henry V:
Henry v, Act four, scene three.
What's he that wishes so? My cousin, West Mulland, nay, my fair cousin.
If we are marked to die, we are a now to do our country loss.
And if to live, the fewer men, the greater share of honor, God's will, I pray thee, wish not one man more.
By Job, I am not covetous for gold.
Nor care I who doth feed upon my cost.
It yearns me not if men my garments wear Such outward things dwell not in my desires.
But if it be a sin to covet honor, I am the most offending soul alive.
No.
Faith my cousins wish not a man from England.
God's peace.
I would not lose so great an honor as one man more me thinks would share from me for the best hope I have Oh, do not wish one more.
Rather, proclaim it Westmoland through my host that he which hath no stomach to this fight let him depart.
His passport shall be made and crowns for convoy put into his purse.
We would not die in that man's company that fears his fellowship to die with us.
This day is called the feast of Christian.
He that outlives this day and comes safe home, will stand a tiptoe when the day is named and rouse him at the name of Crispian.
He that shall live this day and see old age will yearly on the vigil feast his neighbors and say, tomorrow is Saint Crispian.
Then he will strip his sleeve and show his scars and say, these wounds I had on Crispin's day.
Old men forget, yet all shall be forgot, but he'll remember with advantages what feats he did that day.
Then shall our names, familiar in his mouth as household words Harry the king, Bedford, and Exeter Wuric and Tollbert, Salisbury, and Gloucester, be in their flowing cups freshly remembered.
This story shall the good man teach his son, and Crispin Crispian shall now go by from this day to the ending of the world, but we in it shall be remembered.
We, few, we, happy few, We band of brothers for he today that sheds his blood with me shall be my brother.
Be he near so vile this day shall gentle his condition.
And gentlemen in England, now a bed, shall think themselves accursed they were not here and hold their manhood's cheap whilst any speaks had fought with us upon St.
Crispin's day.
.
Count of words detected: 418
Wonderful…we’ve got everything we need!
As mentioned earlier, I’ll share the raw JSON output from Shakespeare’s play Henry V audio snippet that the program saved by the custom function: save_to_disk()…so the ouput is shown below. The size depends on the number of words detected in the audio.
And that’s all for now. Using Deepgram’s Whisper API we can transcribe large audio file quickly and very accurately and with clean, reasonably short code. With its support of tackling large audio streams and files and in many languages, you can see how useful this can be for training, video production, translating both on demand and real-time.
Is there any caveats? Well, first after you burn your tokens, you’ll have to get more tokens which must be bought. While not expensive per token, they can add up, so be aware of that while testing. They do give $200 credit to start with. As far as technical performance, it’s very very good. However, it does NOT transcribe songs, even when the lyrics are clear and drowned out by other instruments. In fact, it transcribed 2 seconds’ worth of lyrics and then simply stopped transcribing. I’m suspecting this has something to do with copyright more than technical limitation. As with any AI, it’s not going to be 100% correct all the time, but keeping in mind the speed and high accuracy, it’s suitable for transcribing most, reasonably clear audio files.
Be sure to read my next blog where I share the trick to enable Diarization and parse so you can neatly show a full transcript line by line by speakers from an audio with multiple speakers! This is powerful stuff!
For more of my posts about Text to Speech and vice versa, AI and Machine Learning, click here.
JSON output from Henry V audio clip:
{ "metadata": { "transaction_key": "deprecated", "request_id": "12873594-35e1-4869-927d-3ccb12868fc0", "sha256": "87fbaab6a35b4ce12b38d80f2564f3c083a1f752b1eaaf2f20efcdb685fdf18e", "created": "2023-05-11T20:42:39.714Z", "duration": 210.0245, "channels": 1, "models": [ "3312b52b-d08e-4072-bfff-124c410b770d" ], "model_info": { "3312b52b-d08e-4072-bfff-124c410b770d": { "name": "general-nova", "version": "2023-03-13.31000", "arch": "nova" } } }, "results": { "channels": [ { "alternatives": [ { "transcript": "Henry v, Act four, scene three. What's he that wishes so? My cousin, West Mulland, nay, my fair cousin. If we are marked to die, we are a now to do our country loss. And if to live, the fewer men, the greater share of honor, God's will, I pray thee, wish not one man more. By Job, I am not covetous for gold. Nor care I who doth feed upon my cost. It yearns me not if men my garments wear Such outward things dwell not in my desires. But if it be a sin to covet honor, I am the most offending soul alive. No. Faith my cousins wish not a man from England. God's peace. I would not lose so great an honor as one man more me thinks would share from me for the best hope I have Oh, do not wish one more. Rather, proclaim it Westmoland through my host that he which hath no stomach to this fight let him depart. His passport shall be made and crowns for convoy put into his purse. We would not die in that man's company that fears his fellowship to die with us. This day is called the feast of Christian. He that outlives this day and comes safe home, will stand a tiptoe when the day is named and rouse him at the name of Crispian. He that shall live this day and see old age will yearly on the vigil feast his neighbors and say, tomorrow is Saint Crispian. Then he will strip his sleeve and show his scars and say, these wounds I had on Crispin's day. Old men forget, yet all shall be forgot, but he'll remember with advantages what feats he did that day. Then shall our names, familiar in his mouth as household words Harry the king, Bedford, and Exeter Wuric and Tollbert, Salisbury, and Gloucester, be in their flowing cups freshly remembered. This story shall the good man teach his son, and Crispin Crispian shall now go by from this day to the ending of the world, but we in it shall be remembered. We, few, we, happy few, We band of brothers for he today that sheds his blood with me shall be my brother. Be he near so vile this day shall gentle his condition. And gentlemen in England, now a bed, shall think themselves accursed they were not here and hold their manhood's cheap whilst any speaks had fought with us upon St. Crispin's day.", "confidence": 0.99520326, "words": [ { "word": "henry", "start": 1.52, "end": 2.02, "confidence": 0.96218944, "punctuated_word": "Henry" }, { "word": "v", "start": 2.1599998, "end": 2.56, "confidence": 0.56833637, "punctuated_word": "v," }, { "word": "act", "start": 2.56, "end": 3.04, "confidence": 0.50992763, "punctuated_word": "Act" }, { "word": "four", "start": 3.04, "end": 3.52, "confidence": 0.7733153, "punctuated_word": "four," }, { "word": "scene", "start": 3.52, "end": 3.84, "confidence": 0.95788646, "punctuated_word": "scene" }, { "word": "three", "start": 3.84, "end": 4.34, "confidence": 0.98533463, "punctuated_word": "three." }, { "word": "what's", "start": 8.455, "end": 8.855, "confidence": 0.98578703, "punctuated_word": "What's" }, { "word": "he", "start": 8.855, "end": 9.174999, "confidence": 0.9859999, "punctuated_word": "he" }, { "word": "that", "start": 9.174999, "end": 9.415, "confidence": 0.9988774, "punctuated_word": "that" }, { "word": "wishes", "start": 9.415, "end": 9.915, "confidence": 0.99828595, "punctuated_word": "wishes" }, { "word": "so", "start": 10.055, "end": 10.555, "confidence": 0.9926888, "punctuated_word": "so?" }, { "word": "my", "start": 11.895, "end": 12.135, "confidence": 0.9979398, "punctuated_word": "My" }, { "word": "cousin", "start": 12.135, "end": 12.535, "confidence": 0.7955025, "punctuated_word": "cousin," }, { "word": "west", "start": 12.535, "end": 12.855, "confidence": 0.96941876, "punctuated_word": "West" }, { "word": "mulland", "start": 12.855, "end": 13.355, "confidence": 0.5239144, "punctuated_word": "Mulland," }, { "word": "nay", "start": 14.215, "end": 14.695, "confidence": 0.90969974, "punctuated_word": "nay," }, { "word": "my", "start": 14.695, "end": 14.934999, "confidence": 0.9994549, "punctuated_word": "my" }, { "word": "fair", "start": 14.934999, "end": 15.254999, "confidence": 0.9983183, "punctuated_word": "fair" }, { "word": "cousin", "start": 15.254999, "end": 15.754999, "confidence": 0.923208, "punctuated_word": "cousin." }, { "word": "if", "start": 16.26, "end": 16.42, "confidence": 0.93721247, "punctuated_word": "If" }, { "word": "we", "start": 16.42, "end": 16.66, "confidence": 0.99992436, "punctuated_word": "we" }, { "word": "are", "start": 16.66, "end": 16.9, "confidence": 0.99647576, "punctuated_word": "are" }, { "word": "marked", "start": 16.9, "end": 17.220001, "confidence": 0.5413588, "punctuated_word": "marked" }, { "word": "to", "start": 17.220001, "end": 17.460001, "confidence": 0.99839437, "punctuated_word": "to" }, { "word": "die", "start": 17.460001, "end": 17.960001, "confidence": 0.9828538, "punctuated_word": "die," }, { "word": "we", "start": 18.42, "end": 18.66, "confidence": 0.9996716, "punctuated_word": "we" }, { "word": "are", "start": 18.66, "end": 18.9, "confidence": 0.9995359, "punctuated_word": "are" }, { "word": "a", "start": 18.9, "end": 19.060001, "confidence": 0.88362914, "punctuated_word": "a" }, { "word": "now", "start": 19.060001, "end": 19.3, "confidence": 0.9965056, "punctuated_word": "now" }, { "word": "to", "start": 19.3, "end": 19.460001, "confidence": 0.9860091, "punctuated_word": "to" }, { "word": "do", "start": 19.460001, "end": 19.7, "confidence": 0.9996039, "punctuated_word": "do" }, { "word": "our", "start": 19.7, "end": 19.94, "confidence": 0.9995567, "punctuated_word": "our" }, { "word": "country", "start": 19.94, "end": 20.34, "confidence": 0.9992848, "punctuated_word": "country" }, { "word": "loss", "start": 20.34, "end": 20.84, "confidence": 0.9485009, "punctuated_word": "loss." }, { "word": "and", "start": 21.46, "end": 21.7, "confidence": 0.9997431, "punctuated_word": "And" }, { "word": "if", "start": 21.7, "end": 22.02, "confidence": 0.99535507, "punctuated_word": "if" }, { "word": "to", "start": 22.02, "end": 22.18, "confidence": 0.99573004, "punctuated_word": "to" }, { "word": "live", "start": 22.18, "end": 22.68, "confidence": 0.9741461, "punctuated_word": "live," }, { "word": "the", "start": 23.060001, "end": 23.3, "confidence": 0.99978036, "punctuated_word": "the" }, { "word": "fewer", "start": 23.3, "end": 23.7, "confidence": 0.9998226, "punctuated_word": "fewer" }, { "word": "men", "start": 23.7, "end": 24.2, "confidence": 0.9770311, "punctuated_word": "men," }, { "word": "the", "start": 24.34, "end": 24.58, "confidence": 0.99970484, "punctuated_word": "the" }, { "word": "greater", "start": 24.58, "end": 24.98, "confidence": 0.9916304, "punctuated_word": "greater" }, { "word": "share", "start": 24.98, "end": 25.3, "confidence": 0.9987669, "punctuated_word": "share" }, { "word": "of", "start": 25.3, "end": 25.46, "confidence": 0.99972004, "punctuated_word": "of" }, { "word": "honor", "start": 25.46, "end": 25.96, "confidence": 0.7797115, "punctuated_word": "honor," }, { "word": "god's", "start": 27.285, "end": 27.765, "confidence": 0.95483005, "punctuated_word": "God's" }, { "word": "will", "start": 27.765, "end": 28.164999, "confidence": 0.84442794, "punctuated_word": "will," }, { "word": "i", "start": 28.164999, "end": 28.324999, "confidence": 0.9993973, "punctuated_word": "I" }, { "word": "pray", "start": 28.324999, "end": 28.724998, "confidence": 0.9991749, "punctuated_word": "pray" }, { "word": "thee", "start": 28.724998, "end": 29.224998, "confidence": 0.77853966, "punctuated_word": "thee," }, { "word": "wish", "start": 29.365, "end": 29.685, "confidence": 0.9078204, "punctuated_word": "wish" }, { "word": "not", "start": 29.685, "end": 30.005, "confidence": 0.998898, "punctuated_word": "not" }, { "word": "one", "start": 30.005, "end": 30.404999, "confidence": 0.9997579, "punctuated_word": "one" }, { "word": "man", "start": 30.404999, "end": 30.804998, "confidence": 0.9998975, "punctuated_word": "man" }, { "word": "more", "start": 30.804998, "end": 31.304998, "confidence": 0.99912035, "punctuated_word": "more." }, { "word": "by", "start": 32.485, "end": 32.805, "confidence": 0.89159536, "punctuated_word": "By" }, { "word": "job", "start": 32.805, "end": 33.305, "confidence": 0.66981435, "punctuated_word": "Job," }, { "word": "i", "start": 33.684998, "end": 33.925, "confidence": 0.9989077, "punctuated_word": "I" }, { "word": "am", "start": 33.925, "end": 34.165, "confidence": 0.99844015, "punctuated_word": "am" }, { "word": "not", "start": 34.165, "end": 34.405, "confidence": 0.9993288, "punctuated_word": "not" }, { "word": "covetous", "start": 34.405, "end": 34.885, "confidence": 0.9984069, "punctuated_word": "covetous" }, { "word": "for", "start": 34.885, "end": 35.204998, "confidence": 0.9944684, "punctuated_word": "for" }, { "word": "gold", "start": 35.204998, "end": 35.704998, "confidence": 0.7791867, "punctuated_word": "gold." }, { "word": "nor", "start": 36.719997, "end": 37.039997, "confidence": 0.9990325, "punctuated_word": "Nor" }, { "word": "care", "start": 37.039997, "end": 37.359997, "confidence": 0.882201, "punctuated_word": "care" }, { "word": "i", "start": 37.359997, "end": 37.6, "confidence": 0.93366456, "punctuated_word": "I" }, { "word": "who", "start": 37.6, "end": 37.839996, "confidence": 0.24809727, "punctuated_word": "who" }, { "word": "doth", "start": 37.839996, "end": 38.16, "confidence": 0.94633347, "punctuated_word": "doth" }, { "word": "feed", "start": 38.16, "end": 38.399998, "confidence": 0.99103355, "punctuated_word": "feed" }, { "word": "upon", "start": 38.399998, "end": 38.879997, "confidence": 0.99962604, "punctuated_word": "upon" }, { "word": "my", "start": 38.879997, "end": 39.199997, "confidence": 0.9995432, "punctuated_word": "my" }, { "word": "cost", "start": 39.199997, "end": 39.699997, "confidence": 0.90575993, "punctuated_word": "cost." }, { "word": "it", "start": 40.719997, "end": 41.039997, "confidence": 0.9990508, "punctuated_word": "It" }, { "word": "yearns", "start": 41.039997, "end": 41.44, "confidence": 0.995667, "punctuated_word": "yearns" }, { "word": "me", "start": 41.44, "end": 41.679996, "confidence": 0.9961586, "punctuated_word": "me" }, { "word": "not", "start": 41.679996, "end": 42.0, "confidence": 0.9662958, "punctuated_word": "not" }, { "word": "if", "start": 42.0, "end": 42.159996, "confidence": 0.98386747, "punctuated_word": "if" }, { "word": "men", "start": 42.159996, "end": 42.64, "confidence": 0.9964164, "punctuated_word": "men" }, { "word": "my", "start": 42.64, "end": 42.96, "confidence": 0.2988272, "punctuated_word": "my" }, { "word": "garments", "start": 42.96, "end": 43.44, "confidence": 0.9996823, "punctuated_word": "garments" }, { "word": "wear", "start": 43.44, "end": 43.94, "confidence": 0.99939823, "punctuated_word": "wear" }, { "word": "such", "start": 44.185, "end": 44.685, "confidence": 0.9204659, "punctuated_word": "Such" }, { "word": "outward", "start": 44.905, "end": 45.385, "confidence": 0.9974694, "punctuated_word": "outward" }, { "word": "things", "start": 45.385, "end": 45.864998, "confidence": 0.9998352, "punctuated_word": "things" }, { "word": "dwell", "start": 45.864998, "end": 46.184998, "confidence": 0.99961144, "punctuated_word": "dwell" }, { "word": "not", "start": 46.184998, "end": 46.425, "confidence": 0.99551237, "punctuated_word": "not" }, { "word": "in", "start": 46.425, "end": 46.665, "confidence": 0.9995622, "punctuated_word": "in" }, { "word": "my", "start": 46.665, "end": 46.905, "confidence": 0.99955755, "punctuated_word": "my" }, { "word": "desires", "start": 46.905, "end": 47.405, "confidence": 0.90962505, "punctuated_word": "desires." }, { "word": "but", "start": 49.145, "end": 49.305, "confidence": 0.9998189, "punctuated_word": "But" }, { "word": "if", "start": 49.305, "end": 49.545, "confidence": 0.99291307, "punctuated_word": "if" }, { "word": "it", "start": 49.545, "end": 49.704998, "confidence": 0.9978089, "punctuated_word": "it" }, { "word": "be", "start": 49.704998, "end": 50.105, "confidence": 0.99777186, "punctuated_word": "be" }, { "word": "a", "start": 50.105, "end": 50.265, "confidence": 0.9844961, "punctuated_word": "a" }, { "word": "sin", "start": 50.265, "end": 50.665, "confidence": 0.999971, "punctuated_word": "sin" }, { "word": "to", "start": 50.665, "end": 50.905, "confidence": 0.9966782, "punctuated_word": "to" }, { "word": "covet", "start": 50.905, "end": 51.225, "confidence": 0.98754376, "punctuated_word": "covet" }, { "word": "honor", "start": 51.225, "end": 51.725, "confidence": 0.8819363, "punctuated_word": "honor," }, { "word": "i", "start": 52.629997, "end": 52.87, "confidence": 0.9988996, "punctuated_word": "I" }, { "word": "am", "start": 52.87, "end": 53.269997, "confidence": 0.99981886, "punctuated_word": "am" }, { "word": "the", "start": 53.269997, "end": 53.51, "confidence": 0.9990333, "punctuated_word": "the" }, { "word": "most", "start": 53.51, "end": 53.829998, "confidence": 0.9999306, "punctuated_word": "most" }, { "word": "offending", "start": 53.829998, "end": 54.329998, "confidence": 0.78376627, "punctuated_word": "offending" }, { "word": "soul", "start": 54.469997, "end": 54.87, "confidence": 0.99961835, "punctuated_word": "soul" }, { "word": "alive", "start": 54.87, "end": 55.37, "confidence": 0.998931, "punctuated_word": "alive." }, { "word": "no", "start": 56.629997, "end": 57.129997, "confidence": 0.9500861, "punctuated_word": "No." }, { "word": "faith", "start": 57.35, "end": 57.829998, "confidence": 0.9632612, "punctuated_word": "Faith" }, { "word": "my", "start": 57.829998, "end": 57.989998, "confidence": 0.8454842, "punctuated_word": "my" }, { "word": "cousins", "start": 57.989998, "end": 58.489998, "confidence": 0.2644735, "punctuated_word": "cousins" }, { "word": "wish", "start": 58.629997, "end": 59.03, "confidence": 0.956428, "punctuated_word": "wish" }, { "word": "not", "start": 59.03, "end": 59.269997, "confidence": 0.99319845, "punctuated_word": "not" }, { "word": "a", "start": 59.269997, "end": 59.35, "confidence": 0.9995078, "punctuated_word": "a" }, { "word": "man", "start": 59.35, "end": 59.67, "confidence": 0.9998369, "punctuated_word": "man" }, { "word": "from", "start": 59.67, "end": 59.909996, "confidence": 0.99992675, "punctuated_word": "from" }, { "word": "england", "start": 59.909996, "end": 60.409996, "confidence": 0.9935759, "punctuated_word": "England." }, { "word": "god's", "start": 61.635, "end": 62.135, "confidence": 0.9794744, "punctuated_word": "God's" }, { "word": "peace", "start": 62.195, "end": 62.695, "confidence": 0.9449404, "punctuated_word": "peace." }, { "word": "i", "start": 63.315, "end": 63.475, "confidence": 0.99978566, "punctuated_word": "I" }, { "word": "would", "start": 63.475, "end": 63.715, "confidence": 0.9992223, "punctuated_word": "would" }, { "word": "not", "start": 63.715, "end": 63.954998, "confidence": 0.9999158, "punctuated_word": "not" }, { "word": "lose", "start": 63.954998, "end": 64.354996, "confidence": 0.9904186, "punctuated_word": "lose" }, { "word": "so", "start": 64.354996, "end": 64.674995, "confidence": 0.9430788, "punctuated_word": "so" }, { "word": "great", "start": 64.674995, "end": 64.915, "confidence": 0.99869657, "punctuated_word": "great" }, { "word": "an", "start": 64.915, "end": 65.155, "confidence": 0.7014621, "punctuated_word": "an" }, { "word": "honor", "start": 65.155, "end": 65.555, "confidence": 0.9725552, "punctuated_word": "honor" }, { "word": "as", "start": 65.555, "end": 65.795, "confidence": 0.9856763, "punctuated_word": "as" }, { "word": "one", "start": 65.795, "end": 66.115, "confidence": 0.99771667, "punctuated_word": "one" }, { "word": "man", "start": 66.115, "end": 66.515, "confidence": 0.99996996, "punctuated_word": "man" }, { "word": "more", "start": 66.515, "end": 66.994995, "confidence": 0.9700458, "punctuated_word": "more" }, { "word": "me", "start": 66.994995, "end": 67.155, "confidence": 0.86866224, "punctuated_word": "me" }, { "word": "thinks", "start": 67.155, "end": 67.475, "confidence": 0.9692235, "punctuated_word": "thinks" }, { "word": "would", "start": 67.475, "end": 67.795, "confidence": 0.9902704, "punctuated_word": "would" }, { "word": "share", "start": 67.795, "end": 68.115, "confidence": 0.99901855, "punctuated_word": "share" }, { "word": "from", "start": 68.115, "end": 68.435, "confidence": 0.9979809, "punctuated_word": "from" }, { "word": "me", "start": 68.435, "end": 68.935, "confidence": 0.9995375, "punctuated_word": "me" }, { "word": "for", "start": 69.075, "end": 69.235, "confidence": 0.9529783, "punctuated_word": "for" }, { "word": "the", "start": 69.235, "end": 69.475, "confidence": 0.99983263, "punctuated_word": "the" }, { "word": "best", "start": 69.475, "end": 69.795, "confidence": 0.99997556, "punctuated_word": "best" }, { "word": "hope", "start": 69.795, "end": 70.115, "confidence": 0.99988294, "punctuated_word": "hope" }, { "word": "i", "start": 70.115, "end": 70.275, "confidence": 0.9980162, "punctuated_word": "I" }, { "word": "have", "start": 70.275, "end": 70.775, "confidence": 0.99908394, "punctuated_word": "have" }, { "word": "oh", "start": 71.57, "end": 71.81, "confidence": 0.9096314, "punctuated_word": "Oh," }, { "word": "do", "start": 71.81, "end": 72.049995, "confidence": 0.999108, "punctuated_word": "do" }, { "word": "not", "start": 72.049995, "end": 72.369995, "confidence": 0.9997677, "punctuated_word": "not" }, { "word": "wish", "start": 72.369995, "end": 72.85, "confidence": 0.9993069, "punctuated_word": "wish" }, { "word": "one", "start": 72.85, "end": 73.17, "confidence": 0.99778694, "punctuated_word": "one" }, { "word": "more", "start": 73.17, "end": 73.67, "confidence": 0.99590397, "punctuated_word": "more." }, { "word": "rather", "start": 75.09, "end": 75.59, "confidence": 0.8747022, "punctuated_word": "Rather," }, { "word": "proclaim", "start": 76.049995, "end": 76.549995, "confidence": 0.99039364, "punctuated_word": "proclaim" }, { "word": "it", "start": 76.60999, "end": 76.85, "confidence": 0.9813166, "punctuated_word": "it" }, { "word": "westmoland", "start": 76.85, "end": 77.35, "confidence": 0.58393186, "punctuated_word": "Westmoland" }, { "word": "through", "start": 77.81, "end": 78.049995, "confidence": 0.8862532, "punctuated_word": "through" }, { "word": "my", "start": 78.049995, "end": 78.28999, "confidence": 0.9964221, "punctuated_word": "my" }, { "word": "host", "start": 78.28999, "end": 78.78999, "confidence": 0.997985, "punctuated_word": "host" }, { "word": "that", "start": 79.135, "end": 79.375, "confidence": 0.9744273, "punctuated_word": "that" }, { "word": "he", "start": 79.375, "end": 79.695, "confidence": 0.9899733, "punctuated_word": "he" }, { "word": "which", "start": 79.695, "end": 79.935, "confidence": 0.7736553, "punctuated_word": "which" }, { "word": "hath", "start": 79.935, "end": 80.255, "confidence": 0.9991886, "punctuated_word": "hath" }, { "word": "no", "start": 80.255, "end": 80.575, "confidence": 0.999707, "punctuated_word": "no" }, { "word": "stomach", "start": 80.575, "end": 80.975, "confidence": 0.999993, "punctuated_word": "stomach" }, { "word": "to", "start": 80.975, "end": 81.134995, "confidence": 0.99945766, "punctuated_word": "to" }, { "word": "this", "start": 81.134995, "end": 81.534996, "confidence": 0.9992482, "punctuated_word": "this" }, { "word": "fight", "start": 81.534996, "end": 82.015, "confidence": 0.99952626, "punctuated_word": "fight" }, { "word": "let", "start": 82.015, "end": 82.494995, "confidence": 0.9331194, "punctuated_word": "let" }, { "word": "him", "start": 82.494995, "end": 82.735, "confidence": 0.9862348, "punctuated_word": "him" }, { "word": "depart", "start": 82.735, "end": 83.235, "confidence": 0.82697034, "punctuated_word": "depart." }, { "word": "his", "start": 84.174995, "end": 84.494995, "confidence": 0.99970526, "punctuated_word": "His" }, { "word": "passport", "start": 84.494995, "end": 84.994995, "confidence": 0.9986884, "punctuated_word": "passport" }, { "word": "shall", "start": 85.215, "end": 85.455, "confidence": 0.9999285, "punctuated_word": "shall" }, { "word": "be", "start": 85.455, "end": 85.615, "confidence": 0.9999572, "punctuated_word": "be" }, { "word": "made", "start": 85.615, "end": 86.08, "confidence": 0.99992055, "punctuated_word": "made" }, { "word": "and", "start": 86.16, "end": 86.48, "confidence": 0.9906509, "punctuated_word": "and" }, { "word": "crowns", "start": 86.48, "end": 86.880005, "confidence": 0.9884415, "punctuated_word": "crowns" }, { "word": "for", "start": 86.880005, "end": 87.200005, "confidence": 0.99794286, "punctuated_word": "for" }, { "word": "convoy", "start": 87.200005, "end": 87.700005, "confidence": 0.9518147, "punctuated_word": "convoy" }, { "word": "put", "start": 87.840004, "end": 88.0, "confidence": 0.99894625, "punctuated_word": "put" }, { "word": "into", "start": 88.0, "end": 88.32, "confidence": 0.9890948, "punctuated_word": "into" }, { "word": "his", "start": 88.32, "end": 88.64, "confidence": 0.9989551, "punctuated_word": "his" }, { "word": "purse", "start": 88.64, "end": 89.14, "confidence": 0.8975957, "punctuated_word": "purse." }, { "word": "we", "start": 89.92, "end": 90.240005, "confidence": 0.9997797, "punctuated_word": "We" }, { "word": "would", "start": 90.240005, "end": 90.560005, "confidence": 0.99939644, "punctuated_word": "would" }, { "word": "not", "start": 90.560005, "end": 90.96, "confidence": 0.9998805, "punctuated_word": "not" }, { "word": "die", "start": 90.96, "end": 91.46, "confidence": 0.9998822, "punctuated_word": "die" }, { "word": "in", "start": 91.520004, "end": 91.76, "confidence": 0.9959991, "punctuated_word": "in" }, { "word": "that", "start": 91.76, "end": 92.0, "confidence": 0.99084854, "punctuated_word": "that" }, { "word": "man's", "start": 92.0, "end": 92.4, "confidence": 0.99907404, "punctuated_word": "man's" }, { "word": "company", "start": 92.4, "end": 92.9, "confidence": 0.9993761, "punctuated_word": "company" }, { "word": "that", "start": 93.335, "end": 93.655, "confidence": 0.99681884, "punctuated_word": "that" }, { "word": "fears", "start": 93.655, "end": 94.135, "confidence": 0.9990188, "punctuated_word": "fears" }, { "word": "his", "start": 94.135, "end": 94.455, "confidence": 0.9984806, "punctuated_word": "his" }, { "word": "fellowship", "start": 94.455, "end": 94.955, "confidence": 0.9844306, "punctuated_word": "fellowship" }, { "word": "to", "start": 95.175, "end": 95.335, "confidence": 0.99926335, "punctuated_word": "to" }, { "word": "die", "start": 95.335, "end": 95.575005, "confidence": 0.9996822, "punctuated_word": "die" }, { "word": "with", "start": 95.575005, "end": 95.815, "confidence": 0.99978167, "punctuated_word": "with" }, { "word": "us", "start": 95.815, "end": 96.315, "confidence": 0.9944657, "punctuated_word": "us." }, { "word": "this", "start": 98.215004, "end": 98.455, "confidence": 0.9997415, "punctuated_word": "This" }, { "word": "day", "start": 98.455, "end": 98.955, "confidence": 0.9983195, "punctuated_word": "day" }, { "word": "is", "start": 99.255005, "end": 99.495, "confidence": 0.9740184, "punctuated_word": "is" }, { "word": "called", "start": 99.495, "end": 99.975, "confidence": 0.999946, "punctuated_word": "called" }, { "word": "the", "start": 99.975, "end": 100.135, "confidence": 0.80553764, "punctuated_word": "the" }, { "word": "feast", "start": 100.135, "end": 100.535, "confidence": 0.9073357, "punctuated_word": "feast" }, { "word": "of", "start": 100.535, "end": 100.775, "confidence": 0.9996405, "punctuated_word": "of" }, { "word": "christian", "start": 100.775, "end": 101.275, "confidence": 0.6131301, "punctuated_word": "Christian." }, { "word": "he", "start": 102.37, "end": 102.69, "confidence": 0.97905755, "punctuated_word": "He" }, { "word": "that", "start": 102.69, "end": 102.93, "confidence": 0.85638493, "punctuated_word": "that" }, { "word": "outlives", "start": 102.93, "end": 103.43, "confidence": 0.7548825, "punctuated_word": "outlives" }, { "word": "this", "start": 103.57, "end": 103.89, "confidence": 0.99668497, "punctuated_word": "this" }, { "word": "day", "start": 103.89, "end": 104.21, "confidence": 0.99982506, "punctuated_word": "day" }, { "word": "and", "start": 104.21, "end": 104.53, "confidence": 0.93581957, "punctuated_word": "and" }, { "word": "comes", "start": 104.53, "end": 105.01, "confidence": 0.72343624, "punctuated_word": "comes" }, { "word": "safe", "start": 105.01, "end": 105.41, "confidence": 0.99826, "punctuated_word": "safe" }, { "word": "home", "start": 105.41, "end": 105.91, "confidence": 0.7051857, "punctuated_word": "home," }, { "word": "will", "start": 106.770004, "end": 107.090004, "confidence": 0.99499106, "punctuated_word": "will" }, { "word": "stand", "start": 107.090004, "end": 107.49, "confidence": 0.99834955, "punctuated_word": "stand" }, { "word": "a", "start": 107.49, "end": 107.73, "confidence": 0.99924815, "punctuated_word": "a" }, { "word": "tiptoe", "start": 107.73, "end": 108.21, "confidence": 0.9682173, "punctuated_word": "tiptoe" }, { "word": "when", "start": 108.21, "end": 108.450005, "confidence": 0.63993114, "punctuated_word": "when" }, { "word": "the", "start": 108.450005, "end": 108.61, "confidence": 0.9987908, "punctuated_word": "the" }, { "word": "day", "start": 108.61, "end": 108.85, "confidence": 0.99117076, "punctuated_word": "day" }, { "word": "is", "start": 108.85, "end": 109.01, "confidence": 0.766521, "punctuated_word": "is" }, { "word": "named", "start": 109.01, "end": 109.51, "confidence": 0.9992341, "punctuated_word": "named" }, { "word": "and", "start": 109.73, "end": 110.05, "confidence": 0.85638034, "punctuated_word": "and" }, { "word": "rouse", "start": 110.05, "end": 110.45, "confidence": 0.9945417, "punctuated_word": "rouse" }, { "word": "him", "start": 110.45, "end": 110.85, "confidence": 0.99879307, "punctuated_word": "him" }, { "word": "at", "start": 110.85, "end": 111.01, "confidence": 0.9970567, "punctuated_word": "at" }, { "word": "the", "start": 111.01, "end": 111.17, "confidence": 0.99962133, "punctuated_word": "the" }, { "word": "name", "start": 111.17, "end": 111.49, "confidence": 0.9996284, "punctuated_word": "name" }, { "word": "of", "start": 111.49, "end": 111.955, "confidence": 0.999723, "punctuated_word": "of" }, { "word": "crispian", "start": 111.955, "end": 112.455, "confidence": 0.9318105, "punctuated_word": "Crispian." }, { "word": "he", "start": 113.875, "end": 114.195, "confidence": 0.99649346, "punctuated_word": "He" }, { "word": "that", "start": 114.195, "end": 114.435005, "confidence": 0.9493479, "punctuated_word": "that" }, { "word": "shall", "start": 114.435005, "end": 114.755005, "confidence": 0.9915558, "punctuated_word": "shall" }, { "word": "live", "start": 114.755005, "end": 115.075005, "confidence": 0.9997493, "punctuated_word": "live" }, { "word": "this", "start": 115.075005, "end": 115.315, "confidence": 0.9955101, "punctuated_word": "this" }, { "word": "day", "start": 115.315, "end": 115.635, "confidence": 0.99928313, "punctuated_word": "day" }, { "word": "and", "start": 115.635, "end": 115.955, "confidence": 0.94467425, "punctuated_word": "and" }, { "word": "see", "start": 115.955, "end": 116.455, "confidence": 0.99305147, "punctuated_word": "see" }, { "word": "old", "start": 116.515, "end": 116.915, "confidence": 0.99805206, "punctuated_word": "old" }, { "word": "age", "start": 116.915, "end": 117.415, "confidence": 0.9999678, "punctuated_word": "age" }, { "word": "will", "start": 117.795, "end": 118.295, "confidence": 0.8150258, "punctuated_word": "will" }, { "word": "yearly", "start": 118.595, "end": 118.995, "confidence": 0.9330296, "punctuated_word": "yearly" }, { "word": "on", "start": 118.995, "end": 119.155, "confidence": 0.9894854, "punctuated_word": "on" }, { "word": "the", "start": 119.155, "end": 119.315, "confidence": 0.9905689, "punctuated_word": "the" }, { "word": "vigil", "start": 119.315, "end": 119.815, "confidence": 0.9999498, "punctuated_word": "vigil" }, { "word": "feast", "start": 120.380005, "end": 120.700005, "confidence": 0.9870382, "punctuated_word": "feast" }, { "word": "his", "start": 120.700005, "end": 120.94, "confidence": 0.9995976, "punctuated_word": "his" }, { "word": "neighbors", "start": 120.94, "end": 121.44, "confidence": 0.81959116, "punctuated_word": "neighbors" }, { "word": "and", "start": 121.58, "end": 121.9, "confidence": 0.907833, "punctuated_word": "and" }, { "word": "say", "start": 121.9, "end": 122.4, "confidence": 0.8769181, "punctuated_word": "say," }, { "word": "tomorrow", "start": 122.78001, "end": 123.28001, "confidence": 0.6347646, "punctuated_word": "tomorrow" }, { "word": "is", "start": 123.98, "end": 124.14001, "confidence": 0.9971238, "punctuated_word": "is" }, { "word": "saint", "start": 124.14001, "end": 124.54001, "confidence": 0.71747386, "punctuated_word": "Saint" }, { "word": "crispian", "start": 124.54001, "end": 125.04001, "confidence": 0.72665167, "punctuated_word": "Crispian." }, { "word": "then", "start": 126.3, "end": 126.62, "confidence": 0.99901634, "punctuated_word": "Then" }, { "word": "he", "start": 126.62, "end": 126.78001, "confidence": 0.85995895, "punctuated_word": "he" }, { "word": "will", "start": 126.78001, "end": 127.100006, "confidence": 0.99983233, "punctuated_word": "will" }, { "word": "strip", "start": 127.100006, "end": 127.50001, "confidence": 0.9986519, "punctuated_word": "strip" }, { "word": "his", "start": 127.50001, "end": 127.66, "confidence": 0.9998994, "punctuated_word": "his" }, { "word": "sleeve", "start": 127.66, "end": 128.16, "confidence": 0.9990915, "punctuated_word": "sleeve" }, { "word": "and", "start": 128.35501, "end": 128.67502, "confidence": 0.9989146, "punctuated_word": "and" }, { "word": "show", "start": 128.67502, "end": 128.91501, "confidence": 0.99969876, "punctuated_word": "show" }, { "word": "his", "start": 128.91501, "end": 129.23502, "confidence": 0.9994777, "punctuated_word": "his" }, { "word": "scars", "start": 129.23502, "end": 129.73502, "confidence": 0.9997041, "punctuated_word": "scars" }, { "word": "and", "start": 129.79501, "end": 130.115, "confidence": 0.98695517, "punctuated_word": "and" }, { "word": "say", "start": 130.115, "end": 130.615, "confidence": 0.79344225, "punctuated_word": "say," }, { "word": "these", "start": 130.91501, "end": 131.395, "confidence": 0.9948951, "punctuated_word": "these" }, { "word": "wounds", "start": 131.395, "end": 131.895, "confidence": 0.99995, "punctuated_word": "wounds" }, { "word": "i", "start": 131.95502, "end": 132.115, "confidence": 0.9336619, "punctuated_word": "I" }, { "word": "had", "start": 132.115, "end": 132.43501, "confidence": 0.9997628, "punctuated_word": "had" }, { "word": "on", "start": 132.43501, "end": 132.59502, "confidence": 0.99641025, "punctuated_word": "on" }, { "word": "crispin's", "start": 132.59502, "end": 133.09502, "confidence": 0.8210776, "punctuated_word": "Crispin's" }, { "word": "day", "start": 133.395, "end": 133.895, "confidence": 0.75416243, "punctuated_word": "day." }, { "word": "old", "start": 135.64001, "end": 136.12001, "confidence": 0.55249405, "punctuated_word": "Old" }, { "word": "men", "start": 136.12001, "end": 136.52, "confidence": 0.99720925, "punctuated_word": "men" }, { "word": "forget", "start": 136.52, "end": 137.02, "confidence": 0.7884098, "punctuated_word": "forget," }, { "word": "yet", "start": 137.64001, "end": 137.96, "confidence": 0.9873, "punctuated_word": "yet" }, { "word": "all", "start": 137.96, "end": 138.28001, "confidence": 0.99813074, "punctuated_word": "all" }, { "word": "shall", "start": 138.28001, "end": 138.52, "confidence": 0.999881, "punctuated_word": "shall" }, { "word": "be", "start": 138.52, "end": 138.76001, "confidence": 0.99943864, "punctuated_word": "be" }, { "word": "forgot", "start": 138.76001, "end": 139.26001, "confidence": 0.8307397, "punctuated_word": "forgot," }, { "word": "but", "start": 139.64001, "end": 139.96, "confidence": 0.99961275, "punctuated_word": "but" }, { "word": "he'll", "start": 139.96, "end": 140.46, "confidence": 0.98634493, "punctuated_word": "he'll" }, { "word": "remember", "start": 140.52, "end": 141.02, "confidence": 0.9996306, "punctuated_word": "remember" }, { "word": "with", "start": 141.24, "end": 141.56001, "confidence": 0.9391911, "punctuated_word": "with" }, { "word": "advantages", "start": 141.56001, "end": 142.06001, "confidence": 0.9970492, "punctuated_word": "advantages" }, { "word": "what", "start": 142.44, "end": 142.84001, "confidence": 0.9726184, "punctuated_word": "what" }, { "word": "feats", "start": 142.84001, "end": 143.32, "confidence": 0.94785744, "punctuated_word": "feats" }, { "word": "he", "start": 143.32, "end": 143.48001, "confidence": 0.9972578, "punctuated_word": "he" }, { "word": "did", "start": 143.48001, "end": 143.72, "confidence": 0.99995697, "punctuated_word": "did" }, { "word": "that", "start": 143.72, "end": 143.96, "confidence": 0.99920803, "punctuated_word": "that" }, { "word": "day", "start": 143.96, "end": 144.46, "confidence": 0.96757996, "punctuated_word": "day." }, { "word": "then", "start": 145.395, "end": 145.71501, "confidence": 0.84669656, "punctuated_word": "Then" }, { "word": "shall", "start": 145.71501, "end": 146.035, "confidence": 0.6403305, "punctuated_word": "shall" }, { "word": "our", "start": 146.035, "end": 146.27501, "confidence": 0.9898705, "punctuated_word": "our" }, { "word": "names", "start": 146.27501, "end": 146.77501, "confidence": 0.80175954, "punctuated_word": "names," }, { "word": "familiar", "start": 146.99501, "end": 147.49501, "confidence": 0.9922107, "punctuated_word": "familiar" }, { "word": "in", "start": 147.795, "end": 147.955, "confidence": 0.9958914, "punctuated_word": "in" }, { "word": "his", "start": 147.955, "end": 148.27501, "confidence": 0.9893216, "punctuated_word": "his" }, { "word": "mouth", "start": 148.27501, "end": 148.675, "confidence": 0.99996316, "punctuated_word": "mouth" }, { "word": "as", "start": 148.675, "end": 148.99501, "confidence": 0.9367891, "punctuated_word": "as" }, { "word": "household", "start": 148.99501, "end": 149.49501, "confidence": 0.99973696, "punctuated_word": "household" }, { "word": "words", "start": 149.55501, "end": 150.05501, "confidence": 0.9999631, "punctuated_word": "words" }, { "word": "harry", "start": 150.35501, "end": 150.835, "confidence": 0.5573261, "punctuated_word": "Harry" }, { "word": "the", "start": 150.835, "end": 150.99501, "confidence": 0.83034796, "punctuated_word": "the" }, { "word": "king", "start": 150.99501, "end": 151.49501, "confidence": 0.941653, "punctuated_word": "king," }, { "word": "bedford", "start": 151.795, "end": 152.295, "confidence": 0.7165118, "punctuated_word": "Bedford," }, { "word": "and", "start": 152.435, "end": 152.755, "confidence": 0.9996982, "punctuated_word": "and" }, { "word": "exeter", "start": 152.755, "end": 153.255, "confidence": 0.96837336, "punctuated_word": "Exeter" }, { "word": "wuric", "start": 154.01001, "end": 154.51001, "confidence": 0.47237214, "punctuated_word": "Wuric" }, { "word": "and", "start": 154.57, "end": 154.81, "confidence": 0.9133667, "punctuated_word": "and" }, { "word": "tollbert", "start": 154.81, "end": 155.31, "confidence": 0.70124745, "punctuated_word": "Tollbert," }, { "word": "salisbury", "start": 156.01001, "end": 156.51001, "confidence": 0.87779164, "punctuated_word": "Salisbury," }, { "word": "and", "start": 156.97, "end": 157.29001, "confidence": 0.9997389, "punctuated_word": "and" }, { "word": "gloucester", "start": 157.29001, "end": 157.79001, "confidence": 0.7606266, "punctuated_word": "Gloucester," }, { "word": "be", "start": 158.57, "end": 158.89, "confidence": 0.9991811, "punctuated_word": "be" }, { "word": "in", "start": 158.89, "end": 159.13, "confidence": 0.9994463, "punctuated_word": "in" }, { "word": "their", "start": 159.13, "end": 159.37, "confidence": 0.9650502, "punctuated_word": "their" }, { "word": "flowing", "start": 159.37, "end": 159.87, "confidence": 0.9997889, "punctuated_word": "flowing" }, { "word": "cups", "start": 159.93001, "end": 160.33, "confidence": 0.99903035, "punctuated_word": "cups" }, { "word": "freshly", "start": 160.33, "end": 160.83, "confidence": 0.99615073, "punctuated_word": "freshly" }, { "word": "remembered", "start": 160.89, "end": 161.39, "confidence": 0.9934987, "punctuated_word": "remembered." }, { "word": "this", "start": 163.295, "end": 163.535, "confidence": 0.98306996, "punctuated_word": "This" }, { "word": "story", "start": 163.535, "end": 164.035, "confidence": 0.9997059, "punctuated_word": "story" }, { "word": "shall", "start": 164.33499, "end": 164.575, "confidence": 0.8096454, "punctuated_word": "shall" }, { "word": "the", "start": 164.575, "end": 164.815, "confidence": 0.9899832, "punctuated_word": "the" }, { "word": "good", "start": 164.815, "end": 165.135, "confidence": 0.99548686, "punctuated_word": "good" }, { "word": "man", "start": 165.135, "end": 165.535, "confidence": 0.9947837, "punctuated_word": "man" }, { "word": "teach", "start": 165.535, "end": 165.935, "confidence": 0.99990857, "punctuated_word": "teach" }, { "word": "his", "start": 165.935, "end": 166.175, "confidence": 0.99410325, "punctuated_word": "his" }, { "word": "son", "start": 166.175, "end": 166.675, "confidence": 0.6977547, "punctuated_word": "son," }, { "word": "and", "start": 167.295, "end": 167.615, "confidence": 0.9987826, "punctuated_word": "and" }, { "word": "crispin", "start": 167.615, "end": 168.115, "confidence": 0.6866111, "punctuated_word": "Crispin" }, { "word": "crispian", "start": 168.33499, "end": 168.83499, "confidence": 0.7096072, "punctuated_word": "Crispian" }, { "word": "shall", "start": 168.975, "end": 169.215, "confidence": 0.99534935, "punctuated_word": "shall" }, { "word": "now", "start": 169.215, "end": 169.535, "confidence": 0.28304344, "punctuated_word": "now" }, { "word": "go", "start": 169.535, "end": 169.775, "confidence": 0.9990535, "punctuated_word": "go" }, { "word": "by", "start": 169.775, "end": 170.255, "confidence": 0.99673605, "punctuated_word": "by" }, { "word": "from", "start": 170.255, "end": 170.495, "confidence": 0.98766476, "punctuated_word": "from" }, { "word": "this", "start": 170.495, "end": 170.815, "confidence": 0.9994164, "punctuated_word": "this" }, { "word": "day", "start": 170.815, "end": 171.23, "confidence": 0.99909556, "punctuated_word": "day" }, { "word": "to", "start": 171.31, "end": 171.47, "confidence": 0.9978905, "punctuated_word": "to" }, { "word": "the", "start": 171.47, "end": 171.62999, "confidence": 0.99952376, "punctuated_word": "the" }, { "word": "ending", "start": 171.62999, "end": 172.11, "confidence": 0.99979585, "punctuated_word": "ending" }, { "word": "of", "start": 172.11, "end": 172.19, "confidence": 0.99998105, "punctuated_word": "of" }, { "word": "the", "start": 172.19, "end": 172.34999, "confidence": 0.99969363, "punctuated_word": "the" }, { "word": "world", "start": 172.34999, "end": 172.84999, "confidence": 0.7751759, "punctuated_word": "world," }, { "word": "but", "start": 173.06999, "end": 173.39, "confidence": 0.99520326, "punctuated_word": "but" }, { "word": "we", "start": 173.39, "end": 173.89, "confidence": 0.9987953, "punctuated_word": "we" }, { "word": "in", "start": 174.03, "end": 174.19, "confidence": 0.61502063, "punctuated_word": "in" }, { "word": "it", "start": 174.19, "end": 174.43, "confidence": 0.99529403, "punctuated_word": "it" }, { "word": "shall", "start": 174.43, "end": 174.67, "confidence": 0.9986255, "punctuated_word": "shall" }, { "word": "be", "start": 174.67, "end": 174.90999, "confidence": 0.99993575, "punctuated_word": "be" }, { "word": "remembered", "start": 174.90999, "end": 175.40999, "confidence": 0.99281335, "punctuated_word": "remembered." }, { "word": "we", "start": 176.34999, "end": 176.84999, "confidence": 0.9492384, "punctuated_word": "We," }, { "word": "few", "start": 176.98999, "end": 177.48999, "confidence": 0.74313915, "punctuated_word": "few," }, { "word": "we", "start": 178.11, "end": 178.43, "confidence": 0.8733705, "punctuated_word": "we," }, { "word": "happy", "start": 178.43, "end": 178.83, "confidence": 0.9996909, "punctuated_word": "happy" }, { "word": "few", "start": 178.83, "end": 179.33, "confidence": 0.6276445, "punctuated_word": "few," }, { "word": "we", "start": 180.095, "end": 180.595, "confidence": 0.7976117, "punctuated_word": "We" }, { "word": "band", "start": 180.655, "end": 181.05501, "confidence": 0.89090616, "punctuated_word": "band" }, { "word": "of", "start": 181.05501, "end": 181.295, "confidence": 0.99808955, "punctuated_word": "of" }, { "word": "brothers", "start": 181.295, "end": 181.795, "confidence": 0.9997209, "punctuated_word": "brothers" }, { "word": "for", "start": 182.41501, "end": 182.655, "confidence": 0.8772569, "punctuated_word": "for" }, { "word": "he", "start": 182.655, "end": 182.975, "confidence": 0.9848578, "punctuated_word": "he" }, { "word": "today", "start": 182.975, "end": 183.475, "confidence": 0.8625623, "punctuated_word": "today" }, { "word": "that", "start": 183.535, "end": 183.85501, "confidence": 0.9856096, "punctuated_word": "that" }, { "word": "sheds", "start": 183.85501, "end": 184.255, "confidence": 0.99760854, "punctuated_word": "sheds" }, { "word": "his", "start": 184.255, "end": 184.49501, "confidence": 0.98561025, "punctuated_word": "his" }, { "word": "blood", "start": 184.49501, "end": 184.815, "confidence": 0.9996361, "punctuated_word": "blood" }, { "word": "with", "start": 184.815, "end": 185.13501, "confidence": 0.998744, "punctuated_word": "with" }, { "word": "me", "start": 185.13501, "end": 185.63501, "confidence": 0.99914414, "punctuated_word": "me" }, { "word": "shall", "start": 185.695, "end": 186.095, "confidence": 0.9853703, "punctuated_word": "shall" }, { "word": "be", "start": 186.095, "end": 186.41501, "confidence": 0.99910504, "punctuated_word": "be" }, { "word": "my", "start": 186.41501, "end": 186.655, "confidence": 0.90644526, "punctuated_word": "my" }, { "word": "brother", "start": 186.655, "end": 187.155, "confidence": 0.74625134, "punctuated_word": "brother." }, { "word": "be", "start": 187.72002, "end": 188.04001, "confidence": 0.6463611, "punctuated_word": "Be" }, { "word": "he", "start": 188.04001, "end": 188.28001, "confidence": 0.99289244, "punctuated_word": "he" }, { "word": "near", "start": 188.28001, "end": 188.68001, "confidence": 0.8845698, "punctuated_word": "near" }, { "word": "so", "start": 188.68001, "end": 189.00002, "confidence": 0.99629414, "punctuated_word": "so" }, { "word": "vile", "start": 189.00002, "end": 189.50002, "confidence": 0.997911, "punctuated_word": "vile" }, { "word": "this", "start": 189.64001, "end": 190.04001, "confidence": 0.65403026, "punctuated_word": "this" }, { "word": "day", "start": 190.04001, "end": 190.44002, "confidence": 0.9962322, "punctuated_word": "day" }, { "word": "shall", "start": 190.44002, "end": 190.76001, "confidence": 0.9927179, "punctuated_word": "shall" }, { "word": "gentle", "start": 190.76001, "end": 191.24, "confidence": 0.9948978, "punctuated_word": "gentle" }, { "word": "his", "start": 191.24, "end": 191.48001, "confidence": 0.99652356, "punctuated_word": "his" }, { "word": "condition", "start": 191.48001, "end": 191.98001, "confidence": 0.9575614, "punctuated_word": "condition." }, { "word": "and", "start": 193.32, "end": 193.64001, "confidence": 0.9801802, "punctuated_word": "And" }, { "word": "gentlemen", "start": 193.64001, "end": 194.14001, "confidence": 0.90253514, "punctuated_word": "gentlemen" }, { "word": "in", "start": 194.52, "end": 194.76001, "confidence": 0.9464713, "punctuated_word": "in" }, { "word": "england", "start": 194.76001, "end": 195.26001, "confidence": 0.97736657, "punctuated_word": "England," }, { "word": "now", "start": 195.48001, "end": 195.72002, "confidence": 0.64165187, "punctuated_word": "now" }, { "word": "a", "start": 195.72002, "end": 195.88, "confidence": 0.81910074, "punctuated_word": "a" }, { "word": "bed", "start": 195.88, "end": 196.38, "confidence": 0.7909601, "punctuated_word": "bed," }, { "word": "shall", "start": 196.82501, "end": 196.985, "confidence": 0.9973743, "punctuated_word": "shall" }, { "word": "think", "start": 196.985, "end": 197.30501, "confidence": 0.9994466, "punctuated_word": "think" }, { "word": "themselves", "start": 197.30501, "end": 197.80501, "confidence": 0.9993307, "punctuated_word": "themselves" }, { "word": "accursed", "start": 198.10501, "end": 198.60501, "confidence": 0.9434608, "punctuated_word": "accursed" }, { "word": "they", "start": 198.905, "end": 199.145, "confidence": 0.6058505, "punctuated_word": "they" }, { "word": "were", "start": 199.145, "end": 199.38501, "confidence": 0.99951553, "punctuated_word": "were" }, { "word": "not", "start": 199.38501, "end": 199.705, "confidence": 0.9999572, "punctuated_word": "not" }, { "word": "here", "start": 199.705, "end": 200.205, "confidence": 0.9977654, "punctuated_word": "here" }, { "word": "and", "start": 200.66501, "end": 200.905, "confidence": 0.855621, "punctuated_word": "and" }, { "word": "hold", "start": 200.905, "end": 201.30501, "confidence": 0.9996051, "punctuated_word": "hold" }, { "word": "their", "start": 201.30501, "end": 201.625, "confidence": 0.9946203, "punctuated_word": "their" }, { "word": "manhood's", "start": 201.625, "end": 202.125, "confidence": 0.8713009, "punctuated_word": "manhood's" }, { "word": "cheap", "start": 202.345, "end": 202.845, "confidence": 0.968832, "punctuated_word": "cheap" }, { "word": "whilst", "start": 202.905, "end": 203.405, "confidence": 0.8326439, "punctuated_word": "whilst" }, { "word": "any", "start": 203.46501, "end": 203.865, "confidence": 0.9997354, "punctuated_word": "any" }, { "word": "speaks", "start": 203.865, "end": 204.365, "confidence": 0.98350865, "punctuated_word": "speaks" }, { "word": "had", "start": 204.74501, "end": 204.985, "confidence": 0.6103741, "punctuated_word": "had" }, { "word": "fought", "start": 204.985, "end": 205.38501, "confidence": 0.99959415, "punctuated_word": "fought" }, { "word": "with", "start": 205.38501, "end": 205.625, "confidence": 0.9998694, "punctuated_word": "with" }, { "word": "us", "start": 205.625, "end": 206.0095, "confidence": 0.9975631, "punctuated_word": "us" }, { "word": "upon", "start": 206.7295, "end": 207.2095, "confidence": 0.98980814, "punctuated_word": "upon" }, { "word": "st", "start": 207.2095, "end": 207.52951, "confidence": 0.6698388, "punctuated_word": "St." }, { "word": "crispin's", "start": 207.52951, "end": 208.02951, "confidence": 0.8019565, "punctuated_word": "Crispin's" }, { "word": "day", "start": 208.4095, "end": 208.9095, "confidence": 0.8590909, "punctuated_word": "day." } ] } ] } ] } }