├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── config.yml │ └── feature-request.md ├── PULL_REQUEST_TEMPLATE │ └── pull_request_template.md └── workflows │ ├── CI.yml │ └── release.yml ├── .gitignore ├── .npmignore ├── .prettierignore ├── .prettierrc ├── .releaserc.json ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── commitlint.config.js ├── package-lock.json ├── package.json ├── src ├── converters │ ├── AssemblyAiConverter.ts │ ├── DeepgramConverter.ts │ ├── IConverter.ts │ └── index.ts ├── index.ts └── lib │ ├── helpers.ts │ ├── types.ts │ └── version.ts ├── test ├── assemblyai-transcription.json ├── assemblyai-utterances.json ├── assemblyai.test.ts ├── deepgram.test.ts ├── dg-speakers-no-utterance.json ├── dg-speakers.json ├── dg-transcription.json └── dg-utterances.json ├── tsconfig.json ├── tsconfig.module.json └── webpack.config.js /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Something is occurring that I think is wrong 4 | title: '' 5 | labels: "\U0001F41B bug" 6 | assignees: '' 7 | 8 | --- 9 | 10 | ## What is the current behavior? 11 | 12 | > What's happening that seems wrong? 13 | 14 | ## Steps to reproduce 15 | 16 | > To make it faster to diagnose the root problem. Tell us how can we reproduce the bug. 17 | 18 | ## Expected behavior 19 | 20 | > What would you expect to happen when following the steps above? 21 | 22 | ## Please tell us about your environment 23 | 24 | > We want to make sure the problem isn't specific to your operating system or programming language. 25 | 26 | - **Operating System/Version:** Windows 10 27 | - **Language:** [all | TypeScript | Python | PHP | etc] 28 | - **Browser:** Chrome 29 | 30 | ## Other information 31 | 32 | > Anything else we should know? (e.g. detailed explanation, stack-traces, related issues, suggestions how to fix, links for us to have context, eg. stack overflow, codepen, etc) 33 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: DeepgramDevs on Twitter 4 | url: https://twitter.com/DeepgramDevs 5 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature Request 3 | about: I think X would be a cool addition or change. 4 | title: '' 5 | labels: "✨ enhancement" 6 | assignees: '' 7 | 8 | --- 9 | 10 | ## Proposed changes 11 | 12 | > Provide a detailed description of the change or addition you are proposing 13 | 14 | ## Context 15 | 16 | > Why is this change important to you? How would you use it? How can it benefit other users? 17 | 18 | ## Possible Implementation 19 | 20 | > Not obligatory, but suggest an idea for implementing addition or change 21 | 22 | ## Other information 23 | 24 | > Anything else we should know? (e.g. detailed explanation, related issues, links for us to have context, eg. stack overflow, codepen, etc) 25 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE/pull_request_template.md: -------------------------------------------------------------------------------- 1 | ## Proposed changes 2 | 3 | Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue. 4 | 5 | ## Types of changes 6 | 7 | What types of changes does your code introduce? 8 | _Put an `x` in the boxes that apply_ 9 | 10 | - [ ] Bugfix (non-breaking change which fixes an issue) 11 | - [ ] New feature (non-breaking change which adds functionality) 12 | - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) 13 | - [ ] Documentation update or tests (if none of the other choices apply) 14 | 15 | ## Checklist 16 | 17 | _Put an `x` in the boxes that apply.This is simply a reminder of what we are going to look for before merging your code._ 18 | 19 | - [ ] I have read the [CONTRIBUTING](../../CONTRIBUTING.md) doc 20 | - [ ] Lint and unit tests pass locally with my changes 21 | - [ ] I have added tests that prove my fix is effective or that my feature works 22 | - [ ] I have added necessary documentation (if appropriate) 23 | - [ ] Any dependent changes have been merged and published in downstream modules 24 | 25 | ## Further comments 26 | 27 | If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc... 28 | -------------------------------------------------------------------------------- /.github/workflows/CI.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | pull_request: 5 | branches: 6 | - main 7 | - next 8 | - rc 9 | - beta 10 | - alpha 11 | paths-ignore: 12 | - "docs/**" 13 | - "**/*.md" 14 | - ".prettierrc" 15 | - "**/*ignore" 16 | push: 17 | branches: 18 | - main 19 | - next 20 | - rc 21 | - beta 22 | - alpha 23 | paths-ignore: 24 | - "docs/**" 25 | - "**/*.md" 26 | - ".prettierrc" 27 | - "**/*ignore" 28 | 29 | jobs: 30 | test: 31 | name: Test / OS ${{ matrix.os }} / Node ${{ matrix.node }} 32 | strategy: 33 | matrix: 34 | os: [ubuntu-latest] 35 | node: ["18"] 36 | 37 | runs-on: ${{ matrix.os }} 38 | 39 | steps: 40 | - uses: actions/checkout@v3 41 | 42 | - name: Set up Node 43 | uses: actions/setup-node@v3 44 | with: 45 | node-version: ${{ matrix.node }} 46 | 47 | - name: Run tests 48 | run: | 49 | npm clean-install 50 | npm run test:coverage 51 | 52 | - name: Upload coverage reports to Codecov 53 | uses: codecov/codecov-action@v3 54 | env: 55 | CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} 56 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | - next 8 | - rc 9 | - beta 10 | - alpha 11 | workflow_dispatch: 12 | 13 | jobs: 14 | release: 15 | name: Release / Node ${{ matrix.node }} 16 | strategy: 17 | matrix: 18 | node: ["18"] 19 | 20 | runs-on: ubuntu-latest 21 | 22 | steps: 23 | - uses: actions/checkout@v2 24 | 25 | - name: Set up Node 26 | uses: actions/setup-node@v2 27 | with: 28 | node-version: ${{ matrix.node }} 29 | 30 | - run: | 31 | npm ci 32 | npm run build 33 | 34 | - name: Create a release 35 | run: npx semantic-release@^18.0.0 36 | env: 37 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 38 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 39 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | .DS_Store 9 | 10 | # Diagnostic reports (https://nodejs.org/api/report.html) 11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 12 | 13 | # Runtime data 14 | pids 15 | *.pid 16 | *.seed 17 | *.pid.lock 18 | 19 | # Directory for instrumented libs generated by jscoverage/JSCover 20 | lib-cov 21 | 22 | # Coverage directory used by tools like istanbul 23 | coverage 24 | *.lcov 25 | 26 | # nyc test coverage 27 | .nyc_output 28 | 29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 30 | .grunt 31 | 32 | # Bower dependency directory (https://bower.io/) 33 | bower_components 34 | 35 | # node-waf configuration 36 | .lock-wscript 37 | 38 | # Compiled binary addons (https://nodejs.org/api/addons.html) 39 | build/Release 40 | 41 | # Dependency directories 42 | node_modules/ 43 | jspm_packages/ 44 | 45 | # TypeScript v1 declaration files 46 | typings/ 47 | 48 | # TypeScript cache 49 | *.tsbuildinfo 50 | 51 | # Optional npm cache directory 52 | .npm 53 | 54 | # Optional eslint cache 55 | .eslintcache 56 | 57 | # Microbundle cache 58 | .rpt2_cache/ 59 | .rts2_cache_cjs/ 60 | .rts2_cache_es/ 61 | .rts2_cache_umd/ 62 | 63 | # Optional REPL history 64 | .node_repl_history 65 | 66 | # Output of 'npm pack' 67 | *.tgz 68 | 69 | # Yarn Integrity file 70 | .yarn-integrity 71 | 72 | # dotenv environment variables file 73 | .env 74 | .env.test 75 | 76 | # parcel-bundler cache (https://parceljs.org/) 77 | .cache 78 | 79 | # Next.js build output 80 | .next 81 | 82 | # Nuxt.js build / generate output 83 | .nuxt 84 | dist 85 | 86 | # Gatsby files 87 | .cache/ 88 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 89 | # https://nextjs.org/blog/next-9-1#public-directory-support 90 | # public 91 | 92 | # vuepress build output 93 | .vuepress/dist 94 | 95 | # Serverless directories 96 | .serverless/ 97 | 98 | # FuseBox cache 99 | .fusebox/ 100 | 101 | # DynamoDB Local files 102 | .dynamodb/ 103 | 104 | # TernJS port file 105 | .tern-port 106 | 107 | docs/v2 108 | 109 | # testing 110 | testServer/ -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | *.log 2 | npm-debug.log* 3 | 4 | # Coverage directory used by tools like istanbul 5 | coverage 6 | .nyc_output 7 | 8 | # Dependency directories 9 | node_modules 10 | 11 | # npm package lock 12 | package-lock.json 13 | yarn.lock 14 | 15 | # project files 16 | src 17 | test 18 | examples 19 | example-next-js 20 | umd_temp 21 | CHANGELOG.md 22 | .travis.yml 23 | .editorconfig 24 | .eslintignore 25 | .eslintrc 26 | .babelrc 27 | .gitignore -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .expo 2 | .next 3 | node_modules 4 | package-lock.json 5 | docker* -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "es5", 3 | "tabWidth": 2, 4 | "printWidth": 100 5 | } 6 | -------------------------------------------------------------------------------- /.releaserc.json: -------------------------------------------------------------------------------- 1 | { 2 | "branches": [ 3 | { "name": "main" }, 4 | { "name": "next", "channel": "next", "prerelease": true }, 5 | { "name": "rc", "channel": "rc", "prerelease": true }, 6 | { "name": "beta", "channel": "beta", "prerelease": true }, 7 | { "name": "alpha", "channel": "alpha", "prerelease": true } 8 | ], 9 | "plugins": [ 10 | [ 11 | "semantic-release-plugin-update-version-in-files", 12 | { 13 | "files": [ 14 | "src/lib/version.ts", 15 | "dist/main/lib/version.js", 16 | "dist/main/lib/version.d.ts", 17 | "dist/module/lib/version.js", 18 | "dist/module/lib/version.d.ts", 19 | "dist/umd/supabase.js" 20 | ], 21 | "placeholder": "0.0.0-automated" 22 | } 23 | ], 24 | "@semantic-release/commit-analyzer", 25 | "@semantic-release/release-notes-generator", 26 | [ 27 | "@semantic-release/github", 28 | { 29 | "successComment": false, 30 | "releasedLabels": false, 31 | "failTitle": false, 32 | "addReleases": false 33 | } 34 | ], 35 | "@semantic-release/npm" 36 | ] 37 | } 38 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | Please refer to [Deepgram Community Code of Conduct](https://dpgr.am/coc) 4 | 5 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing Guidelines 2 | 3 | Want to contribute to this project? We ❤️ it! 4 | 5 | Here are a few types of contributions that we would be interested in hearing about. 6 | 7 | * Bug fixes 8 | * If you find a bug, please first report it using Github Issues. 9 | * Issues that have already been identified as a bug will be labeled `🐛 bug`. 10 | * If you'd like to submit a fix for a bug, send a Pull Request from your own fork and mention the Issue number. 11 | * Include a test that isolates the bug and verifies that it was fixed. 12 | * New Features 13 | * If you'd like to accomplish something in the extension that it doesn't already do, describe the problem in a new Github Issue. 14 | * Issues that have been identified as a feature request will be labeled `✨ enhancement`. 15 | * If you'd like to implement the new feature, please wait for feedback from the project maintainers before spending 16 | too much time writing the code. In some cases, `✨ enhancement`s may not align well with the project objectives at 17 | the time. 18 | * Tests, Documentation, Miscellaneous 19 | * If you think the test coverage could be improved, the documentation could be clearer, you've got an alternative 20 | implementation of something that may have more advantages, or any other change we would still be glad hear about 21 | it. 22 | * If its a trivial change, go ahead and send a Pull Request with the changes you have in mind 23 | * If not, open a Github Issue to discuss the idea first. 24 | 25 | We also welcome anyone to work on any existing issues with the `👋🏽 good first issue` tag. 26 | 27 | ## Requirements 28 | 29 | For a contribution to be accepted: 30 | 31 | * The test suite must be complete and pass 32 | * Code must follow existing styling conventions 33 | * Commit messages must be descriptive. Related issues should be mentioned by number. 34 | 35 | If the contribution doesn't meet these criteria, a maintainer will discuss it with you on the Issue. You can still 36 | continue to add more commits to the branch you have sent the Pull Request from. 37 | 38 | ## How To 39 | 40 | 1. Fork this repository on GitHub. 41 | 1. Clone/fetch your fork to your local development machine. 42 | 1. Create a new branch (e.g. `issue-12`, `feat.add_foo`, etc) and check it out. 43 | 1. Make your changes and commit them. (Did the tests pass? No linting errors?) 44 | 1. Push your new branch to your fork. (e.g. `git push myname issue-12`) 45 | 1. Open a Pull Request from your new branch to the original fork's `main` branch. 46 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 deepgram 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Deepgram Captions 2 | 3 | [![Discord](https://dcbadge.vercel.app/api/server/xWRaCDBtW4?style=flat)](https://discord.gg/xWRaCDBtW4) [![npm version](https://badge.fury.io/js/@deepgram%2Fcaptions.svg)](https://badge.fury.io/js/@deepgram%2Fcaptions) 4 | 5 | This package is the JavaScript implementation of Deepgram's WebVTT and SRT formatting. Given a transcription, this package can return a valid string to store as WebVTT or SRT caption files. 6 | 7 | > Works with ANY transcription format. 8 | 9 | ## Installation 10 | 11 | ```bash 12 | npm install @deepgram/captions 13 | # - or - 14 | # yarn add @deepgram/captions 15 | ``` 16 | 17 | ## WebVTT from Deepgram Transcriptions 18 | 19 | ```ts 20 | import { webvtt } from "@deepgram/captions"; 21 | 22 | const result = webvtt(deepgram_transcription_result); 23 | ``` 24 | 25 | ## SRT from Deepgram Transcriptions 26 | 27 | ```ts 28 | import { srt } from "@deepgram/captions"; 29 | 30 | const result = srt(deepgram_transcription_result); 31 | ``` 32 | 33 | ## Converters 34 | 35 | This package has been built to convert any transcription format. You only need to provide a `converter` class to provide the formatters with the correct data. 36 | 37 | ### Example Converter 38 | 39 | A generic converter would look like this: 40 | 41 | ```ts 42 | import { chunkArray, WordBase, IConverter } from "@deepgram/captions"; 43 | 44 | export class GenericConverter implements IConverter { 45 | constructor(public transcriptionData: any) {} 46 | 47 | getLines(lineLength: number = 8): WordBase[][] { 48 | const results = this.transcriptionData; 49 | let content: WordBase[][] = []; 50 | 51 | results.paragraphs.forEach((paragraph) => { 52 | if (paragraph.words.length > lineLength) { 53 | content.push(...chunkArray(paragraph.words, lineLength)); 54 | } else { 55 | content.push(paragraph.words); 56 | } 57 | }); 58 | 59 | return content; 60 | } 61 | } 62 | ``` 63 | 64 | It requires that `getLines` return the following data structure: 65 | 66 | ```ts 67 | // const transcriptionData: WordBase[][] = [ 68 | const transcriptionData = [ 69 | [ 70 | { 71 | word: string; 72 | start: number; 73 | end: number; 74 | punctuated_word: string; // optional 75 | } 76 | ] 77 | ] 78 | ``` 79 | 80 | Using your converter will look like this: 81 | 82 | ```ts 83 | import { srt } from "@deepgram/captions"; 84 | 85 | const result = srt(new GenericConverter(transcription_result)); 86 | ``` 87 | 88 | ### Included Converters 89 | 90 | #### Assembly AI 91 | 92 | ```ts 93 | import { webvtt, AssemblyAiConverter } from "@deepgram/captions"; 94 | 95 | const result = webvtt(new AssemblyAiConverter(assembly_result)); 96 | ``` 97 | 98 | ## Output WebVTT 99 | 100 | When transcribing https://dpgr.am/spacewalk.wav, and running it through our library, this is the WebVTT output. 101 | 102 | ```ts 103 | import { webvtt } from "@deepgram/captions"; 104 | 105 | const result = webvtt(deepgram_transcription_result); 106 | 107 | console.log(result); 108 | ``` 109 | 110 | This is the result: 111 | 112 | ```text 113 | WEBVTT 114 | 115 | NOTE 116 | Transcription provided by Deepgram 117 | Request Id: 686278aa-d315-4aeb-b2a9-713615544366 118 | Created: 2023-10-27T15:35:56.637Z 119 | Duration: 25.933313 120 | Channels: 1 121 | 122 | 00:00:00.080 --> 00:00:03.220 123 | Yeah. As as much as, it's worth celebrating, 124 | 125 | 00:00:04.400 --> 00:00:05.779 126 | the first, spacewalk, 127 | 128 | 00:00:06.319 --> 00:00:07.859 129 | with an all female team, 130 | 131 | 00:00:08.475 --> 00:00:10.715 132 | I think many of us are looking forward 133 | 134 | 00:00:10.715 --> 00:00:13.215 135 | to it just being normal and 136 | 137 | 00:00:13.835 --> 00:00:16.480 138 | I think if it signifies anything, It is 139 | 140 | 00:00:16.779 --> 00:00:18.700 141 | to honor the the women who came before 142 | 143 | 00:00:18.700 --> 00:00:21.680 144 | us who, were skilled and qualified, 145 | 146 | 00:00:22.300 --> 00:00:24.779 147 | and didn't get the same opportunities that we 148 | 149 | 00:00:24.779 --> 00:00:25.439 150 | have today. 151 | ``` 152 | 153 | ## Output SRT 154 | 155 | When transcribing https://dpgr.am/spacewalk.wav, and running it through our library, this is the SRT output. 156 | 157 | ```ts 158 | import { srt } from "@deepgram/captions"; 159 | 160 | const result = srt(deepgram_transcription_result); 161 | 162 | console.log(result); 163 | ``` 164 | 165 | This is the result: 166 | 167 | ```text 168 | 1 169 | 00:00:00,080 --> 00:00:03,220 170 | Yeah. As as much as, it's worth celebrating, 171 | 172 | 2 173 | 00:00:04,400 --> 00:00:07,859 174 | the first, spacewalk, with an all female team, 175 | 176 | 3 177 | 00:00:08,475 --> 00:00:10,715 178 | I think many of us are looking forward 179 | 180 | 4 181 | 00:00:10,715 --> 00:00:14,235 182 | to it just being normal and I think 183 | 184 | 5 185 | 00:00:14,235 --> 00:00:17,340 186 | if it signifies anything, It is to honor 187 | 188 | 6 189 | 00:00:17,340 --> 00:00:19,820 190 | the the women who came before us who, 191 | 192 | 7 193 | 00:00:20,140 --> 00:00:23,580 194 | were skilled and qualified, and didn't get the 195 | 196 | 8 197 | 00:00:23,580 --> 00:00:25,439 198 | same opportunities that we have today. 199 | ``` 200 | 201 | ## Documentation 202 | 203 | You can learn more about the Deepgram API at [developers.deepgram.com](https://developers.deepgram.com/docs). 204 | 205 | ## Development and Contributing 206 | 207 | Interested in contributing? We ❤️ pull requests! 208 | 209 | To make sure our community is safe for all, be sure to review and agree to our 210 | [Code of Conduct](./.github/CODE_OF_CONDUCT.md). Then see the 211 | [Contribution](./.github/CONTRIBUTING.md) guidelines for more information. 212 | 213 | ## Getting Help 214 | 215 | We love to hear from you so if you have questions, comments or find a bug in the 216 | project, let us know! You can either: 217 | 218 | - [Open an issue in this repository](https://github.com/deepgram/[reponame]/issues/new) 219 | - [Join the Deepgram Github Discussions Community](https://github.com/orgs/deepgram/discussions) 220 | - [Join the Deepgram Discord Community](https://discord.gg/xWRaCDBtW4) 221 | 222 | [license]: LICENSE.txt 223 | -------------------------------------------------------------------------------- /commitlint.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { extends: ["@commitlint/config-conventional"] }; 2 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@deepgram/captions", 3 | "version": "0.0.0-automated", 4 | "description": "Node implementation of Deepgram's WebVTT and SRT formatting. Given a transcription, this package can return a valid string to store as WebVTT or SRT caption files.", 5 | "keywords": [ 6 | "audio", 7 | "javascript", 8 | "youtube", 9 | "typescript", 10 | "sdk", 11 | "ffmpeg", 12 | "speech", 13 | "subtitles", 14 | "srt", 15 | "webvtt", 16 | "speech-to-text", 17 | "transcription", 18 | "stt", 19 | "asr", 20 | "closed-captions", 21 | "deepgram" 22 | ], 23 | "homepage": "https://github.com/deepgram/deepgram-node-captions", 24 | "bugs": "https://github.com/deepgram/deepgram-node-captions/issues", 25 | "license": "MIT", 26 | "author": { 27 | "name": "Deepgram DevRel Team", 28 | "email": "devrel@deepgram.com" 29 | }, 30 | "contributors": [ 31 | "Luke Oliff (https://lukeocodes.dev)" 32 | ], 33 | "files": [ 34 | "dist", 35 | "src" 36 | ], 37 | "engines": { 38 | "node": ">=18.0.0" 39 | }, 40 | "main": "dist/main/index.js", 41 | "module": "dist/module/index.js", 42 | "types": "dist/module/index.d.ts", 43 | "sideEffects": false, 44 | "repository": "deepgram/deepgram-node-captions", 45 | "scripts": { 46 | "clean": "rimraf dist", 47 | "format": "prettier --write \"{src,test}/**/*.ts\"", 48 | "build": "run-s clean format build:*", 49 | "build:main": "tsc -p tsconfig.json", 50 | "build:module": "tsc -p tsconfig.module.json", 51 | "build:umd": "webpack --mode=production", 52 | "watch": "nodemon -e ts --watch src --exec \"npm run build\"", 53 | "test": "mocha -r ts-node/register test/*test.ts test/**/*test.ts --insect --timeout 5000 || :", 54 | "test:coverage": "nyc --reporter=lcovonly --reporter=text --reporter=text-summary npm run test" 55 | }, 56 | "dependencies": { 57 | "dayjs": "^1.11.10" 58 | }, 59 | "devDependencies": { 60 | "@commitlint/cli": "^17.6.7", 61 | "@commitlint/config-conventional": "^17.6.7", 62 | "@types/chai": "^4.3.5", 63 | "@types/mocha": "^9.1.1", 64 | "chai": "^4.3.7", 65 | "husky": "^4.3.0", 66 | "mocha": "^9.2.2", 67 | "nodemon": "^3.0.1", 68 | "npm-run-all": "^4.1.5", 69 | "nyc": "^15.1.0", 70 | "prettier": "^2.5.1", 71 | "pretty-quick": "^3.1.3", 72 | "rimraf": "^3.0.2", 73 | "semantic-release-plugin-update-version-in-files": "^1.1.0", 74 | "srt-validator": "^6.0.4", 75 | "ts-loader": "^8.0.11", 76 | "ts-node": "^10.9.1", 77 | "typescript": "^4.5.5", 78 | "webpack-cli": "^4.9.2", 79 | "webpack": "^5.69.1" 80 | }, 81 | "husky": { 82 | "hooks": { 83 | "pre-commit": "pretty-quick --staged", 84 | "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" 85 | } 86 | }, 87 | "jsdelivr": "dist/umd/deepgram-captions.js", 88 | "unpkg": "dist/umd/deepgram-captions.js" 89 | } 90 | -------------------------------------------------------------------------------- /src/converters/AssemblyAiConverter.ts: -------------------------------------------------------------------------------- 1 | import { chunkArray } from "../lib/helpers"; 2 | import { WordBase } from "../lib/types"; 3 | import { IConverter } from "./IConverter"; 4 | 5 | const wordMap = (word: any): WordBase => { 6 | return { 7 | word: word.text, 8 | start: word.start, 9 | end: word.end, 10 | confidence: word.confidence, 11 | punctuated_word: word.text, 12 | speaker: word.speaker, 13 | }; 14 | }; 15 | 16 | export class AssemblyAiConverter implements IConverter { 17 | constructor(public transcriptionData: any) {} 18 | 19 | getLines(lineLength: number = 8): WordBase[][] { 20 | const results = this.transcriptionData; 21 | let content: WordBase[][] = []; 22 | 23 | if (results.utterances) { 24 | results.utterances.forEach((utterance: any) => { 25 | if (utterance.words.length > lineLength) { 26 | content.push( 27 | ...chunkArray( 28 | utterance.words.map((w: any) => wordMap(w)), 29 | lineLength 30 | ) 31 | ); 32 | } else { 33 | content.push(utterance.words.map((w: any) => wordMap(w))); 34 | } 35 | }); 36 | } else { 37 | content.push( 38 | ...chunkArray( 39 | results.words.map((w: any) => wordMap(w)), 40 | lineLength 41 | ) 42 | ); 43 | } 44 | 45 | return content; 46 | } 47 | 48 | getHeaders(): string[] { 49 | const output: string[] = []; 50 | 51 | output.push("NOTE"); 52 | output.push("Transcription provided by Assembly AI"); 53 | this.transcriptionData.id ? output.push(`Id: ${this.transcriptionData.id}`) : null; 54 | this.transcriptionData.audio_duration 55 | ? output.push(`Duration: ${this.transcriptionData.audio_duration}`) 56 | : null; 57 | 58 | return output; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/converters/DeepgramConverter.ts: -------------------------------------------------------------------------------- 1 | import { chunkArray } from "../lib/helpers"; 2 | import { DeepgramResponse, WordBase } from "../lib/types"; 3 | import { IConverter } from "./IConverter"; 4 | 5 | export class DeepgramConverter implements IConverter { 6 | constructor(public transcriptionData: DeepgramResponse) {} 7 | 8 | getLines(lineLength: number = 8): WordBase[][] { 9 | const { results } = this.transcriptionData; 10 | let content: WordBase[][] = []; 11 | 12 | if (results.utterances) { 13 | results.utterances.forEach((utterance) => { 14 | if (utterance.words.length > lineLength) { 15 | content.push(...chunkArray(utterance.words, lineLength)); 16 | } else { 17 | content.push(utterance.words); 18 | } 19 | }); 20 | } else { 21 | const words = results.channels[0].alternatives[0].words; 22 | const diarize = "speaker" in words[0]; // was diarization used 23 | 24 | let buffer: WordBase[] = []; 25 | let currentSpeaker = 0; 26 | 27 | words.forEach((word) => { 28 | if (diarize && word.speaker !== currentSpeaker) { 29 | content.push(buffer); 30 | buffer = []; 31 | } 32 | 33 | if (buffer.length === lineLength) { 34 | content.push(buffer); 35 | buffer = []; 36 | } 37 | 38 | if (diarize) { 39 | currentSpeaker = word.speaker ?? 0; 40 | } 41 | 42 | buffer.push(word); 43 | }); 44 | 45 | content.push(buffer); 46 | } 47 | 48 | return content; 49 | } 50 | 51 | getHeaders(): string[] { 52 | const output: string[] = []; 53 | 54 | output.push("NOTE"); 55 | output.push("Transcription provided by Deepgram"); 56 | this.transcriptionData.metadata?.request_id 57 | ? output.push(`Request Id: ${this.transcriptionData.metadata?.request_id}`) 58 | : null; 59 | this.transcriptionData.metadata?.created 60 | ? output.push(`Created: ${this.transcriptionData.metadata?.created}`) 61 | : null; 62 | this.transcriptionData.metadata?.duration 63 | ? output.push(`Duration: ${this.transcriptionData.metadata?.duration}`) 64 | : null; 65 | this.transcriptionData.metadata?.channels 66 | ? output.push(`Channels: ${this.transcriptionData.metadata?.channels}`) 67 | : null; 68 | 69 | return output; 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/converters/IConverter.ts: -------------------------------------------------------------------------------- 1 | import { WordBase } from "../lib/types"; 2 | 3 | export interface IConverter { 4 | transcriptionData: any; 5 | getLines: (lineLength: number) => WordBase[][]; 6 | getHeaders?: () => string[]; 7 | } 8 | 9 | export function isConverter(object: any): object is IConverter { 10 | return "transcriptionData" in object; 11 | } 12 | -------------------------------------------------------------------------------- /src/converters/index.ts: -------------------------------------------------------------------------------- 1 | export { DeepgramConverter } from "./DeepgramConverter"; 2 | export { AssemblyAiConverter } from "./AssemblyAiConverter"; 3 | export { IConverter, isConverter } from "./IConverter"; 4 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { DeepgramConverter, IConverter, isConverter } from "./converters"; 2 | import { chunkArray, secondsToTimestamp } from "./lib/helpers"; 3 | import { DeepgramResponse } from "./lib/types"; 4 | 5 | const parseInput = (transcription: any): IConverter => { 6 | if (!isConverter(transcription)) { 7 | return new DeepgramConverter(transcription as DeepgramResponse); 8 | } 9 | 10 | return transcription; 11 | }; 12 | 13 | const webvtt = (transcription: any, lineLength: number = 8): string => { 14 | const output: string[] = []; 15 | 16 | let data = parseInput(transcription); 17 | 18 | // default top of file 19 | output.push("WEBVTT"); 20 | output.push(""); 21 | 22 | // get converter specific headers 23 | data.getHeaders ? output.push(data.getHeaders().join("\n")) : null; 24 | data.getHeaders ? output.push("") : null; 25 | 26 | // get the lines 27 | const lines = data.getLines(lineLength); 28 | 29 | // is speaker output required? 30 | const speakerLabels = "speaker" in lines[0][0]; 31 | 32 | lines.forEach((words) => { 33 | const firstWord = words[0]; 34 | const lastWord = words[words.length - 1]; 35 | 36 | output.push(`${secondsToTimestamp(firstWord.start)} --> ${secondsToTimestamp(lastWord.end)}`); 37 | 38 | const line = words.map((word) => word.punctuated_word ?? word.word).join(" "); 39 | const speakerLabel = speakerLabels ? `` : ""; 40 | 41 | output.push(`${speakerLabel}${line}`); 42 | output.push(""); 43 | }); 44 | 45 | return output.join("\n"); 46 | }; 47 | 48 | const srt = (transcription: any, lineLength: number = 8): string => { 49 | const output: string[] = []; 50 | 51 | const data = parseInput(transcription); 52 | 53 | // get the lines 54 | let lines = data.getLines(lineLength); 55 | 56 | // is speaker output required? 57 | const speakerLabels = "speaker" in lines[0][0]; 58 | 59 | let entry = 1; 60 | let currentSpeaker: any; 61 | 62 | lines.forEach((words) => { 63 | output.push((entry++).toString()); 64 | 65 | const firstWord = words[0]; 66 | const lastWord = words[words.length - 1]; 67 | 68 | output.push( 69 | `${secondsToTimestamp(firstWord.start, "HH:mm:ss,SSS")} --> ${secondsToTimestamp( 70 | lastWord.end, 71 | "HH:mm:ss,SSS" 72 | )}` 73 | ); 74 | 75 | const line = words.map((word) => word.punctuated_word ?? word.word).join(" "); 76 | const speakerLabel = 77 | speakerLabels && currentSpeaker !== firstWord.speaker 78 | ? `[Speaker ${firstWord.speaker}]\n` 79 | : ""; 80 | 81 | output.push(`${speakerLabel}${line}`); 82 | output.push(""); 83 | 84 | currentSpeaker = firstWord.speaker; 85 | }); 86 | 87 | return output.join("\n"); 88 | }; 89 | 90 | export { webvtt, srt }; 91 | 92 | /** 93 | * Helpful exports. 94 | */ 95 | export * from "./converters"; 96 | export * from "./lib/types"; 97 | export * from "./lib/helpers"; 98 | -------------------------------------------------------------------------------- /src/lib/helpers.ts: -------------------------------------------------------------------------------- 1 | import dayjs from "dayjs"; 2 | import utc from "dayjs/plugin/utc"; 3 | dayjs.extend(utc); 4 | 5 | export function secondsToTimestamp(seconds: number, format = "HH:mm:ss.SSS"): string { 6 | return dayjs(seconds * 1000) 7 | .utc() 8 | .format(format); 9 | } 10 | 11 | export function chunkArray(arr: any[], length: number): any[] { 12 | const res: any[] = []; 13 | 14 | for (let i = 0; i < arr.length; i += length) { 15 | const chunkarr = arr.slice(i, i + length); 16 | res.push(chunkarr); 17 | } 18 | 19 | return res; 20 | } 21 | -------------------------------------------------------------------------------- /src/lib/types.ts: -------------------------------------------------------------------------------- 1 | export interface DeepgramResponse { 2 | metadata: Metadata; 3 | results: Result; 4 | } 5 | 6 | export interface Alternative { 7 | transcript: string; 8 | confidence: number; 9 | words: WordBase[]; 10 | summaries?: Summary[]; 11 | paragraphs?: ParagraphGroup; 12 | entities?: Entity[]; 13 | translations?: Translation[]; 14 | topics?: TopicGroup[]; 15 | } 16 | 17 | export interface Channel { 18 | search?: Search[]; 19 | alternatives: Alternative[]; 20 | detected_language?: string; 21 | } 22 | 23 | export interface Entity { 24 | label: string; 25 | value: string; 26 | confidence: number; 27 | start_word: number; 28 | end_word: number; 29 | } 30 | 31 | export interface Hit { 32 | confidence: number; 33 | start: number; 34 | end: number; 35 | snippet: string; 36 | } 37 | 38 | export interface Metadata { 39 | transaction_key: string; 40 | request_id: string; 41 | sha256: string; 42 | created: string; 43 | duration: number; 44 | channels: number; 45 | models: string[]; 46 | model_info: Record; 47 | warnings?: Warning[]; 48 | } 49 | 50 | export interface ModelInfo { 51 | name: string; 52 | version: string; 53 | arch: string; 54 | } 55 | 56 | export interface Paragraph { 57 | sentences: Sentence[]; 58 | start: number; 59 | end: number; 60 | num_words: number; 61 | } 62 | 63 | export interface ParagraphGroup { 64 | transcript: string; 65 | paragraphs: Paragraph[]; 66 | } 67 | 68 | export interface Result { 69 | channels: Channel[]; 70 | utterances?: Utterance[]; 71 | summary?: TranscriptionSummary; 72 | } 73 | 74 | export interface Search { 75 | query: string; 76 | hits: Hit[]; 77 | } 78 | 79 | export interface Sentence { 80 | text: string; 81 | start: number; 82 | end: number; 83 | } 84 | 85 | export interface Summary { 86 | summary?: string; 87 | start_word?: number; 88 | end_word?: number; 89 | } 90 | export interface TranscriptionSummary { 91 | result: string; 92 | short: string; 93 | } 94 | 95 | export interface Topic { 96 | topic: string; 97 | confidence: number; 98 | } 99 | 100 | export interface TopicGroup { 101 | topics: Topic[]; 102 | text: string; 103 | start_word: number; 104 | end_word: number; 105 | } 106 | 107 | export interface Translation { 108 | language: string; 109 | translation: string; 110 | } 111 | 112 | export interface Utterance { 113 | start: number; 114 | end: number; 115 | confidence: number; 116 | channel: number; 117 | transcript: string; 118 | words: WordBase[]; 119 | speaker?: number; 120 | id: string; 121 | } 122 | 123 | export interface Warning { 124 | parameter: string; 125 | type: string; 126 | message: string; 127 | } 128 | 129 | export interface WordBase { 130 | word: string; 131 | start: number; 132 | end: number; 133 | confidence?: number; 134 | punctuated_word?: string; 135 | speaker?: number; 136 | speaker_confidence?: number; 137 | } 138 | -------------------------------------------------------------------------------- /src/lib/version.ts: -------------------------------------------------------------------------------- 1 | export const version = "0.0.0-automated"; 2 | -------------------------------------------------------------------------------- /test/assemblyai-transcription.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "6a9zvzyx8u-f8fd-4bf4-9614-9497d76c6891", 3 | "language_model": "assemblyai_default", 4 | "acoustic_model": "assemblyai_default", 5 | "language_code": "en", 6 | "status": "completed", 7 | "audio_url": "https://storage.googleapis.com/aai-playground-files-production/a72ebcc7-e6c3-4337-92cc-bc8ca86daa14?Expires=1720606027&GoogleAccessId=aai-playground%40assemblyai-web-production.iam.gserviceaccount.com&Signature=u2A4Zw1kohm7FOiw%2FT48XcPwsB3Fg5n%2Fs%2FQA9R8UOOSCN%2F12h%2FE4KNuEpkj713rpbltqNQ4AZhdkZXqS1zsEqOvj%2BH%2BN1a7GKuHgTJh%2BQKoGlNybTm%2F7bizW9ZcnFWNagpTa9KKgup1Z6WBOZxtvEujF4ERK7wYLM1pGwpEmHCPJuay1B0xoKFkYw2UH%2FLk02ieDymPNZs%2BsZ4YQqdeZwhWvMYHMS%2BG6Lc7DZ4Gu1XOJVRtO9KLK9jBW9Ne3k%2F0gNqRbj8kXd38Q4CuLUXs6MdNr4wtb1uhz8PUlcvEZfWcJwBZOPvP1rvGQVDexV2V4j7wNoDpyF9FdMeiaVs%2Fneg%3D%3D", 8 | "text": "Yeah. As much as it's worth celebrating the first spacewalk with an all female team, I think many of us are looking forward to it just being normal. And I think if it signifies anything, it is to honor the women who came before us, who were skilled and qualified and didn't get the same opportunities that we have today.", 9 | "words": [ 10 | { 11 | "text": "Yeah.", 12 | "start": 170, 13 | "end": 718, 14 | "confidence": 0.9941, 15 | "speaker": "A" 16 | }, 17 | { 18 | "text": "As", 19 | "start": 884, 20 | "end": 1166, 21 | "confidence": 0.99992, 22 | "speaker": "A" 23 | }, 24 | { 25 | "text": "much", 26 | "start": 1188, 27 | "end": 1326, 28 | "confidence": 0.99996, 29 | "speaker": "A" 30 | }, 31 | { 32 | "text": "as", 33 | "start": 1348, 34 | "end": 1822, 35 | "confidence": 0.96266, 36 | "speaker": "A" 37 | }, 38 | { 39 | "text": "it's", 40 | "start": 1956, 41 | "end": 2346, 42 | "confidence": 0.99978, 43 | "speaker": "A" 44 | }, 45 | { 46 | "text": "worth", 47 | "start": 2378, 48 | "end": 2766, 49 | "confidence": 0.99999, 50 | "speaker": "A" 51 | }, 52 | { 53 | "text": "celebrating", 54 | "start": 2868, 55 | "end": 3870, 56 | "confidence": 0.99245, 57 | "speaker": "A" 58 | }, 59 | { 60 | "text": "the", 61 | "start": 4290, 62 | "end": 4654, 63 | "confidence": 0.55, 64 | "speaker": "A" 65 | }, 66 | { 67 | "text": "first", 68 | "start": 4692, 69 | "end": 5134, 70 | "confidence": 1, 71 | "speaker": "A" 72 | }, 73 | { 74 | "text": "spacewalk", 75 | "start": 5252, 76 | "end": 6234, 77 | "confidence": 0.9899, 78 | "speaker": "A" 79 | }, 80 | { 81 | "text": "with", 82 | "start": 6362, 83 | "end": 6606, 84 | "confidence": 0.99998, 85 | "speaker": "A" 86 | }, 87 | { 88 | "text": "an", 89 | "start": 6628, 90 | "end": 6766, 91 | "confidence": 0.99914, 92 | "speaker": "A" 93 | }, 94 | { 95 | "text": "all", 96 | "start": 6788, 97 | "end": 6974, 98 | "confidence": 0.99989, 99 | "speaker": "A" 100 | }, 101 | { 102 | "text": "female", 103 | "start": 7012, 104 | "end": 7354, 105 | "confidence": 0.99989, 106 | "speaker": "A" 107 | }, 108 | { 109 | "text": "team,", 110 | "start": 7402, 111 | "end": 8000, 112 | "confidence": 1, 113 | "speaker": "A" 114 | }, 115 | { 116 | "text": "I", 117 | "start": 8370, 118 | "end": 8686, 119 | "confidence": 1, 120 | "speaker": "A" 121 | }, 122 | { 123 | "text": "think", 124 | "start": 8708, 125 | "end": 8894, 126 | "confidence": 1, 127 | "speaker": "A" 128 | }, 129 | { 130 | "text": "many", 131 | "start": 8932, 132 | "end": 9134, 133 | "confidence": 0.99999, 134 | "speaker": "A" 135 | }, 136 | { 137 | "text": "of", 138 | "start": 9172, 139 | "end": 9326, 140 | "confidence": 1, 141 | "speaker": "A" 142 | }, 143 | { 144 | "text": "us", 145 | "start": 9348, 146 | "end": 9774, 147 | "confidence": 1, 148 | "speaker": "A" 149 | }, 150 | { 151 | "text": "are", 152 | "start": 9892, 153 | "end": 10222, 154 | "confidence": 0.57763, 155 | "speaker": "A" 156 | }, 157 | { 158 | "text": "looking", 159 | "start": 10276, 160 | "end": 10494, 161 | "confidence": 1, 162 | "speaker": "A" 163 | }, 164 | { 165 | "text": "forward", 166 | "start": 10532, 167 | "end": 10734, 168 | "confidence": 0.99999, 169 | "speaker": "A" 170 | }, 171 | { 172 | "text": "to", 173 | "start": 10772, 174 | "end": 10974, 175 | "confidence": 0.96, 176 | "speaker": "A" 177 | }, 178 | { 179 | "text": "it", 180 | "start": 11012, 181 | "end": 11166, 182 | "confidence": 0.99995, 183 | "speaker": "A" 184 | }, 185 | { 186 | "text": "just", 187 | "start": 11188, 188 | "end": 11374, 189 | "confidence": 0.99996, 190 | "speaker": "A" 191 | }, 192 | { 193 | "text": "being", 194 | "start": 11412, 195 | "end": 11806, 196 | "confidence": 0.99998, 197 | "speaker": "A" 198 | }, 199 | { 200 | "text": "normal.", 201 | "start": 11908, 202 | "end": 12666, 203 | "confidence": 0.99999, 204 | "speaker": "A" 205 | }, 206 | { 207 | "text": "And", 208 | "start": 12778, 209 | "end": 13534, 210 | "confidence": 1, 211 | "speaker": "A" 212 | }, 213 | { 214 | "text": "I", 215 | "start": 13732, 216 | "end": 14046, 217 | "confidence": 0.65, 218 | "speaker": "A" 219 | }, 220 | { 221 | "text": "think", 222 | "start": 14068, 223 | "end": 14254, 224 | "confidence": 0.99988, 225 | "speaker": "A" 226 | }, 227 | { 228 | "text": "if", 229 | "start": 14292, 230 | "end": 14446, 231 | "confidence": 0.99998, 232 | "speaker": "A" 233 | }, 234 | { 235 | "text": "it", 236 | "start": 14468, 237 | "end": 14606, 238 | "confidence": 0.99999, 239 | "speaker": "A" 240 | }, 241 | { 242 | "text": "signifies", 243 | "start": 14628, 244 | "end": 15114, 245 | "confidence": 0.99175, 246 | "speaker": "A" 247 | }, 248 | { 249 | "text": "anything,", 250 | "start": 15162, 251 | "end": 15614, 252 | "confidence": 0.99997, 253 | "speaker": "A" 254 | }, 255 | { 256 | "text": "it", 257 | "start": 15732, 258 | "end": 16014, 259 | "confidence": 0.5311, 260 | "speaker": "A" 261 | }, 262 | { 263 | "text": "is", 264 | "start": 16052, 265 | "end": 16590, 266 | "confidence": 0.97364, 267 | "speaker": "A" 268 | }, 269 | { 270 | "text": "to", 271 | "start": 16740, 272 | "end": 17054, 273 | "confidence": 0.76, 274 | "speaker": "A" 275 | }, 276 | { 277 | "text": "honor", 278 | "start": 17092, 279 | "end": 17530, 280 | "confidence": 0.99997, 281 | "speaker": "A" 282 | }, 283 | { 284 | "text": "the", 285 | "start": 17610, 286 | "end": 17806, 287 | "confidence": 1, 288 | "speaker": "A" 289 | }, 290 | { 291 | "text": "women", 292 | "start": 17828, 293 | "end": 18014, 294 | "confidence": 0.99908, 295 | "speaker": "A" 296 | }, 297 | { 298 | "text": "who", 299 | "start": 18052, 300 | "end": 18206, 301 | "confidence": 0.99999, 302 | "speaker": "A" 303 | }, 304 | { 305 | "text": "came", 306 | "start": 18228, 307 | "end": 18414, 308 | "confidence": 1, 309 | "speaker": "A" 310 | }, 311 | { 312 | "text": "before", 313 | "start": 18452, 314 | "end": 18702, 315 | "confidence": 0.99999, 316 | "speaker": "A" 317 | }, 318 | { 319 | "text": "us,", 320 | "start": 18756, 321 | "end": 19310, 322 | "confidence": 0.65, 323 | "speaker": "A" 324 | }, 325 | { 326 | "text": "who", 327 | "start": 19460, 328 | "end": 20014, 329 | "confidence": 0.99997, 330 | "speaker": "A" 331 | }, 332 | { 333 | "text": "were", 334 | "start": 20132, 335 | "end": 20414, 336 | "confidence": 0.99969, 337 | "speaker": "A" 338 | }, 339 | { 340 | "text": "skilled", 341 | "start": 20452, 342 | "end": 20906, 343 | "confidence": 0.60398, 344 | "speaker": "A" 345 | }, 346 | { 347 | "text": "and", 348 | "start": 20938, 349 | "end": 21134, 350 | "confidence": 1, 351 | "speaker": "A" 352 | }, 353 | { 354 | "text": "qualified", 355 | "start": 21172, 356 | "end": 22026, 357 | "confidence": 0.99998, 358 | "speaker": "A" 359 | }, 360 | { 361 | "text": "and", 362 | "start": 22218, 363 | "end": 22622, 364 | "confidence": 0.95, 365 | "speaker": "A" 366 | }, 367 | { 368 | "text": "didn't", 369 | "start": 22676, 370 | "end": 22906, 371 | "confidence": 0.9999, 372 | "speaker": "A" 373 | }, 374 | { 375 | "text": "get", 376 | "start": 22938, 377 | "end": 23278, 378 | "confidence": 0.99997, 379 | "speaker": "A" 380 | }, 381 | { 382 | "text": "the", 383 | "start": 23364, 384 | "end": 23614, 385 | "confidence": 1, 386 | "speaker": "A" 387 | }, 388 | { 389 | "text": "same", 390 | "start": 23652, 391 | "end": 23902, 392 | "confidence": 0.99999, 393 | "speaker": "A" 394 | }, 395 | { 396 | "text": "opportunities", 397 | "start": 23956, 398 | "end": 24442, 399 | "confidence": 0.98808, 400 | "speaker": "A" 401 | }, 402 | { 403 | "text": "that", 404 | "start": 24506, 405 | "end": 24638, 406 | "confidence": 0.99985, 407 | "speaker": "A" 408 | }, 409 | { 410 | "text": "we", 411 | "start": 24644, 412 | "end": 24766, 413 | "confidence": 0.84796, 414 | "speaker": "A" 415 | }, 416 | { 417 | "text": "have", 418 | "start": 24788, 419 | "end": 24998, 420 | "confidence": 0.9963, 421 | "speaker": "A" 422 | }, 423 | { 424 | "text": "today.", 425 | "start": 25044, 426 | "end": 25140, 427 | "confidence": 0.99784, 428 | "speaker": "A" 429 | } 430 | ], 431 | "utterances": null, 432 | "confidence": 0.9493999999999997, 433 | "audio_duration": 25, 434 | "punctuate": true, 435 | "format_text": true, 436 | "dual_channel": false, 437 | "webhook_url": "https://assemblyai-web-production.uc.r.appspot.com/transcript/push", 438 | "webhook_status_code": 204, 439 | "webhook_auth": false, 440 | "webhook_auth_header_name": null, 441 | "speed_boost": false, 442 | "auto_highlights_result": null, 443 | "auto_highlights": false, 444 | "audio_start_from": null, 445 | "audio_end_at": null, 446 | "word_boost": [], 447 | "boost_param": null, 448 | "filter_profanity": false, 449 | "redact_pii": false, 450 | "redact_pii_audio": false, 451 | "redact_pii_audio_quality": null, 452 | "redact_pii_policies": null, 453 | "redact_pii_sub": null, 454 | "speaker_labels": true, 455 | "content_safety": false, 456 | "iab_categories": false, 457 | "content_safety_labels": { 458 | "status": "unavailable", 459 | "results": [], 460 | "summary": {} 461 | }, 462 | "iab_categories_result": { 463 | "status": "unavailable", 464 | "results": [], 465 | "summary": {} 466 | }, 467 | "language_detection": true, 468 | "custom_spelling": null, 469 | "throttled": null, 470 | "auto_chapters": false, 471 | "summarization": false, 472 | "summary_type": null, 473 | "summary_model": null, 474 | "custom_topics": false, 475 | "topics": [], 476 | "speech_threshold": null, 477 | "disfluencies": false, 478 | "sentiment_analysis": false, 479 | "chapters": null, 480 | "sentiment_analysis_results": null, 481 | "entity_detection": false, 482 | "entities": null, 483 | "summary": null, 484 | "speakers_expected": null 485 | } 486 | -------------------------------------------------------------------------------- /test/assemblyai-utterances.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "6a9zvzyx8u-f8fd-4bf4-9614-9497d76c6891", 3 | "language_model": "assemblyai_default", 4 | "acoustic_model": "assemblyai_default", 5 | "language_code": "en", 6 | "status": "completed", 7 | "audio_url": "https://storage.googleapis.com/aai-playground-files-production/a72ebcc7-e6c3-4337-92cc-bc8ca86daa14?Expires=1720606027&GoogleAccessId=aai-playground%40assemblyai-web-production.iam.gserviceaccount.com&Signature=u2A4Zw1kohm7FOiw%2FT48XcPwsB3Fg5n%2Fs%2FQA9R8UOOSCN%2F12h%2FE4KNuEpkj713rpbltqNQ4AZhdkZXqS1zsEqOvj%2BH%2BN1a7GKuHgTJh%2BQKoGlNybTm%2F7bizW9ZcnFWNagpTa9KKgup1Z6WBOZxtvEujF4ERK7wYLM1pGwpEmHCPJuay1B0xoKFkYw2UH%2FLk02ieDymPNZs%2BsZ4YQqdeZwhWvMYHMS%2BG6Lc7DZ4Gu1XOJVRtO9KLK9jBW9Ne3k%2F0gNqRbj8kXd38Q4CuLUXs6MdNr4wtb1uhz8PUlcvEZfWcJwBZOPvP1rvGQVDexV2V4j7wNoDpyF9FdMeiaVs%2Fneg%3D%3D", 8 | "text": "Yeah. As much as it's worth celebrating the first spacewalk with an all female team, I think many of us are looking forward to it just being normal. And I think if it signifies anything, it is to honor the women who came before us, who were skilled and qualified and didn't get the same opportunities that we have today.", 9 | "words": [ 10 | { 11 | "text": "Yeah.", 12 | "start": 170, 13 | "end": 718, 14 | "confidence": 0.9941, 15 | "speaker": "A" 16 | }, 17 | { 18 | "text": "As", 19 | "start": 884, 20 | "end": 1166, 21 | "confidence": 0.99992, 22 | "speaker": "A" 23 | }, 24 | { 25 | "text": "much", 26 | "start": 1188, 27 | "end": 1326, 28 | "confidence": 0.99996, 29 | "speaker": "A" 30 | }, 31 | { 32 | "text": "as", 33 | "start": 1348, 34 | "end": 1822, 35 | "confidence": 0.96266, 36 | "speaker": "A" 37 | }, 38 | { 39 | "text": "it's", 40 | "start": 1956, 41 | "end": 2346, 42 | "confidence": 0.99978, 43 | "speaker": "A" 44 | }, 45 | { 46 | "text": "worth", 47 | "start": 2378, 48 | "end": 2766, 49 | "confidence": 0.99999, 50 | "speaker": "A" 51 | }, 52 | { 53 | "text": "celebrating", 54 | "start": 2868, 55 | "end": 3870, 56 | "confidence": 0.99245, 57 | "speaker": "A" 58 | }, 59 | { 60 | "text": "the", 61 | "start": 4290, 62 | "end": 4654, 63 | "confidence": 0.55, 64 | "speaker": "A" 65 | }, 66 | { 67 | "text": "first", 68 | "start": 4692, 69 | "end": 5134, 70 | "confidence": 1, 71 | "speaker": "A" 72 | }, 73 | { 74 | "text": "spacewalk", 75 | "start": 5252, 76 | "end": 6234, 77 | "confidence": 0.9899, 78 | "speaker": "A" 79 | }, 80 | { 81 | "text": "with", 82 | "start": 6362, 83 | "end": 6606, 84 | "confidence": 0.99998, 85 | "speaker": "A" 86 | }, 87 | { 88 | "text": "an", 89 | "start": 6628, 90 | "end": 6766, 91 | "confidence": 0.99914, 92 | "speaker": "A" 93 | }, 94 | { 95 | "text": "all", 96 | "start": 6788, 97 | "end": 6974, 98 | "confidence": 0.99989, 99 | "speaker": "A" 100 | }, 101 | { 102 | "text": "female", 103 | "start": 7012, 104 | "end": 7354, 105 | "confidence": 0.99989, 106 | "speaker": "A" 107 | }, 108 | { 109 | "text": "team,", 110 | "start": 7402, 111 | "end": 8000, 112 | "confidence": 1, 113 | "speaker": "A" 114 | }, 115 | { 116 | "text": "I", 117 | "start": 8370, 118 | "end": 8686, 119 | "confidence": 1, 120 | "speaker": "A" 121 | }, 122 | { 123 | "text": "think", 124 | "start": 8708, 125 | "end": 8894, 126 | "confidence": 1, 127 | "speaker": "A" 128 | }, 129 | { 130 | "text": "many", 131 | "start": 8932, 132 | "end": 9134, 133 | "confidence": 0.99999, 134 | "speaker": "A" 135 | }, 136 | { 137 | "text": "of", 138 | "start": 9172, 139 | "end": 9326, 140 | "confidence": 1, 141 | "speaker": "A" 142 | }, 143 | { 144 | "text": "us", 145 | "start": 9348, 146 | "end": 9774, 147 | "confidence": 1, 148 | "speaker": "A" 149 | }, 150 | { 151 | "text": "are", 152 | "start": 9892, 153 | "end": 10222, 154 | "confidence": 0.57763, 155 | "speaker": "A" 156 | }, 157 | { 158 | "text": "looking", 159 | "start": 10276, 160 | "end": 10494, 161 | "confidence": 1, 162 | "speaker": "A" 163 | }, 164 | { 165 | "text": "forward", 166 | "start": 10532, 167 | "end": 10734, 168 | "confidence": 0.99999, 169 | "speaker": "A" 170 | }, 171 | { 172 | "text": "to", 173 | "start": 10772, 174 | "end": 10974, 175 | "confidence": 0.96, 176 | "speaker": "A" 177 | }, 178 | { 179 | "text": "it", 180 | "start": 11012, 181 | "end": 11166, 182 | "confidence": 0.99995, 183 | "speaker": "A" 184 | }, 185 | { 186 | "text": "just", 187 | "start": 11188, 188 | "end": 11374, 189 | "confidence": 0.99996, 190 | "speaker": "A" 191 | }, 192 | { 193 | "text": "being", 194 | "start": 11412, 195 | "end": 11806, 196 | "confidence": 0.99998, 197 | "speaker": "A" 198 | }, 199 | { 200 | "text": "normal.", 201 | "start": 11908, 202 | "end": 12666, 203 | "confidence": 0.99999, 204 | "speaker": "A" 205 | }, 206 | { 207 | "text": "And", 208 | "start": 12778, 209 | "end": 13534, 210 | "confidence": 1, 211 | "speaker": "A" 212 | }, 213 | { 214 | "text": "I", 215 | "start": 13732, 216 | "end": 14046, 217 | "confidence": 0.65, 218 | "speaker": "A" 219 | }, 220 | { 221 | "text": "think", 222 | "start": 14068, 223 | "end": 14254, 224 | "confidence": 0.99988, 225 | "speaker": "A" 226 | }, 227 | { 228 | "text": "if", 229 | "start": 14292, 230 | "end": 14446, 231 | "confidence": 0.99998, 232 | "speaker": "A" 233 | }, 234 | { 235 | "text": "it", 236 | "start": 14468, 237 | "end": 14606, 238 | "confidence": 0.99999, 239 | "speaker": "A" 240 | }, 241 | { 242 | "text": "signifies", 243 | "start": 14628, 244 | "end": 15114, 245 | "confidence": 0.99175, 246 | "speaker": "A" 247 | }, 248 | { 249 | "text": "anything,", 250 | "start": 15162, 251 | "end": 15614, 252 | "confidence": 0.99997, 253 | "speaker": "A" 254 | }, 255 | { 256 | "text": "it", 257 | "start": 15732, 258 | "end": 16014, 259 | "confidence": 0.5311, 260 | "speaker": "A" 261 | }, 262 | { 263 | "text": "is", 264 | "start": 16052, 265 | "end": 16590, 266 | "confidence": 0.97364, 267 | "speaker": "A" 268 | }, 269 | { 270 | "text": "to", 271 | "start": 16740, 272 | "end": 17054, 273 | "confidence": 0.76, 274 | "speaker": "A" 275 | }, 276 | { 277 | "text": "honor", 278 | "start": 17092, 279 | "end": 17530, 280 | "confidence": 0.99997, 281 | "speaker": "A" 282 | }, 283 | { 284 | "text": "the", 285 | "start": 17610, 286 | "end": 17806, 287 | "confidence": 1, 288 | "speaker": "A" 289 | }, 290 | { 291 | "text": "women", 292 | "start": 17828, 293 | "end": 18014, 294 | "confidence": 0.99908, 295 | "speaker": "A" 296 | }, 297 | { 298 | "text": "who", 299 | "start": 18052, 300 | "end": 18206, 301 | "confidence": 0.99999, 302 | "speaker": "A" 303 | }, 304 | { 305 | "text": "came", 306 | "start": 18228, 307 | "end": 18414, 308 | "confidence": 1, 309 | "speaker": "A" 310 | }, 311 | { 312 | "text": "before", 313 | "start": 18452, 314 | "end": 18702, 315 | "confidence": 0.99999, 316 | "speaker": "A" 317 | }, 318 | { 319 | "text": "us,", 320 | "start": 18756, 321 | "end": 19310, 322 | "confidence": 0.65, 323 | "speaker": "A" 324 | }, 325 | { 326 | "text": "who", 327 | "start": 19460, 328 | "end": 20014, 329 | "confidence": 0.99997, 330 | "speaker": "A" 331 | }, 332 | { 333 | "text": "were", 334 | "start": 20132, 335 | "end": 20414, 336 | "confidence": 0.99969, 337 | "speaker": "A" 338 | }, 339 | { 340 | "text": "skilled", 341 | "start": 20452, 342 | "end": 20906, 343 | "confidence": 0.60398, 344 | "speaker": "A" 345 | }, 346 | { 347 | "text": "and", 348 | "start": 20938, 349 | "end": 21134, 350 | "confidence": 1, 351 | "speaker": "A" 352 | }, 353 | { 354 | "text": "qualified", 355 | "start": 21172, 356 | "end": 22026, 357 | "confidence": 0.99998, 358 | "speaker": "A" 359 | }, 360 | { 361 | "text": "and", 362 | "start": 22218, 363 | "end": 22622, 364 | "confidence": 0.95, 365 | "speaker": "A" 366 | }, 367 | { 368 | "text": "didn't", 369 | "start": 22676, 370 | "end": 22906, 371 | "confidence": 0.9999, 372 | "speaker": "A" 373 | }, 374 | { 375 | "text": "get", 376 | "start": 22938, 377 | "end": 23278, 378 | "confidence": 0.99997, 379 | "speaker": "A" 380 | }, 381 | { 382 | "text": "the", 383 | "start": 23364, 384 | "end": 23614, 385 | "confidence": 1, 386 | "speaker": "A" 387 | }, 388 | { 389 | "text": "same", 390 | "start": 23652, 391 | "end": 23902, 392 | "confidence": 0.99999, 393 | "speaker": "A" 394 | }, 395 | { 396 | "text": "opportunities", 397 | "start": 23956, 398 | "end": 24442, 399 | "confidence": 0.98808, 400 | "speaker": "A" 401 | }, 402 | { 403 | "text": "that", 404 | "start": 24506, 405 | "end": 24638, 406 | "confidence": 0.99985, 407 | "speaker": "A" 408 | }, 409 | { 410 | "text": "we", 411 | "start": 24644, 412 | "end": 24766, 413 | "confidence": 0.84796, 414 | "speaker": "A" 415 | }, 416 | { 417 | "text": "have", 418 | "start": 24788, 419 | "end": 24998, 420 | "confidence": 0.9963, 421 | "speaker": "A" 422 | }, 423 | { 424 | "text": "today.", 425 | "start": 25044, 426 | "end": 25140, 427 | "confidence": 0.99784, 428 | "speaker": "A" 429 | } 430 | ], 431 | "utterances": [ 432 | { 433 | "confidence": 0.9493999999999997, 434 | "end": 25140, 435 | "speaker": "A", 436 | "start": 170, 437 | "text": "Yeah. As much as it's worth celebrating the first spacewalk with an all female team, I think many of us are looking forward to it just being normal. And I think if it signifies anything, it is to honor the women who came before us, who were skilled and qualified and didn't get the same opportunities that we have today.", 438 | "words": [ 439 | { 440 | "text": "Yeah.", 441 | "start": 170, 442 | "end": 718, 443 | "confidence": 0.9941, 444 | "speaker": "A" 445 | }, 446 | { 447 | "text": "As", 448 | "start": 884, 449 | "end": 1166, 450 | "confidence": 0.99992, 451 | "speaker": "A" 452 | }, 453 | { 454 | "text": "much", 455 | "start": 1188, 456 | "end": 1326, 457 | "confidence": 0.99996, 458 | "speaker": "A" 459 | }, 460 | { 461 | "text": "as", 462 | "start": 1348, 463 | "end": 1822, 464 | "confidence": 0.96266, 465 | "speaker": "A" 466 | }, 467 | { 468 | "text": "it's", 469 | "start": 1956, 470 | "end": 2346, 471 | "confidence": 0.99978, 472 | "speaker": "A" 473 | }, 474 | { 475 | "text": "worth", 476 | "start": 2378, 477 | "end": 2766, 478 | "confidence": 0.99999, 479 | "speaker": "A" 480 | }, 481 | { 482 | "text": "celebrating", 483 | "start": 2868, 484 | "end": 3870, 485 | "confidence": 0.99245, 486 | "speaker": "A" 487 | }, 488 | { 489 | "text": "the", 490 | "start": 4290, 491 | "end": 4654, 492 | "confidence": 0.55, 493 | "speaker": "A" 494 | }, 495 | { 496 | "text": "first", 497 | "start": 4692, 498 | "end": 5134, 499 | "confidence": 1, 500 | "speaker": "A" 501 | }, 502 | { 503 | "text": "spacewalk", 504 | "start": 5252, 505 | "end": 6234, 506 | "confidence": 0.9899, 507 | "speaker": "A" 508 | }, 509 | { 510 | "text": "with", 511 | "start": 6362, 512 | "end": 6606, 513 | "confidence": 0.99998, 514 | "speaker": "A" 515 | }, 516 | { 517 | "text": "an", 518 | "start": 6628, 519 | "end": 6766, 520 | "confidence": 0.99914, 521 | "speaker": "A" 522 | }, 523 | { 524 | "text": "all", 525 | "start": 6788, 526 | "end": 6974, 527 | "confidence": 0.99989, 528 | "speaker": "A" 529 | }, 530 | { 531 | "text": "female", 532 | "start": 7012, 533 | "end": 7354, 534 | "confidence": 0.99989, 535 | "speaker": "A" 536 | }, 537 | { 538 | "text": "team,", 539 | "start": 7402, 540 | "end": 8000, 541 | "confidence": 1, 542 | "speaker": "A" 543 | }, 544 | { 545 | "text": "I", 546 | "start": 8370, 547 | "end": 8686, 548 | "confidence": 1, 549 | "speaker": "A" 550 | }, 551 | { 552 | "text": "think", 553 | "start": 8708, 554 | "end": 8894, 555 | "confidence": 1, 556 | "speaker": "A" 557 | }, 558 | { 559 | "text": "many", 560 | "start": 8932, 561 | "end": 9134, 562 | "confidence": 0.99999, 563 | "speaker": "A" 564 | }, 565 | { 566 | "text": "of", 567 | "start": 9172, 568 | "end": 9326, 569 | "confidence": 1, 570 | "speaker": "A" 571 | }, 572 | { 573 | "text": "us", 574 | "start": 9348, 575 | "end": 9774, 576 | "confidence": 1, 577 | "speaker": "A" 578 | }, 579 | { 580 | "text": "are", 581 | "start": 9892, 582 | "end": 10222, 583 | "confidence": 0.57763, 584 | "speaker": "A" 585 | }, 586 | { 587 | "text": "looking", 588 | "start": 10276, 589 | "end": 10494, 590 | "confidence": 1, 591 | "speaker": "A" 592 | }, 593 | { 594 | "text": "forward", 595 | "start": 10532, 596 | "end": 10734, 597 | "confidence": 0.99999, 598 | "speaker": "A" 599 | }, 600 | { 601 | "text": "to", 602 | "start": 10772, 603 | "end": 10974, 604 | "confidence": 0.96, 605 | "speaker": "A" 606 | }, 607 | { 608 | "text": "it", 609 | "start": 11012, 610 | "end": 11166, 611 | "confidence": 0.99995, 612 | "speaker": "A" 613 | }, 614 | { 615 | "text": "just", 616 | "start": 11188, 617 | "end": 11374, 618 | "confidence": 0.99996, 619 | "speaker": "A" 620 | }, 621 | { 622 | "text": "being", 623 | "start": 11412, 624 | "end": 11806, 625 | "confidence": 0.99998, 626 | "speaker": "A" 627 | }, 628 | { 629 | "text": "normal.", 630 | "start": 11908, 631 | "end": 12666, 632 | "confidence": 0.99999, 633 | "speaker": "A" 634 | }, 635 | { 636 | "text": "And", 637 | "start": 12778, 638 | "end": 13534, 639 | "confidence": 1, 640 | "speaker": "A" 641 | }, 642 | { 643 | "text": "I", 644 | "start": 13732, 645 | "end": 14046, 646 | "confidence": 0.65, 647 | "speaker": "A" 648 | }, 649 | { 650 | "text": "think", 651 | "start": 14068, 652 | "end": 14254, 653 | "confidence": 0.99988, 654 | "speaker": "A" 655 | }, 656 | { 657 | "text": "if", 658 | "start": 14292, 659 | "end": 14446, 660 | "confidence": 0.99998, 661 | "speaker": "A" 662 | }, 663 | { 664 | "text": "it", 665 | "start": 14468, 666 | "end": 14606, 667 | "confidence": 0.99999, 668 | "speaker": "A" 669 | }, 670 | { 671 | "text": "signifies", 672 | "start": 14628, 673 | "end": 15114, 674 | "confidence": 0.99175, 675 | "speaker": "A" 676 | }, 677 | { 678 | "text": "anything,", 679 | "start": 15162, 680 | "end": 15614, 681 | "confidence": 0.99997, 682 | "speaker": "A" 683 | }, 684 | { 685 | "text": "it", 686 | "start": 15732, 687 | "end": 16014, 688 | "confidence": 0.5311, 689 | "speaker": "A" 690 | }, 691 | { 692 | "text": "is", 693 | "start": 16052, 694 | "end": 16590, 695 | "confidence": 0.97364, 696 | "speaker": "A" 697 | }, 698 | { 699 | "text": "to", 700 | "start": 16740, 701 | "end": 17054, 702 | "confidence": 0.76, 703 | "speaker": "A" 704 | }, 705 | { 706 | "text": "honor", 707 | "start": 17092, 708 | "end": 17530, 709 | "confidence": 0.99997, 710 | "speaker": "A" 711 | }, 712 | { 713 | "text": "the", 714 | "start": 17610, 715 | "end": 17806, 716 | "confidence": 1, 717 | "speaker": "A" 718 | }, 719 | { 720 | "text": "women", 721 | "start": 17828, 722 | "end": 18014, 723 | "confidence": 0.99908, 724 | "speaker": "A" 725 | }, 726 | { 727 | "text": "who", 728 | "start": 18052, 729 | "end": 18206, 730 | "confidence": 0.99999, 731 | "speaker": "A" 732 | }, 733 | { 734 | "text": "came", 735 | "start": 18228, 736 | "end": 18414, 737 | "confidence": 1, 738 | "speaker": "A" 739 | }, 740 | { 741 | "text": "before", 742 | "start": 18452, 743 | "end": 18702, 744 | "confidence": 0.99999, 745 | "speaker": "A" 746 | }, 747 | { 748 | "text": "us,", 749 | "start": 18756, 750 | "end": 19310, 751 | "confidence": 0.65, 752 | "speaker": "A" 753 | }, 754 | { 755 | "text": "who", 756 | "start": 19460, 757 | "end": 20014, 758 | "confidence": 0.99997, 759 | "speaker": "A" 760 | }, 761 | { 762 | "text": "were", 763 | "start": 20132, 764 | "end": 20414, 765 | "confidence": 0.99969, 766 | "speaker": "A" 767 | }, 768 | { 769 | "text": "skilled", 770 | "start": 20452, 771 | "end": 20906, 772 | "confidence": 0.60398, 773 | "speaker": "A" 774 | }, 775 | { 776 | "text": "and", 777 | "start": 20938, 778 | "end": 21134, 779 | "confidence": 1, 780 | "speaker": "A" 781 | }, 782 | { 783 | "text": "qualified", 784 | "start": 21172, 785 | "end": 22026, 786 | "confidence": 0.99998, 787 | "speaker": "A" 788 | }, 789 | { 790 | "text": "and", 791 | "start": 22218, 792 | "end": 22622, 793 | "confidence": 0.95, 794 | "speaker": "A" 795 | }, 796 | { 797 | "text": "didn't", 798 | "start": 22676, 799 | "end": 22906, 800 | "confidence": 0.9999, 801 | "speaker": "A" 802 | }, 803 | { 804 | "text": "get", 805 | "start": 22938, 806 | "end": 23278, 807 | "confidence": 0.99997, 808 | "speaker": "A" 809 | }, 810 | { 811 | "text": "the", 812 | "start": 23364, 813 | "end": 23614, 814 | "confidence": 1, 815 | "speaker": "A" 816 | }, 817 | { 818 | "text": "same", 819 | "start": 23652, 820 | "end": 23902, 821 | "confidence": 0.99999, 822 | "speaker": "A" 823 | }, 824 | { 825 | "text": "opportunities", 826 | "start": 23956, 827 | "end": 24442, 828 | "confidence": 0.98808, 829 | "speaker": "A" 830 | }, 831 | { 832 | "text": "that", 833 | "start": 24506, 834 | "end": 24638, 835 | "confidence": 0.99985, 836 | "speaker": "A" 837 | }, 838 | { 839 | "text": "we", 840 | "start": 24644, 841 | "end": 24766, 842 | "confidence": 0.84796, 843 | "speaker": "A" 844 | }, 845 | { 846 | "text": "have", 847 | "start": 24788, 848 | "end": 24998, 849 | "confidence": 0.9963, 850 | "speaker": "A" 851 | }, 852 | { 853 | "text": "today.", 854 | "start": 25044, 855 | "end": 25140, 856 | "confidence": 0.99784, 857 | "speaker": "A" 858 | } 859 | ] 860 | } 861 | ], 862 | "confidence": 0.9493999999999997, 863 | "audio_duration": 25, 864 | "punctuate": true, 865 | "format_text": true, 866 | "dual_channel": false, 867 | "webhook_url": "https://assemblyai-web-production.uc.r.appspot.com/transcript/push", 868 | "webhook_status_code": 204, 869 | "webhook_auth": false, 870 | "webhook_auth_header_name": null, 871 | "speed_boost": false, 872 | "auto_highlights_result": null, 873 | "auto_highlights": false, 874 | "audio_start_from": null, 875 | "audio_end_at": null, 876 | "word_boost": [], 877 | "boost_param": null, 878 | "filter_profanity": false, 879 | "redact_pii": false, 880 | "redact_pii_audio": false, 881 | "redact_pii_audio_quality": null, 882 | "redact_pii_policies": null, 883 | "redact_pii_sub": null, 884 | "speaker_labels": true, 885 | "content_safety": false, 886 | "iab_categories": false, 887 | "content_safety_labels": { 888 | "status": "unavailable", 889 | "results": [], 890 | "summary": {} 891 | }, 892 | "iab_categories_result": { 893 | "status": "unavailable", 894 | "results": [], 895 | "summary": {} 896 | }, 897 | "language_detection": true, 898 | "custom_spelling": null, 899 | "throttled": null, 900 | "auto_chapters": false, 901 | "summarization": false, 902 | "summary_type": null, 903 | "summary_model": null, 904 | "custom_topics": false, 905 | "topics": [], 906 | "speech_threshold": null, 907 | "disfluencies": false, 908 | "sentiment_analysis": false, 909 | "chapters": null, 910 | "sentiment_analysis_results": null, 911 | "entity_detection": false, 912 | "entities": null, 913 | "summary": null, 914 | "speakers_expected": null 915 | } 916 | -------------------------------------------------------------------------------- /test/assemblyai.test.ts: -------------------------------------------------------------------------------- 1 | import assemblyai_transcription from "./assemblyai-transcription.json"; 2 | import assemblyai_utterances from "./assemblyai-utterances.json"; 3 | import { webvtt, srt, AssemblyAiConverter } from "../src/index"; 4 | import { expect } from "chai"; 5 | import srtValidator from "srt-validator"; 6 | 7 | describe("testing assembly transcription formatting", () => { 8 | it("should return a valid webvtt format when provided a transcription though assembly converter", () => { 9 | const result = webvtt(new AssemblyAiConverter(assemblyai_transcription)); 10 | 11 | expect(typeof result).to.equal("string"); 12 | expect(result).to.have.string("NOTE"); 13 | expect(result).to.have.string("Transcription provided by Assembly AI"); 14 | expect(result).to.have.string("Id"); 15 | expect(result).to.have.string("Duration"); 16 | }); 17 | 18 | it("should return a valid srt format when provided a assemblyai transcription though assembly converter", () => { 19 | const result = srt(new AssemblyAiConverter(assemblyai_transcription)); 20 | 21 | expect(srtValidator(result)).to.deep.equal([]); 22 | }); 23 | 24 | it("should return a valid webvtt format when provided a utterances though assembly converter", () => { 25 | const result = webvtt(new AssemblyAiConverter(assemblyai_utterances)); 26 | 27 | expect(typeof result).to.equal("string"); 28 | expect(result).to.have.string("NOTE"); 29 | expect(result).to.have.string("Transcription provided by Assembly AI"); 30 | expect(result).to.have.string("Id"); 31 | expect(result).to.have.string("Duration"); 32 | }); 33 | 34 | it("should return a valid srt format when provided a assemblyai utterances though assembly converter", () => { 35 | const result = srt(new AssemblyAiConverter(assemblyai_utterances)); 36 | 37 | expect(srtValidator(result)).to.deep.equal([]); 38 | }); 39 | }); 40 | -------------------------------------------------------------------------------- /test/deepgram.test.ts: -------------------------------------------------------------------------------- 1 | import dg_transcription from "./dg-transcription.json"; 2 | import dg_utterances from "./dg-transcription.json"; 3 | import dg_speakers from "./dg-speakers-no-utterance.json"; 4 | import { webvtt, srt, DeepgramConverter } from "../src/index"; 5 | import { expect } from "chai"; 6 | import srtValidator from "srt-validator"; 7 | 8 | describe("testing deepgram transcription formatting", () => { 9 | it("should return a valid webvtt format when provided a deepgram transcription", () => { 10 | const result = webvtt(dg_transcription); 11 | 12 | expect(typeof result).to.equal("string"); 13 | expect(result).to.have.string("NOTE"); 14 | expect(result).to.have.string("Transcription provided by Deepgram"); 15 | expect(result).to.have.string("Request Id"); 16 | expect(result).to.have.string("Created"); 17 | expect(result).to.have.string("Duration"); 18 | expect(result).to.have.string("Channels"); 19 | }); 20 | 21 | it("should return a valid srt format when provided a deepgram transcription", () => { 22 | const result = srt(dg_transcription); 23 | 24 | expect(srtValidator(result)).to.deep.equal([]); 25 | }); 26 | 27 | it("should return a valid webvtt format when provided a transcription though the Deepgram converter", () => { 28 | const result = webvtt(new DeepgramConverter(dg_transcription)); 29 | 30 | expect(typeof result).to.equal("string"); 31 | expect(result).to.have.string("NOTE"); 32 | expect(result).to.have.string("Transcription provided by Deepgram"); 33 | expect(result).to.have.string("Request Id"); 34 | expect(result).to.have.string("Created"); 35 | expect(result).to.have.string("Duration"); 36 | expect(result).to.have.string("Channels"); 37 | }); 38 | 39 | it("should return a valid srt format when provided a deepgram transcription though the Deepgram converter", () => { 40 | const result = srt(new DeepgramConverter(dg_transcription)); 41 | 42 | expect(srtValidator(result)).to.deep.equal([]); 43 | }); 44 | 45 | it("should return a valid webvtt format when provided a deepgram utterances", () => { 46 | const result = webvtt(dg_utterances); 47 | 48 | expect(typeof result).to.equal("string"); 49 | expect(result).to.have.string("NOTE"); 50 | expect(result).to.have.string("Transcription provided by Deepgram"); 51 | expect(result).to.have.string("Request Id"); 52 | expect(result).to.have.string("Created"); 53 | expect(result).to.have.string("Duration"); 54 | expect(result).to.have.string("Channels"); 55 | }); 56 | 57 | it("should return a valid srt format when provided a deepgram utterances", () => { 58 | const result = srt(dg_utterances); 59 | 60 | expect(srtValidator(result)).to.deep.equal([]); 61 | }); 62 | 63 | it("should return a valid webvtt format when provided a utterances though the Deepgram converter", () => { 64 | const result = webvtt(new DeepgramConverter(dg_utterances)); 65 | 66 | expect(typeof result).to.equal("string"); 67 | expect(result).to.have.string("NOTE"); 68 | expect(result).to.have.string("Transcription provided by Deepgram"); 69 | expect(result).to.have.string("Request Id"); 70 | expect(result).to.have.string("Created"); 71 | expect(result).to.have.string("Duration"); 72 | expect(result).to.have.string("Channels"); 73 | }); 74 | 75 | it("should return a valid srt format when provided a deepgram utterances though the Deepgram converter", () => { 76 | const result = srt(new DeepgramConverter(dg_utterances)); 77 | 78 | expect(srtValidator(result)).to.deep.equal([]); 79 | }); 80 | 81 | it("should return a valid webvtt format with speaker labels when provided a deepgram transcription", () => { 82 | const result = webvtt(new DeepgramConverter(dg_speakers)); 83 | 84 | expect(typeof result).to.equal("string"); 85 | expect(result).to.have.string("NOTE"); 86 | expect(result).to.have.string("Transcription provided by Deepgram"); 87 | expect(result).to.have.string("Request Id"); 88 | expect(result).to.have.string("Created"); 89 | expect(result).to.have.string("Duration"); 90 | expect(result).to.have.string("Channels"); 91 | expect(result).to.have.string("Channels"); 92 | expect(result).to.have.string(""); 93 | expect(result).to.have.string(""); 94 | expect(result).to.have.string(""); 95 | }); 96 | 97 | it("should return a valid srt format with speaker labels when provided a deepgram transcription", () => { 98 | const result = srt(new DeepgramConverter(dg_speakers)); 99 | 100 | expect(srtValidator(result)).to.deep.equal([]); 101 | }); 102 | }); 103 | -------------------------------------------------------------------------------- /test/dg-speakers-no-utterance.json: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "transaction_key": "deprecated", 4 | "request_id": "e4ac910d-2bd6-4e54-b656-4cb971284bad", 5 | "sha256": "362c1aae4da8c8952bd29fdd5eda25f7c3e92b040b5c31f741a0e0df7c061608", 6 | "created": "2023-11-02T12:59:59.945Z", 7 | "duration": 169.802, 8 | "channels": 1, 9 | "models": ["626940ac-4b66-436c-a319-5015e4018fae"], 10 | "model_info": { 11 | "626940ac-4b66-436c-a319-5015e4018fae": { 12 | "name": "2-ea-nova", 13 | "version": "2023-09-13.17827", 14 | "arch": "nova-2" 15 | } 16 | } 17 | }, 18 | "results": { 19 | "channels": [ 20 | { 21 | "alternatives": [ 22 | { 23 | "transcript": "And, Jessica, Christina, we are so proud of you. You're gonna do great today. We'll be waiting for you here in a couple hours when you get home. I'm gonna hand you over to Stephanie now. Have a great, great EVA. Drew, thank you so much. It's been our pleasure working with you this morning. And I'm working on getting that EV hatch open, And I can report it's opened and stowed. Thank you, Drew. Thank you so much. Jessica, on your DCMs, Take your power switches to bat. Stagger switch throws and expect a warning tone. Final steps before they begin the space walk. Copy. Check display switch functional. Tracy, how important is this this the guiding it through is Sounds like seems like a lot to remember on your own. Absolutely. Take power EV 1, EV 2. Two switches to off, o f f. Christina and Jessica have enough work, with their hands and feet and their brain outside that it really helps to have someone like Stephanie. Connect your SCUs from your DCMs and stow the SCUs in the pouch. So not only does Stephanie 38 AM CST. A little ahead of schedule, about 12 minutes, but, That gets us started on today's historic space walk. Andrew Morgan there wishing the crew luck. We need it in pouch and DCM cover clothes. Copy.", 24 | "confidence": 0.9904323, 25 | "words": [ 26 | { 27 | "word": "and", 28 | "start": 3.04, 29 | "end": 3.54, 30 | "confidence": 0.7863548, 31 | "speaker": 0, 32 | "speaker_confidence": 0.8955078, 33 | "punctuated_word": "And," 34 | }, 35 | { 36 | "word": "jessica", 37 | "start": 4.64, 38 | "end": 5.14, 39 | "confidence": 0.8234066, 40 | "speaker": 0, 41 | "speaker_confidence": 0.8955078, 42 | "punctuated_word": "Jessica," 43 | }, 44 | { 45 | "word": "christina", 46 | "start": 5.2799997, 47 | "end": 5.7799997, 48 | "confidence": 0.99326396, 49 | "speaker": 0, 50 | "speaker_confidence": 0.8955078, 51 | "punctuated_word": "Christina," 52 | }, 53 | { 54 | "word": "we", 55 | "start": 6, 56 | "end": 6.3199997, 57 | "confidence": 0.99968994, 58 | "speaker": 0, 59 | "speaker_confidence": 0.8955078, 60 | "punctuated_word": "we" 61 | }, 62 | { 63 | "word": "are", 64 | "start": 6.3199997, 65 | "end": 6.72, 66 | "confidence": 0.9996382, 67 | "speaker": 0, 68 | "speaker_confidence": 0.8955078, 69 | "punctuated_word": "are" 70 | }, 71 | { 72 | "word": "so", 73 | "start": 6.72, 74 | "end": 7.04, 75 | "confidence": 0.9996512, 76 | "speaker": 0, 77 | "speaker_confidence": 0.8955078, 78 | "punctuated_word": "so" 79 | }, 80 | { 81 | "word": "proud", 82 | "start": 7.04, 83 | "end": 7.2799997, 84 | "confidence": 0.9991953, 85 | "speaker": 0, 86 | "speaker_confidence": 0.8955078, 87 | "punctuated_word": "proud" 88 | }, 89 | { 90 | "word": "of", 91 | "start": 7.2799997, 92 | "end": 7.3599997, 93 | "confidence": 0.99483657, 94 | "speaker": 0, 95 | "speaker_confidence": 0.8955078, 96 | "punctuated_word": "of" 97 | }, 98 | { 99 | "word": "you", 100 | "start": 7.3599997, 101 | "end": 7.585, 102 | "confidence": 0.79497695, 103 | "speaker": 0, 104 | "speaker_confidence": 0.8955078, 105 | "punctuated_word": "you." 106 | }, 107 | { 108 | "word": "you're", 109 | "start": 8.625, 110 | "end": 8.865, 111 | "confidence": 0.9536371, 112 | "speaker": 0, 113 | "speaker_confidence": 0.8442383, 114 | "punctuated_word": "You're" 115 | }, 116 | { 117 | "word": "gonna", 118 | "start": 8.865, 119 | "end": 9.105, 120 | "confidence": 0.9806862, 121 | "speaker": 0, 122 | "speaker_confidence": 0.8442383, 123 | "punctuated_word": "gonna" 124 | }, 125 | { 126 | "word": "do", 127 | "start": 9.105, 128 | "end": 9.265, 129 | "confidence": 0.9814525, 130 | "speaker": 0, 131 | "speaker_confidence": 0.8442383, 132 | "punctuated_word": "do" 133 | }, 134 | { 135 | "word": "great", 136 | "start": 9.265, 137 | "end": 9.425, 138 | "confidence": 0.9994368, 139 | "speaker": 0, 140 | "speaker_confidence": 0.8442383, 141 | "punctuated_word": "great" 142 | }, 143 | { 144 | "word": "today", 145 | "start": 9.425, 146 | "end": 9.745, 147 | "confidence": 0.9969724, 148 | "speaker": 0, 149 | "speaker_confidence": 0.8442383, 150 | "punctuated_word": "today." 151 | }, 152 | { 153 | "word": "we'll", 154 | "start": 9.745, 155 | "end": 10.065001, 156 | "confidence": 0.9978505, 157 | "speaker": 0, 158 | "speaker_confidence": 0.8442383, 159 | "punctuated_word": "We'll" 160 | }, 161 | { 162 | "word": "be", 163 | "start": 10.065001, 164 | "end": 10.145, 165 | "confidence": 0.99844486, 166 | "speaker": 0, 167 | "speaker_confidence": 0.8442383, 168 | "punctuated_word": "be" 169 | }, 170 | { 171 | "word": "waiting", 172 | "start": 10.145, 173 | "end": 10.465, 174 | "confidence": 0.99972373, 175 | "speaker": 0, 176 | "speaker_confidence": 0.8442383, 177 | "punctuated_word": "waiting" 178 | }, 179 | { 180 | "word": "for", 181 | "start": 10.465, 182 | "end": 10.625, 183 | "confidence": 0.99866796, 184 | "speaker": 0, 185 | "speaker_confidence": 0.8442383, 186 | "punctuated_word": "for" 187 | }, 188 | { 189 | "word": "you", 190 | "start": 10.625, 191 | "end": 10.705, 192 | "confidence": 0.99489486, 193 | "speaker": 0, 194 | "speaker_confidence": 0.8442383, 195 | "punctuated_word": "you" 196 | }, 197 | { 198 | "word": "here", 199 | "start": 10.705, 200 | "end": 10.945, 201 | "confidence": 0.9981281, 202 | "speaker": 0, 203 | "speaker_confidence": 0.8442383, 204 | "punctuated_word": "here" 205 | }, 206 | { 207 | "word": "in", 208 | "start": 10.945, 209 | "end": 11.025, 210 | "confidence": 0.9960563, 211 | "speaker": 0, 212 | "speaker_confidence": 0.8442383, 213 | "punctuated_word": "in" 214 | }, 215 | { 216 | "word": "a", 217 | "start": 11.025, 218 | "end": 11.105, 219 | "confidence": 0.99697196, 220 | "speaker": 0, 221 | "speaker_confidence": 0.8442383, 222 | "punctuated_word": "a" 223 | }, 224 | { 225 | "word": "couple", 226 | "start": 11.105, 227 | "end": 11.425, 228 | "confidence": 0.9996561, 229 | "speaker": 0, 230 | "speaker_confidence": 0.8442383, 231 | "punctuated_word": "couple" 232 | }, 233 | { 234 | "word": "hours", 235 | "start": 11.425, 236 | "end": 11.665, 237 | "confidence": 0.6680199, 238 | "speaker": 0, 239 | "speaker_confidence": 0.8442383, 240 | "punctuated_word": "hours" 241 | }, 242 | { 243 | "word": "when", 244 | "start": 11.665, 245 | "end": 11.825, 246 | "confidence": 0.9980165, 247 | "speaker": 0, 248 | "speaker_confidence": 0.8442383, 249 | "punctuated_word": "when" 250 | }, 251 | { 252 | "word": "you", 253 | "start": 11.825, 254 | "end": 11.905, 255 | "confidence": 0.9987274, 256 | "speaker": 0, 257 | "speaker_confidence": 0.8100586, 258 | "punctuated_word": "you" 259 | }, 260 | { 261 | "word": "get", 262 | "start": 11.905, 263 | "end": 12.065001, 264 | "confidence": 0.9994692, 265 | "speaker": 0, 266 | "speaker_confidence": 0.8100586, 267 | "punctuated_word": "get" 268 | }, 269 | { 270 | "word": "home", 271 | "start": 12.065001, 272 | "end": 12.565001, 273 | "confidence": 0.9997841, 274 | "speaker": 0, 275 | "speaker_confidence": 0.8100586, 276 | "punctuated_word": "home." 277 | }, 278 | { 279 | "word": "i'm", 280 | "start": 12.705, 281 | "end": 12.865, 282 | "confidence": 0.99958783, 283 | "speaker": 0, 284 | "speaker_confidence": 0.8100586, 285 | "punctuated_word": "I'm" 286 | }, 287 | { 288 | "word": "gonna", 289 | "start": 12.865, 290 | "end": 13.105, 291 | "confidence": 0.9874566, 292 | "speaker": 0, 293 | "speaker_confidence": 0.8100586, 294 | "punctuated_word": "gonna" 295 | }, 296 | { 297 | "word": "hand", 298 | "start": 13.105, 299 | "end": 13.264999, 300 | "confidence": 0.99902546, 301 | "speaker": 0, 302 | "speaker_confidence": 0.8100586, 303 | "punctuated_word": "hand" 304 | }, 305 | { 306 | "word": "you", 307 | "start": 13.264999, 308 | "end": 13.344999, 309 | "confidence": 0.9968129, 310 | "speaker": 0, 311 | "speaker_confidence": 0.91064453, 312 | "punctuated_word": "you" 313 | }, 314 | { 315 | "word": "over", 316 | "start": 13.344999, 317 | "end": 13.585, 318 | "confidence": 0.9997048, 319 | "speaker": 0, 320 | "speaker_confidence": 0.91064453, 321 | "punctuated_word": "over" 322 | }, 323 | { 324 | "word": "to", 325 | "start": 13.585, 326 | "end": 13.745, 327 | "confidence": 0.99669087, 328 | "speaker": 0, 329 | "speaker_confidence": 0.91064453, 330 | "punctuated_word": "to" 331 | }, 332 | { 333 | "word": "stephanie", 334 | "start": 13.745, 335 | "end": 14.225, 336 | "confidence": 0.9957968, 337 | "speaker": 0, 338 | "speaker_confidence": 0.91064453, 339 | "punctuated_word": "Stephanie" 340 | }, 341 | { 342 | "word": "now", 343 | "start": 14.225, 344 | "end": 14.725, 345 | "confidence": 0.99739647, 346 | "speaker": 0, 347 | "speaker_confidence": 0.91064453, 348 | "punctuated_word": "now." 349 | }, 350 | { 351 | "word": "have", 352 | "start": 15.74, 353 | "end": 15.98, 354 | "confidence": 0.9901866, 355 | "speaker": 0, 356 | "speaker_confidence": 0.91064453, 357 | "punctuated_word": "Have" 358 | }, 359 | { 360 | "word": "a", 361 | "start": 15.98, 362 | "end": 16.06, 363 | "confidence": 0.9986652, 364 | "speaker": 0, 365 | "speaker_confidence": 0.91064453, 366 | "punctuated_word": "a" 367 | }, 368 | { 369 | "word": "great", 370 | "start": 16.06, 371 | "end": 16.46, 372 | "confidence": 0.80707157, 373 | "speaker": 0, 374 | "speaker_confidence": 0.91064453, 375 | "punctuated_word": "great," 376 | }, 377 | { 378 | "word": "great", 379 | "start": 16.46, 380 | "end": 16.779999, 381 | "confidence": 0.999819, 382 | "speaker": 0, 383 | "speaker_confidence": 0.91064453, 384 | "punctuated_word": "great" 385 | }, 386 | { 387 | "word": "eva", 388 | "start": 16.779999, 389 | "end": 17.279999, 390 | "confidence": 0.9924224, 391 | "speaker": 0, 392 | "speaker_confidence": 0.91064453, 393 | "punctuated_word": "EVA." 394 | }, 395 | { 396 | "word": "drew", 397 | "start": 17.66, 398 | "end": 17.9, 399 | "confidence": 0.9672892, 400 | "speaker": 1, 401 | "speaker_confidence": 0.35107422, 402 | "punctuated_word": "Drew," 403 | }, 404 | { 405 | "word": "thank", 406 | "start": 17.9, 407 | "end": 18.14, 408 | "confidence": 0.9988631, 409 | "speaker": 1, 410 | "speaker_confidence": 0.35107422, 411 | "punctuated_word": "thank" 412 | }, 413 | { 414 | "word": "you", 415 | "start": 18.14, 416 | "end": 18.38, 417 | "confidence": 0.99983096, 418 | "speaker": 1, 419 | "speaker_confidence": 0.35107422, 420 | "punctuated_word": "you" 421 | }, 422 | { 423 | "word": "so", 424 | "start": 18.38, 425 | "end": 18.46, 426 | "confidence": 0.99951553, 427 | "speaker": 1, 428 | "speaker_confidence": 0.35107422, 429 | "punctuated_word": "so" 430 | }, 431 | { 432 | "word": "much", 433 | "start": 18.46, 434 | "end": 18.96, 435 | "confidence": 0.9945586, 436 | "speaker": 1, 437 | "speaker_confidence": 0.35107422, 438 | "punctuated_word": "much." 439 | }, 440 | { 441 | "word": "it's", 442 | "start": 19.18, 443 | "end": 19.26, 444 | "confidence": 0.76666546, 445 | "speaker": 1, 446 | "speaker_confidence": 0.26660156, 447 | "punctuated_word": "It's" 448 | }, 449 | { 450 | "word": "been", 451 | "start": 19.26, 452 | "end": 19.42, 453 | "confidence": 0.98577857, 454 | "speaker": 1, 455 | "speaker_confidence": 0.26660156, 456 | "punctuated_word": "been" 457 | }, 458 | { 459 | "word": "our", 460 | "start": 19.42, 461 | "end": 19.58, 462 | "confidence": 0.6620991, 463 | "speaker": 1, 464 | "speaker_confidence": 0.26660156, 465 | "punctuated_word": "our" 466 | }, 467 | { 468 | "word": "pleasure", 469 | "start": 19.58, 470 | "end": 19.82, 471 | "confidence": 0.9998635, 472 | "speaker": 1, 473 | "speaker_confidence": 0.26660156, 474 | "punctuated_word": "pleasure" 475 | }, 476 | { 477 | "word": "working", 478 | "start": 19.82, 479 | "end": 20.06, 480 | "confidence": 0.9966671, 481 | "speaker": 1, 482 | "speaker_confidence": 0.26660156, 483 | "punctuated_word": "working" 484 | }, 485 | { 486 | "word": "with", 487 | "start": 20.06, 488 | "end": 20.22, 489 | "confidence": 0.99926645, 490 | "speaker": 1, 491 | "speaker_confidence": 0.26660156, 492 | "punctuated_word": "with" 493 | }, 494 | { 495 | "word": "you", 496 | "start": 20.22, 497 | "end": 20.46, 498 | "confidence": 0.9997527, 499 | "speaker": 1, 500 | "speaker_confidence": 0.26660156, 501 | "punctuated_word": "you" 502 | }, 503 | { 504 | "word": "this", 505 | "start": 20.46, 506 | "end": 20.619999, 507 | "confidence": 0.99987626, 508 | "speaker": 1, 509 | "speaker_confidence": 0.5917969, 510 | "punctuated_word": "this" 511 | }, 512 | { 513 | "word": "morning", 514 | "start": 20.619999, 515 | "end": 21.02, 516 | "confidence": 0.72153866, 517 | "speaker": 1, 518 | "speaker_confidence": 0.5917969, 519 | "punctuated_word": "morning." 520 | }, 521 | { 522 | "word": "and", 523 | "start": 21.02, 524 | "end": 21.34, 525 | "confidence": 0.99885166, 526 | "speaker": 1, 527 | "speaker_confidence": 0.5917969, 528 | "punctuated_word": "And" 529 | }, 530 | { 531 | "word": "i'm", 532 | "start": 21.34, 533 | "end": 21.42, 534 | "confidence": 0.8978013, 535 | "speaker": 1, 536 | "speaker_confidence": 0.5917969, 537 | "punctuated_word": "I'm" 538 | }, 539 | { 540 | "word": "working", 541 | "start": 21.42, 542 | "end": 21.74, 543 | "confidence": 0.99567527, 544 | "speaker": 1, 545 | "speaker_confidence": 0.5917969, 546 | "punctuated_word": "working" 547 | }, 548 | { 549 | "word": "on", 550 | "start": 21.74, 551 | "end": 21.82, 552 | "confidence": 0.99816906, 553 | "speaker": 1, 554 | "speaker_confidence": 0.5917969, 555 | "punctuated_word": "on" 556 | }, 557 | { 558 | "word": "getting", 559 | "start": 21.82, 560 | "end": 22.14, 561 | "confidence": 0.9975477, 562 | "speaker": 1, 563 | "speaker_confidence": 0.5917969, 564 | "punctuated_word": "getting" 565 | }, 566 | { 567 | "word": "that", 568 | "start": 22.14, 569 | "end": 22.3, 570 | "confidence": 0.8654748, 571 | "speaker": 1, 572 | "speaker_confidence": 0.5917969, 573 | "punctuated_word": "that" 574 | }, 575 | { 576 | "word": "ev", 577 | "start": 22.3, 578 | "end": 22.619999, 579 | "confidence": 0.9558374, 580 | "speaker": 1, 581 | "speaker_confidence": 0.5917969, 582 | "punctuated_word": "EV" 583 | }, 584 | { 585 | "word": "hatch", 586 | "start": 22.619999, 587 | "end": 22.86, 588 | "confidence": 0.9834632, 589 | "speaker": 1, 590 | "speaker_confidence": 0.5917969, 591 | "punctuated_word": "hatch" 592 | }, 593 | { 594 | "word": "open", 595 | "start": 22.86, 596 | "end": 23.36, 597 | "confidence": 0.68613267, 598 | "speaker": 1, 599 | "speaker_confidence": 0.5917969, 600 | "punctuated_word": "open," 601 | }, 602 | { 603 | "word": "and", 604 | "start": 23.675, 605 | "end": 23.755, 606 | "confidence": 0.9480533, 607 | "speaker": 1, 608 | "speaker_confidence": 0.5917969, 609 | "punctuated_word": "And" 610 | }, 611 | { 612 | "word": "i", 613 | "start": 23.755, 614 | "end": 23.994999, 615 | "confidence": 0.8053927, 616 | "speaker": 1, 617 | "speaker_confidence": 0.5917969, 618 | "punctuated_word": "I" 619 | }, 620 | { 621 | "word": "can", 622 | "start": 23.994999, 623 | "end": 24.494999, 624 | "confidence": 0.8771841, 625 | "speaker": 1, 626 | "speaker_confidence": 0.5917969, 627 | "punctuated_word": "can" 628 | }, 629 | { 630 | "word": "report", 631 | "start": 24.875, 632 | "end": 25.375, 633 | "confidence": 0.9579433, 634 | "speaker": 0, 635 | "speaker_confidence": 0.69140625, 636 | "punctuated_word": "report" 637 | }, 638 | { 639 | "word": "it's", 640 | "start": 25.595, 641 | "end": 25.914999, 642 | "confidence": 0.71783984, 643 | "speaker": 0, 644 | "speaker_confidence": 0.69140625, 645 | "punctuated_word": "it's" 646 | }, 647 | { 648 | "word": "opened", 649 | "start": 25.914999, 650 | "end": 26.314999, 651 | "confidence": 0.92149067, 652 | "speaker": 0, 653 | "speaker_confidence": 0.69140625, 654 | "punctuated_word": "opened" 655 | }, 656 | { 657 | "word": "and", 658 | "start": 26.314999, 659 | "end": 26.555, 660 | "confidence": 0.97720546, 661 | "speaker": 0, 662 | "speaker_confidence": 0.69140625, 663 | "punctuated_word": "and" 664 | }, 665 | { 666 | "word": "stowed", 667 | "start": 26.555, 668 | "end": 27.055, 669 | "confidence": 0.9858363, 670 | "speaker": 0, 671 | "speaker_confidence": 0.69140625, 672 | "punctuated_word": "stowed." 673 | }, 674 | { 675 | "word": "thank", 676 | "start": 28.954998, 677 | "end": 29.115, 678 | "confidence": 0.9750897, 679 | "speaker": 1, 680 | "speaker_confidence": 0.52197266, 681 | "punctuated_word": "Thank" 682 | }, 683 | { 684 | "word": "you", 685 | "start": 29.115, 686 | "end": 29.435, 687 | "confidence": 0.9925015, 688 | "speaker": 1, 689 | "speaker_confidence": 0.52197266, 690 | "punctuated_word": "you," 691 | }, 692 | { 693 | "word": "drew", 694 | "start": 29.435, 695 | "end": 29.935, 696 | "confidence": 0.99469817, 697 | "speaker": 1, 698 | "speaker_confidence": 0.52197266, 699 | "punctuated_word": "Drew." 700 | }, 701 | { 702 | "word": "thank", 703 | "start": 29.994999, 704 | "end": 30.234999, 705 | "confidence": 0.93084115, 706 | "speaker": 1, 707 | "speaker_confidence": 0.52197266, 708 | "punctuated_word": "Thank" 709 | }, 710 | { 711 | "word": "you", 712 | "start": 30.234999, 713 | "end": 30.394999, 714 | "confidence": 0.9959132, 715 | "speaker": 1, 716 | "speaker_confidence": 0.52197266, 717 | "punctuated_word": "you" 718 | }, 719 | { 720 | "word": "so", 721 | "start": 30.394999, 722 | "end": 30.634998, 723 | "confidence": 0.99420893, 724 | "speaker": 1, 725 | "speaker_confidence": 0.52197266, 726 | "punctuated_word": "so" 727 | }, 728 | { 729 | "word": "much", 730 | "start": 30.634998, 731 | "end": 31.134998, 732 | "confidence": 0.9834031, 733 | "speaker": 1, 734 | "speaker_confidence": 0.52197266, 735 | "punctuated_word": "much." 736 | }, 737 | { 738 | "word": "jessica", 739 | "start": 36.68, 740 | "end": 37.18, 741 | "confidence": 0.8167216, 742 | "speaker": 1, 743 | "speaker_confidence": 0.6489258, 744 | "punctuated_word": "Jessica," 745 | }, 746 | { 747 | "word": "on", 748 | "start": 38.12, 749 | "end": 38.28, 750 | "confidence": 0.99277747, 751 | "speaker": 1, 752 | "speaker_confidence": 0.6489258, 753 | "punctuated_word": "on" 754 | }, 755 | { 756 | "word": "your", 757 | "start": 38.28, 758 | "end": 38.52, 759 | "confidence": 0.99879825, 760 | "speaker": 1, 761 | "speaker_confidence": 0.6489258, 762 | "punctuated_word": "your" 763 | }, 764 | { 765 | "word": "dcms", 766 | "start": 38.52, 767 | "end": 39.02, 768 | "confidence": 0.8056938, 769 | "speaker": 1, 770 | "speaker_confidence": 0.6489258, 771 | "punctuated_word": "DCMs," 772 | }, 773 | { 774 | "word": "take", 775 | "start": 39.715, 776 | "end": 39.954998, 777 | "confidence": 0.9741114, 778 | "speaker": 1, 779 | "speaker_confidence": 0.6489258, 780 | "punctuated_word": "Take" 781 | }, 782 | { 783 | "word": "your", 784 | "start": 39.954998, 785 | "end": 40.114998, 786 | "confidence": 0.9957404, 787 | "speaker": 1, 788 | "speaker_confidence": 0.6489258, 789 | "punctuated_word": "your" 790 | }, 791 | { 792 | "word": "power", 793 | "start": 40.114998, 794 | "end": 40.434998, 795 | "confidence": 0.9931137, 796 | "speaker": 1, 797 | "speaker_confidence": 0.6489258, 798 | "punctuated_word": "power" 799 | }, 800 | { 801 | "word": "switches", 802 | "start": 40.434998, 803 | "end": 40.835, 804 | "confidence": 0.99475795, 805 | "speaker": 1, 806 | "speaker_confidence": 0.6489258, 807 | "punctuated_word": "switches" 808 | }, 809 | { 810 | "word": "to", 811 | "start": 40.835, 812 | "end": 41.074997, 813 | "confidence": 0.98679477, 814 | "speaker": 1, 815 | "speaker_confidence": 0.6489258, 816 | "punctuated_word": "to" 817 | }, 818 | { 819 | "word": "bat", 820 | "start": 41.074997, 821 | "end": 41.554996, 822 | "confidence": 0.79120785, 823 | "speaker": 1, 824 | "speaker_confidence": 0.6489258, 825 | "punctuated_word": "bat." 826 | }, 827 | { 828 | "word": "stagger", 829 | "start": 41.554996, 830 | "end": 42.035, 831 | "confidence": 0.97454906, 832 | "speaker": 1, 833 | "speaker_confidence": 0.6489258, 834 | "punctuated_word": "Stagger" 835 | }, 836 | { 837 | "word": "switch", 838 | "start": 42.035, 839 | "end": 42.355, 840 | "confidence": 0.8719524, 841 | "speaker": 1, 842 | "speaker_confidence": 0.6489258, 843 | "punctuated_word": "switch" 844 | }, 845 | { 846 | "word": "throws", 847 | "start": 42.355, 848 | "end": 42.675, 849 | "confidence": 0.51696855, 850 | "speaker": 1, 851 | "speaker_confidence": 0.6489258, 852 | "punctuated_word": "throws" 853 | }, 854 | { 855 | "word": "and", 856 | "start": 42.675, 857 | "end": 42.835, 858 | "confidence": 0.94841987, 859 | "speaker": 1, 860 | "speaker_confidence": 0.6489258, 861 | "punctuated_word": "and" 862 | }, 863 | { 864 | "word": "expect", 865 | "start": 42.835, 866 | "end": 43.074997, 867 | "confidence": 0.98649013, 868 | "speaker": 1, 869 | "speaker_confidence": 0.6489258, 870 | "punctuated_word": "expect" 871 | }, 872 | { 873 | "word": "a", 874 | "start": 43.074997, 875 | "end": 43.155, 876 | "confidence": 0.96399397, 877 | "speaker": 1, 878 | "speaker_confidence": 0.6489258, 879 | "punctuated_word": "a" 880 | }, 881 | { 882 | "word": "warning", 883 | "start": 43.155, 884 | "end": 43.475, 885 | "confidence": 0.99403787, 886 | "speaker": 1, 887 | "speaker_confidence": 0.6489258, 888 | "punctuated_word": "warning" 889 | }, 890 | { 891 | "word": "tone", 892 | "start": 43.475, 893 | "end": 43.975, 894 | "confidence": 0.76766914, 895 | "speaker": 1, 896 | "speaker_confidence": 0.6489258, 897 | "punctuated_word": "tone." 898 | }, 899 | { 900 | "word": "final", 901 | "start": 64.3, 902 | "end": 64.7, 903 | "confidence": 0.99158406, 904 | "speaker": 2, 905 | "speaker_confidence": 0.5888672, 906 | "punctuated_word": "Final" 907 | }, 908 | { 909 | "word": "steps", 910 | "start": 64.7, 911 | "end": 64.94, 912 | "confidence": 0.9964393, 913 | "speaker": 2, 914 | "speaker_confidence": 0.5888672, 915 | "punctuated_word": "steps" 916 | }, 917 | { 918 | "word": "before", 919 | "start": 64.94, 920 | "end": 65.1, 921 | "confidence": 0.97725576, 922 | "speaker": 2, 923 | "speaker_confidence": 0.5888672, 924 | "punctuated_word": "before" 925 | }, 926 | { 927 | "word": "they", 928 | "start": 65.1, 929 | "end": 65.26, 930 | "confidence": 0.97114974, 931 | "speaker": 2, 932 | "speaker_confidence": 0.5888672, 933 | "punctuated_word": "they" 934 | }, 935 | { 936 | "word": "begin", 937 | "start": 65.26, 938 | "end": 65.42, 939 | "confidence": 0.9953035, 940 | "speaker": 2, 941 | "speaker_confidence": 0.5888672, 942 | "punctuated_word": "begin" 943 | }, 944 | { 945 | "word": "the", 946 | "start": 65.42, 947 | "end": 65.5, 948 | "confidence": 0.95832896, 949 | "speaker": 2, 950 | "speaker_confidence": 0.5888672, 951 | "punctuated_word": "the" 952 | }, 953 | { 954 | "word": "space", 955 | "start": 65.5, 956 | "end": 65.74, 957 | "confidence": 0.9383034, 958 | "speaker": 2, 959 | "speaker_confidence": 0.5888672, 960 | "punctuated_word": "space" 961 | }, 962 | { 963 | "word": "walk", 964 | "start": 65.74, 965 | "end": 65.979996, 966 | "confidence": 0.63557273, 967 | "speaker": 2, 968 | "speaker_confidence": 0.5888672, 969 | "punctuated_word": "walk." 970 | }, 971 | { 972 | "word": "copy", 973 | "start": 65.979996, 974 | "end": 66.46, 975 | "confidence": 0.9897274, 976 | "speaker": 1, 977 | "speaker_confidence": 0.45263672, 978 | "punctuated_word": "Copy." 979 | }, 980 | { 981 | "word": "check", 982 | "start": 66.46, 983 | "end": 66.78, 984 | "confidence": 0.7870902, 985 | "speaker": 1, 986 | "speaker_confidence": 0.45263672, 987 | "punctuated_word": "Check" 988 | }, 989 | { 990 | "word": "display", 991 | "start": 66.78, 992 | "end": 67.18, 993 | "confidence": 0.9929993, 994 | "speaker": 1, 995 | "speaker_confidence": 0.45263672, 996 | "punctuated_word": "display" 997 | }, 998 | { 999 | "word": "switch", 1000 | "start": 67.18, 1001 | "end": 67.58, 1002 | "confidence": 0.9947807, 1003 | "speaker": 1, 1004 | "speaker_confidence": 0.45263672, 1005 | "punctuated_word": "switch" 1006 | }, 1007 | { 1008 | "word": "functional", 1009 | "start": 67.58, 1010 | "end": 68.08, 1011 | "confidence": 0.9964482, 1012 | "speaker": 1, 1013 | "speaker_confidence": 0.45263672, 1014 | "punctuated_word": "functional." 1015 | }, 1016 | { 1017 | "word": "tracy", 1018 | "start": 73.994995, 1019 | "end": 74.475, 1020 | "confidence": 0.9911248, 1021 | "speaker": 2, 1022 | "speaker_confidence": 0.81933594, 1023 | "punctuated_word": "Tracy," 1024 | }, 1025 | { 1026 | "word": "how", 1027 | "start": 74.475, 1028 | "end": 74.635, 1029 | "confidence": 0.99969697, 1030 | "speaker": 2, 1031 | "speaker_confidence": 0.81933594, 1032 | "punctuated_word": "how" 1033 | }, 1034 | { 1035 | "word": "important", 1036 | "start": 74.635, 1037 | "end": 75.034996, 1038 | "confidence": 0.99974805, 1039 | "speaker": 2, 1040 | "speaker_confidence": 0.81933594, 1041 | "punctuated_word": "important" 1042 | }, 1043 | { 1044 | "word": "is", 1045 | "start": 75.034996, 1046 | "end": 75.195, 1047 | "confidence": 0.99678755, 1048 | "speaker": 2, 1049 | "speaker_confidence": 0.81933594, 1050 | "punctuated_word": "is" 1051 | }, 1052 | { 1053 | "word": "this", 1054 | "start": 75.195, 1055 | "end": 75.435, 1056 | "confidence": 0.91234845, 1057 | "speaker": 2, 1058 | "speaker_confidence": 0.81933594, 1059 | "punctuated_word": "this" 1060 | }, 1061 | { 1062 | "word": "this", 1063 | "start": 75.435, 1064 | "end": 75.935, 1065 | "confidence": 0.78497803, 1066 | "speaker": 2, 1067 | "speaker_confidence": 0.81933594, 1068 | "punctuated_word": "this" 1069 | }, 1070 | { 1071 | "word": "the", 1072 | "start": 76.635, 1073 | "end": 76.875, 1074 | "confidence": 0.7866035, 1075 | "speaker": 2, 1076 | "speaker_confidence": 0.73583984, 1077 | "punctuated_word": "the" 1078 | }, 1079 | { 1080 | "word": "guiding", 1081 | "start": 76.875, 1082 | "end": 77.195, 1083 | "confidence": 0.98410773, 1084 | "speaker": 2, 1085 | "speaker_confidence": 0.73583984, 1086 | "punctuated_word": "guiding" 1087 | }, 1088 | { 1089 | "word": "it", 1090 | "start": 77.195, 1091 | "end": 77.354996, 1092 | "confidence": 0.5906401, 1093 | "speaker": 2, 1094 | "speaker_confidence": 0.73583984, 1095 | "punctuated_word": "it" 1096 | }, 1097 | { 1098 | "word": "through", 1099 | "start": 77.354996, 1100 | "end": 77.515, 1101 | "confidence": 0.92292404, 1102 | "speaker": 2, 1103 | "speaker_confidence": 0.73583984, 1104 | "punctuated_word": "through" 1105 | }, 1106 | { 1107 | "word": "is", 1108 | "start": 77.515, 1109 | "end": 77.92, 1110 | "confidence": 0.5921402, 1111 | "speaker": 2, 1112 | "speaker_confidence": 0.73583984, 1113 | "punctuated_word": "is" 1114 | }, 1115 | { 1116 | "word": "sounds", 1117 | "start": 78, 1118 | "end": 78.159996, 1119 | "confidence": 0.94961774, 1120 | "speaker": 2, 1121 | "speaker_confidence": 0.52441406, 1122 | "punctuated_word": "Sounds" 1123 | }, 1124 | { 1125 | "word": "like", 1126 | "start": 78.159996, 1127 | "end": 78.32, 1128 | "confidence": 0.9767953, 1129 | "speaker": 2, 1130 | "speaker_confidence": 0.52441406, 1131 | "punctuated_word": "like" 1132 | }, 1133 | { 1134 | "word": "seems", 1135 | "start": 78.32, 1136 | "end": 78.4, 1137 | "confidence": 0.6712706, 1138 | "speaker": 2, 1139 | "speaker_confidence": 0.52441406, 1140 | "punctuated_word": "seems" 1141 | }, 1142 | { 1143 | "word": "like", 1144 | "start": 78.4, 1145 | "end": 78.520004, 1146 | "confidence": 0.9990753, 1147 | "speaker": 2, 1148 | "speaker_confidence": 0.52441406, 1149 | "punctuated_word": "like" 1150 | }, 1151 | { 1152 | "word": "a", 1153 | "start": 78.520004, 1154 | "end": 78.64, 1155 | "confidence": 0.99908257, 1156 | "speaker": 2, 1157 | "speaker_confidence": 0.52441406, 1158 | "punctuated_word": "a" 1159 | }, 1160 | { 1161 | "word": "lot", 1162 | "start": 78.64, 1163 | "end": 78.96, 1164 | "confidence": 0.9997156, 1165 | "speaker": 2, 1166 | "speaker_confidence": 0.52441406, 1167 | "punctuated_word": "lot" 1168 | }, 1169 | { 1170 | "word": "to", 1171 | "start": 78.96, 1172 | "end": 79.04, 1173 | "confidence": 0.9964599, 1174 | "speaker": 2, 1175 | "speaker_confidence": 0.57666016, 1176 | "punctuated_word": "to" 1177 | }, 1178 | { 1179 | "word": "remember", 1180 | "start": 79.04, 1181 | "end": 79.439995, 1182 | "confidence": 0.9999615, 1183 | "speaker": 2, 1184 | "speaker_confidence": 0.57666016, 1185 | "punctuated_word": "remember" 1186 | }, 1187 | { 1188 | "word": "on", 1189 | "start": 79.439995, 1190 | "end": 79.52, 1191 | "confidence": 0.9987664, 1192 | "speaker": 2, 1193 | "speaker_confidence": 0.57666016, 1194 | "punctuated_word": "on" 1195 | }, 1196 | { 1197 | "word": "your", 1198 | "start": 79.52, 1199 | "end": 79.68, 1200 | "confidence": 0.9994692, 1201 | "speaker": 2, 1202 | "speaker_confidence": 0.57666016, 1203 | "punctuated_word": "your" 1204 | }, 1205 | { 1206 | "word": "own", 1207 | "start": 79.68, 1208 | "end": 80.159996, 1209 | "confidence": 0.99815387, 1210 | "speaker": 2, 1211 | "speaker_confidence": 0.57666016, 1212 | "punctuated_word": "own." 1213 | }, 1214 | { 1215 | "word": "absolutely", 1216 | "start": 80.159996, 1217 | "end": 80.659996, 1218 | "confidence": 0.9978951, 1219 | "speaker": 1, 1220 | "speaker_confidence": 0.028320312, 1221 | "punctuated_word": "Absolutely." 1222 | }, 1223 | { 1224 | "word": "take", 1225 | "start": 81.759995, 1226 | "end": 82.08, 1227 | "confidence": 0.87874097, 1228 | "speaker": 1, 1229 | "speaker_confidence": 0.62158203, 1230 | "punctuated_word": "Take" 1231 | }, 1232 | { 1233 | "word": "power", 1234 | "start": 82.08, 1235 | "end": 82.479996, 1236 | "confidence": 0.9766742, 1237 | "speaker": 1, 1238 | "speaker_confidence": 0.62158203, 1239 | "punctuated_word": "power" 1240 | }, 1241 | { 1242 | "word": "ev", 1243 | "start": 82.479996, 1244 | "end": 82.799995, 1245 | "confidence": 0.7229012, 1246 | "speaker": 1, 1247 | "speaker_confidence": 0.62158203, 1248 | "punctuated_word": "EV" 1249 | }, 1250 | { 1251 | "word": "1", 1252 | "start": 82.799995, 1253 | "end": 83.119995, 1254 | "confidence": 0.71523225, 1255 | "speaker": 1, 1256 | "speaker_confidence": 0.62158203, 1257 | "punctuated_word": "1," 1258 | }, 1259 | { 1260 | "word": "ev", 1261 | "start": 83.119995, 1262 | "end": 83.439995, 1263 | "confidence": 0.99923253, 1264 | "speaker": 1, 1265 | "speaker_confidence": 0.62158203, 1266 | "punctuated_word": "EV" 1267 | }, 1268 | { 1269 | "word": "2", 1270 | "start": 83.439995, 1271 | "end": 83.939995, 1272 | "confidence": 0.73667246, 1273 | "speaker": 1, 1274 | "speaker_confidence": 0.62158203, 1275 | "punctuated_word": "2." 1276 | }, 1277 | { 1278 | "word": "two", 1279 | "start": 84.08, 1280 | "end": 84.32, 1281 | "confidence": 0.7467183, 1282 | "speaker": 1, 1283 | "speaker_confidence": 0.62158203, 1284 | "punctuated_word": "Two" 1285 | }, 1286 | { 1287 | "word": "switches", 1288 | "start": 84.32, 1289 | "end": 84.72, 1290 | "confidence": 0.9971642, 1291 | "speaker": 1, 1292 | "speaker_confidence": 0.62158203, 1293 | "punctuated_word": "switches" 1294 | }, 1295 | { 1296 | "word": "to", 1297 | "start": 84.72, 1298 | "end": 84.88, 1299 | "confidence": 0.99127346, 1300 | "speaker": 1, 1301 | "speaker_confidence": 0.62158203, 1302 | "punctuated_word": "to" 1303 | }, 1304 | { 1305 | "word": "off", 1306 | "start": 84.88, 1307 | "end": 85.2, 1308 | "confidence": 0.879776, 1309 | "speaker": 1, 1310 | "speaker_confidence": 0.62158203, 1311 | "punctuated_word": "off," 1312 | }, 1313 | { 1314 | "word": "o", 1315 | "start": 85.2, 1316 | "end": 85.36, 1317 | "confidence": 0.86710554, 1318 | "speaker": 1, 1319 | "speaker_confidence": 0.62158203, 1320 | "punctuated_word": "o" 1321 | }, 1322 | { 1323 | "word": "f", 1324 | "start": 85.36, 1325 | "end": 85.52, 1326 | "confidence": 0.9770602, 1327 | "speaker": 1, 1328 | "speaker_confidence": 0.62158203, 1329 | "punctuated_word": "f" 1330 | }, 1331 | { 1332 | "word": "f", 1333 | "start": 85.52, 1334 | "end": 86.02, 1335 | "confidence": 0.7689501, 1336 | "speaker": 1, 1337 | "speaker_confidence": 0.62158203, 1338 | "punctuated_word": "f." 1339 | }, 1340 | { 1341 | "word": "christina", 1342 | "start": 86.32, 1343 | "end": 86.82, 1344 | "confidence": 0.42973718, 1345 | "speaker": 1, 1346 | "speaker_confidence": 0.30078125, 1347 | "punctuated_word": "Christina" 1348 | }, 1349 | { 1350 | "word": "and", 1351 | "start": 87.04, 1352 | "end": 87.54, 1353 | "confidence": 0.9341254, 1354 | "speaker": 1, 1355 | "speaker_confidence": 0.30078125, 1356 | "punctuated_word": "and" 1357 | }, 1358 | { 1359 | "word": "jessica", 1360 | "start": 87.825005, 1361 | "end": 88.145004, 1362 | "confidence": 0.9293494, 1363 | "speaker": 1, 1364 | "speaker_confidence": 0.30078125, 1365 | "punctuated_word": "Jessica" 1366 | }, 1367 | { 1368 | "word": "have", 1369 | "start": 88.145004, 1370 | "end": 88.385, 1371 | "confidence": 0.961047, 1372 | "speaker": 1, 1373 | "speaker_confidence": 0.30078125, 1374 | "punctuated_word": "have" 1375 | }, 1376 | { 1377 | "word": "enough", 1378 | "start": 88.385, 1379 | "end": 88.625, 1380 | "confidence": 0.9993457, 1381 | "speaker": 1, 1382 | "speaker_confidence": 0.30078125, 1383 | "punctuated_word": "enough" 1384 | }, 1385 | { 1386 | "word": "work", 1387 | "start": 88.625, 1388 | "end": 88.945, 1389 | "confidence": 0.93007183, 1390 | "speaker": 1, 1391 | "speaker_confidence": 0.30078125, 1392 | "punctuated_word": "work," 1393 | }, 1394 | { 1395 | "word": "with", 1396 | "start": 89.185, 1397 | "end": 89.425, 1398 | "confidence": 0.9998287, 1399 | "speaker": 1, 1400 | "speaker_confidence": 0.30078125, 1401 | "punctuated_word": "with" 1402 | }, 1403 | { 1404 | "word": "their", 1405 | "start": 89.425, 1406 | "end": 89.585, 1407 | "confidence": 0.959033, 1408 | "speaker": 1, 1409 | "speaker_confidence": 0.30078125, 1410 | "punctuated_word": "their" 1411 | }, 1412 | { 1413 | "word": "hands", 1414 | "start": 89.585, 1415 | "end": 89.905, 1416 | "confidence": 0.9993875, 1417 | "speaker": 1, 1418 | "speaker_confidence": 0.30078125, 1419 | "punctuated_word": "hands" 1420 | }, 1421 | { 1422 | "word": "and", 1423 | "start": 89.905, 1424 | "end": 90.065, 1425 | "confidence": 0.9022108, 1426 | "speaker": 1, 1427 | "speaker_confidence": 0.30078125, 1428 | "punctuated_word": "and" 1429 | }, 1430 | { 1431 | "word": "feet", 1432 | "start": 90.065, 1433 | "end": 90.385, 1434 | "confidence": 0.9904323, 1435 | "speaker": 1, 1436 | "speaker_confidence": 0.30078125, 1437 | "punctuated_word": "feet" 1438 | }, 1439 | { 1440 | "word": "and", 1441 | "start": 90.385, 1442 | "end": 90.545, 1443 | "confidence": 0.90850735, 1444 | "speaker": 1, 1445 | "speaker_confidence": 0.30078125, 1446 | "punctuated_word": "and" 1447 | }, 1448 | { 1449 | "word": "their", 1450 | "start": 90.545, 1451 | "end": 90.705, 1452 | "confidence": 0.990293, 1453 | "speaker": 1, 1454 | "speaker_confidence": 0.30078125, 1455 | "punctuated_word": "their" 1456 | }, 1457 | { 1458 | "word": "brain", 1459 | "start": 90.705, 1460 | "end": 91.025, 1461 | "confidence": 0.9983032, 1462 | "speaker": 1, 1463 | "speaker_confidence": 0.30078125, 1464 | "punctuated_word": "brain" 1465 | }, 1466 | { 1467 | "word": "outside", 1468 | "start": 91.025, 1469 | "end": 91.505, 1470 | "confidence": 0.9995957, 1471 | "speaker": 1, 1472 | "speaker_confidence": 0.30078125, 1473 | "punctuated_word": "outside" 1474 | }, 1475 | { 1476 | "word": "that", 1477 | "start": 91.505, 1478 | "end": 91.825, 1479 | "confidence": 0.97408795, 1480 | "speaker": 1, 1481 | "speaker_confidence": 0.30078125, 1482 | "punctuated_word": "that" 1483 | }, 1484 | { 1485 | "word": "it", 1486 | "start": 91.825, 1487 | "end": 92.065, 1488 | "confidence": 0.9974049, 1489 | "speaker": 1, 1490 | "speaker_confidence": 0.30078125, 1491 | "punctuated_word": "it" 1492 | }, 1493 | { 1494 | "word": "really", 1495 | "start": 92.065, 1496 | "end": 92.305, 1497 | "confidence": 0.99802077, 1498 | "speaker": 1, 1499 | "speaker_confidence": 0.30078125, 1500 | "punctuated_word": "really" 1501 | }, 1502 | { 1503 | "word": "helps", 1504 | "start": 92.305, 1505 | "end": 92.625, 1506 | "confidence": 0.9968123, 1507 | "speaker": 1, 1508 | "speaker_confidence": 0.30078125, 1509 | "punctuated_word": "helps" 1510 | }, 1511 | { 1512 | "word": "to", 1513 | "start": 92.625, 1514 | "end": 92.705, 1515 | "confidence": 0.9985123, 1516 | "speaker": 1, 1517 | "speaker_confidence": 0.30078125, 1518 | "punctuated_word": "to" 1519 | }, 1520 | { 1521 | "word": "have", 1522 | "start": 92.705, 1523 | "end": 92.945, 1524 | "confidence": 0.99825865, 1525 | "speaker": 1, 1526 | "speaker_confidence": 0.30078125, 1527 | "punctuated_word": "have" 1528 | }, 1529 | { 1530 | "word": "someone", 1531 | "start": 92.945, 1532 | "end": 93.345, 1533 | "confidence": 0.9988613, 1534 | "speaker": 1, 1535 | "speaker_confidence": 0.30078125, 1536 | "punctuated_word": "someone" 1537 | }, 1538 | { 1539 | "word": "like", 1540 | "start": 93.345, 1541 | "end": 93.585, 1542 | "confidence": 0.99208343, 1543 | "speaker": 1, 1544 | "speaker_confidence": 0.30078125, 1545 | "punctuated_word": "like" 1546 | }, 1547 | { 1548 | "word": "stephanie", 1549 | "start": 93.585, 1550 | "end": 94.085, 1551 | "confidence": 0.97895503, 1552 | "speaker": 1, 1553 | "speaker_confidence": 0.30078125, 1554 | "punctuated_word": "Stephanie." 1555 | }, 1556 | { 1557 | "word": "connect", 1558 | "start": 111.340004, 1559 | "end": 111.66, 1560 | "confidence": 0.9594904, 1561 | "speaker": 1, 1562 | "speaker_confidence": 0.5917969, 1563 | "punctuated_word": "Connect" 1564 | }, 1565 | { 1566 | "word": "your", 1567 | "start": 111.66, 1568 | "end": 111.740005, 1569 | "confidence": 0.9859958, 1570 | "speaker": 1, 1571 | "speaker_confidence": 0.5917969, 1572 | "punctuated_word": "your" 1573 | }, 1574 | { 1575 | "word": "scus", 1576 | "start": 111.740005, 1577 | "end": 112.22, 1578 | "confidence": 0.90106153, 1579 | "speaker": 1, 1580 | "speaker_confidence": 0.5917969, 1581 | "punctuated_word": "SCUs" 1582 | }, 1583 | { 1584 | "word": "from", 1585 | "start": 112.22, 1586 | "end": 112.46, 1587 | "confidence": 0.99932826, 1588 | "speaker": 1, 1589 | "speaker_confidence": 0.5917969, 1590 | "punctuated_word": "from" 1591 | }, 1592 | { 1593 | "word": "your", 1594 | "start": 112.46, 1595 | "end": 112.700005, 1596 | "confidence": 0.9944344, 1597 | "speaker": 1, 1598 | "speaker_confidence": 0.5917969, 1599 | "punctuated_word": "your" 1600 | }, 1601 | { 1602 | "word": "dcms", 1603 | "start": 112.700005, 1604 | "end": 113.200005, 1605 | "confidence": 0.9511782, 1606 | "speaker": 1, 1607 | "speaker_confidence": 0.5917969, 1608 | "punctuated_word": "DCMs" 1609 | }, 1610 | { 1611 | "word": "and", 1612 | "start": 113.340004, 1613 | "end": 113.58, 1614 | "confidence": 0.92036986, 1615 | "speaker": 1, 1616 | "speaker_confidence": 0.5917969, 1617 | "punctuated_word": "and" 1618 | }, 1619 | { 1620 | "word": "stow", 1621 | "start": 113.58, 1622 | "end": 113.9, 1623 | "confidence": 0.99257284, 1624 | "speaker": 1, 1625 | "speaker_confidence": 0.5917969, 1626 | "punctuated_word": "stow" 1627 | }, 1628 | { 1629 | "word": "the", 1630 | "start": 113.9, 1631 | "end": 114.060005, 1632 | "confidence": 0.9931641, 1633 | "speaker": 1, 1634 | "speaker_confidence": 0.5917969, 1635 | "punctuated_word": "the" 1636 | }, 1637 | { 1638 | "word": "scus", 1639 | "start": 114.060005, 1640 | "end": 114.46, 1641 | "confidence": 0.99340844, 1642 | "speaker": 1, 1643 | "speaker_confidence": 0.5917969, 1644 | "punctuated_word": "SCUs" 1645 | }, 1646 | { 1647 | "word": "in", 1648 | "start": 114.46, 1649 | "end": 114.62, 1650 | "confidence": 0.99844486, 1651 | "speaker": 1, 1652 | "speaker_confidence": 0.5917969, 1653 | "punctuated_word": "in" 1654 | }, 1655 | { 1656 | "word": "the", 1657 | "start": 114.62, 1658 | "end": 114.78, 1659 | "confidence": 0.9981894, 1660 | "speaker": 1, 1661 | "speaker_confidence": 0.5917969, 1662 | "punctuated_word": "the" 1663 | }, 1664 | { 1665 | "word": "pouch", 1666 | "start": 114.78, 1667 | "end": 115.28, 1668 | "confidence": 0.9976152, 1669 | "speaker": 1, 1670 | "speaker_confidence": 0.5917969, 1671 | "punctuated_word": "pouch." 1672 | }, 1673 | { 1674 | "word": "so", 1675 | "start": 119.674995, 1676 | "end": 119.994995, 1677 | "confidence": 0.9672357, 1678 | "speaker": 1, 1679 | "speaker_confidence": 0.24658203, 1680 | "punctuated_word": "So" 1681 | }, 1682 | { 1683 | "word": "not", 1684 | "start": 119.994995, 1685 | "end": 120.155, 1686 | "confidence": 0.9629751, 1687 | "speaker": 1, 1688 | "speaker_confidence": 0.24658203, 1689 | "punctuated_word": "not" 1690 | }, 1691 | { 1692 | "word": "only", 1693 | "start": 120.155, 1694 | "end": 120.395, 1695 | "confidence": 0.9935082, 1696 | "speaker": 1, 1697 | "speaker_confidence": 0.24658203, 1698 | "punctuated_word": "only" 1699 | }, 1700 | { 1701 | "word": "does", 1702 | "start": 120.395, 1703 | "end": 120.715, 1704 | "confidence": 0.9574668, 1705 | "speaker": 1, 1706 | "speaker_confidence": 0.24658203, 1707 | "punctuated_word": "does" 1708 | }, 1709 | { 1710 | "word": "stephanie", 1711 | "start": 120.715, 1712 | "end": 121.215, 1713 | "confidence": 0.9443588, 1714 | "speaker": 1, 1715 | "speaker_confidence": 0.24658203, 1716 | "punctuated_word": "Stephanie" 1717 | }, 1718 | { 1719 | "word": "38", 1720 | "start": 142.40001, 1721 | "end": 142.88, 1722 | "confidence": 0.74324685, 1723 | "speaker": 2, 1724 | "speaker_confidence": 0.7939453, 1725 | "punctuated_word": "38" 1726 | }, 1727 | { 1728 | "word": "am", 1729 | "start": 142.88, 1730 | "end": 143.2, 1731 | "confidence": 0.9961444, 1732 | "speaker": 2, 1733 | "speaker_confidence": 0.7939453, 1734 | "punctuated_word": "AM" 1735 | }, 1736 | { 1737 | "word": "cst", 1738 | "start": 143.2, 1739 | "end": 143.7, 1740 | "confidence": 0.723302, 1741 | "speaker": 2, 1742 | "speaker_confidence": 0.7939453, 1743 | "punctuated_word": "CST." 1744 | }, 1745 | { 1746 | "word": "a", 1747 | "start": 143.76001, 1748 | "end": 143.84, 1749 | "confidence": 0.9972179, 1750 | "speaker": 2, 1751 | "speaker_confidence": 0.7939453, 1752 | "punctuated_word": "A" 1753 | }, 1754 | { 1755 | "word": "little", 1756 | "start": 143.84, 1757 | "end": 144.08, 1758 | "confidence": 0.9999403, 1759 | "speaker": 2, 1760 | "speaker_confidence": 0.7939453, 1761 | "punctuated_word": "little" 1762 | }, 1763 | { 1764 | "word": "ahead", 1765 | "start": 144.08, 1766 | "end": 144.32, 1767 | "confidence": 0.9997861, 1768 | "speaker": 2, 1769 | "speaker_confidence": 0.7939453, 1770 | "punctuated_word": "ahead" 1771 | }, 1772 | { 1773 | "word": "of", 1774 | "start": 144.32, 1775 | "end": 144.40001, 1776 | "confidence": 0.99511707, 1777 | "speaker": 2, 1778 | "speaker_confidence": 0.7939453, 1779 | "punctuated_word": "of" 1780 | }, 1781 | { 1782 | "word": "schedule", 1783 | "start": 144.40001, 1784 | "end": 144.8, 1785 | "confidence": 0.744758, 1786 | "speaker": 2, 1787 | "speaker_confidence": 0.8588867, 1788 | "punctuated_word": "schedule," 1789 | }, 1790 | { 1791 | "word": "about", 1792 | "start": 144.8, 1793 | "end": 145.12, 1794 | "confidence": 0.99961615, 1795 | "speaker": 2, 1796 | "speaker_confidence": 0.8588867, 1797 | "punctuated_word": "about" 1798 | }, 1799 | { 1800 | "word": "12", 1801 | "start": 145.12, 1802 | "end": 145.36, 1803 | "confidence": 0.99992573, 1804 | "speaker": 2, 1805 | "speaker_confidence": 0.8588867, 1806 | "punctuated_word": "12" 1807 | }, 1808 | { 1809 | "word": "minutes", 1810 | "start": 145.36, 1811 | "end": 145.76001, 1812 | "confidence": 0.7284021, 1813 | "speaker": 2, 1814 | "speaker_confidence": 0.8588867, 1815 | "punctuated_word": "minutes," 1816 | }, 1817 | { 1818 | "word": "but", 1819 | "start": 145.76001, 1820 | "end": 146.26001, 1821 | "confidence": 0.83839434, 1822 | "speaker": 2, 1823 | "speaker_confidence": 0.8588867, 1824 | "punctuated_word": "but," 1825 | }, 1826 | { 1827 | "word": "that", 1828 | "start": 146.615, 1829 | "end": 146.855, 1830 | "confidence": 0.99770206, 1831 | "speaker": 2, 1832 | "speaker_confidence": 0.8588867, 1833 | "punctuated_word": "That" 1834 | }, 1835 | { 1836 | "word": "gets", 1837 | "start": 146.855, 1838 | "end": 146.935, 1839 | "confidence": 0.99272984, 1840 | "speaker": 2, 1841 | "speaker_confidence": 0.8588867, 1842 | "punctuated_word": "gets" 1843 | }, 1844 | { 1845 | "word": "us", 1846 | "start": 146.935, 1847 | "end": 147.335, 1848 | "confidence": 0.9986474, 1849 | "speaker": 2, 1850 | "speaker_confidence": 0.8588867, 1851 | "punctuated_word": "us" 1852 | }, 1853 | { 1854 | "word": "started", 1855 | "start": 147.335, 1856 | "end": 147.735, 1857 | "confidence": 0.9983909, 1858 | "speaker": 2, 1859 | "speaker_confidence": 0.8588867, 1860 | "punctuated_word": "started" 1861 | }, 1862 | { 1863 | "word": "on", 1864 | "start": 147.735, 1865 | "end": 147.895, 1866 | "confidence": 0.9995135, 1867 | "speaker": 2, 1868 | "speaker_confidence": 0.8588867, 1869 | "punctuated_word": "on" 1870 | }, 1871 | { 1872 | "word": "today's", 1873 | "start": 147.895, 1874 | "end": 148.295, 1875 | "confidence": 0.9995111, 1876 | "speaker": 2, 1877 | "speaker_confidence": 0.8588867, 1878 | "punctuated_word": "today's" 1879 | }, 1880 | { 1881 | "word": "historic", 1882 | "start": 148.295, 1883 | "end": 148.695, 1884 | "confidence": 0.9903148, 1885 | "speaker": 2, 1886 | "speaker_confidence": 0.8588867, 1887 | "punctuated_word": "historic" 1888 | }, 1889 | { 1890 | "word": "space", 1891 | "start": 148.695, 1892 | "end": 149.015, 1893 | "confidence": 0.7828366, 1894 | "speaker": 2, 1895 | "speaker_confidence": 0.8588867, 1896 | "punctuated_word": "space" 1897 | }, 1898 | { 1899 | "word": "walk", 1900 | "start": 149.015, 1901 | "end": 149.515, 1902 | "confidence": 0.9764955, 1903 | "speaker": 2, 1904 | "speaker_confidence": 0.8588867, 1905 | "punctuated_word": "walk." 1906 | }, 1907 | { 1908 | "word": "andrew", 1909 | "start": 154.23, 1910 | "end": 154.47, 1911 | "confidence": 0.8919341, 1912 | "speaker": 2, 1913 | "speaker_confidence": 0.84814453, 1914 | "punctuated_word": "Andrew" 1915 | }, 1916 | { 1917 | "word": "morgan", 1918 | "start": 154.47, 1919 | "end": 154.87, 1920 | "confidence": 0.81780165, 1921 | "speaker": 2, 1922 | "speaker_confidence": 0.84814453, 1923 | "punctuated_word": "Morgan" 1924 | }, 1925 | { 1926 | "word": "there", 1927 | "start": 154.87, 1928 | "end": 155.35, 1929 | "confidence": 0.99557686, 1930 | "speaker": 2, 1931 | "speaker_confidence": 0.84814453, 1932 | "punctuated_word": "there" 1933 | }, 1934 | { 1935 | "word": "wishing", 1936 | "start": 155.35, 1937 | "end": 155.67, 1938 | "confidence": 0.7803752, 1939 | "speaker": 2, 1940 | "speaker_confidence": 0.84814453, 1941 | "punctuated_word": "wishing" 1942 | }, 1943 | { 1944 | "word": "the", 1945 | "start": 155.67, 1946 | "end": 155.75, 1947 | "confidence": 0.9979663, 1948 | "speaker": 2, 1949 | "speaker_confidence": 0.84814453, 1950 | "punctuated_word": "the" 1951 | }, 1952 | { 1953 | "word": "crew", 1954 | "start": 155.75, 1955 | "end": 156.07, 1956 | "confidence": 0.99959344, 1957 | "speaker": 2, 1958 | "speaker_confidence": 0.84814453, 1959 | "punctuated_word": "crew" 1960 | }, 1961 | { 1962 | "word": "luck", 1963 | "start": 156.07, 1964 | "end": 156.39, 1965 | "confidence": 0.979807, 1966 | "speaker": 2, 1967 | "speaker_confidence": 0.84814453, 1968 | "punctuated_word": "luck." 1969 | }, 1970 | { 1971 | "word": "we", 1972 | "start": 156.39, 1973 | "end": 156.63, 1974 | "confidence": 0.368653, 1975 | "speaker": 1, 1976 | "speaker_confidence": 0.37353516, 1977 | "punctuated_word": "We" 1978 | }, 1979 | { 1980 | "word": "need", 1981 | "start": 156.63, 1982 | "end": 156.79001, 1983 | "confidence": 0.5016291, 1984 | "speaker": 1, 1985 | "speaker_confidence": 0.37353516, 1986 | "punctuated_word": "need" 1987 | }, 1988 | { 1989 | "word": "it", 1990 | "start": 156.79001, 1991 | "end": 157.03, 1992 | "confidence": 0.9642593, 1993 | "speaker": 1, 1994 | "speaker_confidence": 0.37353516, 1995 | "punctuated_word": "it" 1996 | }, 1997 | { 1998 | "word": "in", 1999 | "start": 157.03, 2000 | "end": 157.19, 2001 | "confidence": 0.9738177, 2002 | "speaker": 1, 2003 | "speaker_confidence": 0.37353516, 2004 | "punctuated_word": "in" 2005 | }, 2006 | { 2007 | "word": "pouch", 2008 | "start": 157.19, 2009 | "end": 157.51, 2010 | "confidence": 0.93037397, 2011 | "speaker": 1, 2012 | "speaker_confidence": 0.37353516, 2013 | "punctuated_word": "pouch" 2014 | }, 2015 | { 2016 | "word": "and", 2017 | "start": 157.51, 2018 | "end": 157.67, 2019 | "confidence": 0.8876126, 2020 | "speaker": 1, 2021 | "speaker_confidence": 0.37353516, 2022 | "punctuated_word": "and" 2023 | }, 2024 | { 2025 | "word": "dcm", 2026 | "start": 157.67, 2027 | "end": 158.15, 2028 | "confidence": 0.8154011, 2029 | "speaker": 1, 2030 | "speaker_confidence": 0.37353516, 2031 | "punctuated_word": "DCM" 2032 | }, 2033 | { 2034 | "word": "cover", 2035 | "start": 158.15, 2036 | "end": 158.39, 2037 | "confidence": 0.8024786, 2038 | "speaker": 1, 2039 | "speaker_confidence": 0.37353516, 2040 | "punctuated_word": "cover" 2041 | }, 2042 | { 2043 | "word": "clothes", 2044 | "start": 158.39, 2045 | "end": 158.89, 2046 | "confidence": 0.8616139, 2047 | "speaker": 1, 2048 | "speaker_confidence": 0.37353516, 2049 | "punctuated_word": "clothes." 2050 | }, 2051 | { 2052 | "word": "copy", 2053 | "start": 162.605, 2054 | "end": 163.105, 2055 | "confidence": 0.9375535, 2056 | "speaker": 1, 2057 | "speaker_confidence": 0.057128906, 2058 | "punctuated_word": "Copy." 2059 | } 2060 | ], 2061 | "paragraphs": { 2062 | "transcript": "\nSpeaker 0: And, Jessica, Christina, we are so proud of you. You're gonna do great today. We'll be waiting for you here in a couple hours when you get home. I'm gonna hand you over to Stephanie now. Have a great, great EVA.\n\nSpeaker 1: Drew, thank you so much. It's been our pleasure working with you this morning. And I'm working on getting that EV hatch open, And I can\n\nSpeaker 0: report it's opened and stowed.\n\nSpeaker 1: Thank you, Drew. Thank you so much. Jessica, on your DCMs, Take your power switches to bat. Stagger switch throws and expect a warning tone.\n\nSpeaker 2: Final steps before they begin the space walk.\n\nSpeaker 1: Copy. Check display switch functional.\n\nSpeaker 2: Tracy, how important is this this the guiding it through is Sounds like seems like a lot to remember on your own.\n\nSpeaker 1: Absolutely. Take power EV 1, EV 2. Two switches to off, o f f. Christina and Jessica have enough work, with their hands and feet and their brain outside that it really helps to have someone like Stephanie. Connect your SCUs from your DCMs and stow the SCUs in the pouch.\n\nSo not only does Stephanie\n\nSpeaker 2: 38 AM CST. A little ahead of schedule, about 12 minutes, but, That gets us started on today's historic space walk. Andrew Morgan there wishing the crew luck.\n\nSpeaker 1: We need it in pouch and DCM cover clothes. Copy.", 2063 | "paragraphs": [ 2064 | { 2065 | "sentences": [ 2066 | { 2067 | "text": "And, Jessica, Christina, we are so proud of you.", 2068 | "start": 3.04, 2069 | "end": 7.585 2070 | }, 2071 | { 2072 | "text": "You're gonna do great today.", 2073 | "start": 8.625, 2074 | "end": 9.745 2075 | }, 2076 | { 2077 | "text": "We'll be waiting for you here in a couple hours when you get home.", 2078 | "start": 9.745, 2079 | "end": 12.565001 2080 | }, 2081 | { 2082 | "text": "I'm gonna hand you over to Stephanie now.", 2083 | "start": 12.705, 2084 | "end": 14.725 2085 | }, 2086 | { 2087 | "text": "Have a great, great EVA.", 2088 | "start": 15.74, 2089 | "end": 17.279999 2090 | } 2091 | ], 2092 | "speaker": 0, 2093 | "num_words": 41, 2094 | "start": 3.04, 2095 | "end": 17.279999 2096 | }, 2097 | { 2098 | "sentences": [ 2099 | { 2100 | "text": "Drew, thank you so much.", 2101 | "start": 17.66, 2102 | "end": 18.96 2103 | }, 2104 | { 2105 | "text": "It's been our pleasure working with you this morning.", 2106 | "start": 19.18, 2107 | "end": 21.02 2108 | }, 2109 | { 2110 | "text": "And I'm working on getting that EV hatch open, And I can", 2111 | "start": 21.02, 2112 | "end": 24.494999 2113 | } 2114 | ], 2115 | "speaker": 1, 2116 | "num_words": 26, 2117 | "start": 17.66, 2118 | "end": 24.494999 2119 | }, 2120 | { 2121 | "sentences": [ 2122 | { 2123 | "text": "report it's opened and stowed.", 2124 | "start": 24.875, 2125 | "end": 27.055 2126 | } 2127 | ], 2128 | "speaker": 0, 2129 | "num_words": 5, 2130 | "start": 24.875, 2131 | "end": 27.055 2132 | }, 2133 | { 2134 | "sentences": [ 2135 | { 2136 | "text": "Thank you, Drew.", 2137 | "start": 28.954998, 2138 | "end": 29.935 2139 | }, 2140 | { 2141 | "text": "Thank you so much.", 2142 | "start": 29.994999, 2143 | "end": 31.134998 2144 | }, 2145 | { 2146 | "text": "Jessica, on your DCMs, Take your power switches to bat.", 2147 | "start": 36.68, 2148 | "end": 41.554996 2149 | }, 2150 | { 2151 | "text": "Stagger switch throws and expect a warning tone.", 2152 | "start": 41.554996, 2153 | "end": 43.975 2154 | } 2155 | ], 2156 | "speaker": 1, 2157 | "num_words": 25, 2158 | "start": 28.954998, 2159 | "end": 43.975 2160 | }, 2161 | { 2162 | "sentences": [ 2163 | { 2164 | "text": "Final steps before they begin the space walk.", 2165 | "start": 64.3, 2166 | "end": 65.979996 2167 | } 2168 | ], 2169 | "speaker": 2, 2170 | "num_words": 8, 2171 | "start": 64.3, 2172 | "end": 65.979996 2173 | }, 2174 | { 2175 | "sentences": [ 2176 | { 2177 | "text": "Copy.", 2178 | "start": 65.979996, 2179 | "end": 66.46 2180 | }, 2181 | { 2182 | "text": "Check display switch functional.", 2183 | "start": 66.46, 2184 | "end": 68.08 2185 | } 2186 | ], 2187 | "speaker": 1, 2188 | "num_words": 5, 2189 | "start": 65.979996, 2190 | "end": 68.08 2191 | }, 2192 | { 2193 | "sentences": [ 2194 | { 2195 | "text": "Tracy, how important is this this the guiding it through is Sounds like seems like a lot to remember on your own.", 2196 | "start": 73.994995, 2197 | "end": 80.159996 2198 | } 2199 | ], 2200 | "speaker": 2, 2201 | "num_words": 22, 2202 | "start": 73.994995, 2203 | "end": 80.159996 2204 | }, 2205 | { 2206 | "sentences": [ 2207 | { 2208 | "text": "Absolutely.", 2209 | "start": 80.159996, 2210 | "end": 80.659996 2211 | }, 2212 | { 2213 | "text": "Take power EV 1, EV 2.", 2214 | "start": 81.759995, 2215 | "end": 83.939995 2216 | }, 2217 | { 2218 | "text": "Two switches to off, o f f.", 2219 | "start": 84.08, 2220 | "end": 86.02 2221 | }, 2222 | { 2223 | "text": "Christina and Jessica have enough work, with their hands and feet and their brain outside that it really helps to have someone like Stephanie.", 2224 | "start": 86.32, 2225 | "end": 94.085 2226 | }, 2227 | { 2228 | "text": "Connect your SCUs from your DCMs and stow the SCUs in the pouch.", 2229 | "start": 111.340004, 2230 | "end": 115.28 2231 | } 2232 | ], 2233 | "speaker": 1, 2234 | "num_words": 51, 2235 | "start": 80.159996, 2236 | "end": 115.28 2237 | }, 2238 | { 2239 | "sentences": [ 2240 | { 2241 | "text": "So not only does Stephanie", 2242 | "start": 119.674995, 2243 | "end": 121.215 2244 | } 2245 | ], 2246 | "speaker": 1, 2247 | "num_words": 5, 2248 | "start": 119.674995, 2249 | "end": 121.215 2250 | }, 2251 | { 2252 | "sentences": [ 2253 | { 2254 | "text": "38 AM CST.", 2255 | "start": 142.40001, 2256 | "end": 143.7 2257 | }, 2258 | { 2259 | "text": "A little ahead of schedule, about 12 minutes, but, That gets us started on today's historic space walk.", 2260 | "start": 143.76001, 2261 | "end": 149.515 2262 | }, 2263 | { 2264 | "text": "Andrew Morgan there wishing the crew luck.", 2265 | "start": 154.23, 2266 | "end": 156.39 2267 | } 2268 | ], 2269 | "speaker": 2, 2270 | "num_words": 28, 2271 | "start": 142.40001, 2272 | "end": 156.39 2273 | }, 2274 | { 2275 | "sentences": [ 2276 | { 2277 | "text": "We need it in pouch and DCM cover clothes.", 2278 | "start": 156.39, 2279 | "end": 158.89 2280 | }, 2281 | { 2282 | "text": "Copy.", 2283 | "start": 162.605, 2284 | "end": 163.105 2285 | } 2286 | ], 2287 | "speaker": 1, 2288 | "num_words": 10, 2289 | "start": 156.39, 2290 | "end": 163.105 2291 | } 2292 | ] 2293 | } 2294 | } 2295 | ] 2296 | } 2297 | ] 2298 | } 2299 | } 2300 | -------------------------------------------------------------------------------- /test/dg-transcription.json: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "transaction_key": "deprecated", 4 | "request_id": "686278aa-d315-4aeb-b2a9-713615544366", 5 | "sha256": "154e291ecfa8be6ab8343560bcc109008fa7853eb5372533e8efdefc9b504c33", 6 | "created": "2023-10-27T15:35:56.637Z", 7 | "duration": 25.933313, 8 | "channels": 1, 9 | "models": ["626940ac-4b66-436c-a319-5015e4018fae"], 10 | "model_info": { 11 | "626940ac-4b66-436c-a319-5015e4018fae": { 12 | "name": "2-ea-nova", 13 | "version": "2023-09-13.17827", 14 | "arch": "nova-2" 15 | } 16 | } 17 | }, 18 | "results": { 19 | "channels": [ 20 | { 21 | "alternatives": [ 22 | { 23 | "transcript": "Yeah. As as much as, it's worth celebrating, the first, spacewalk, with an all female team, I think many of us are looking forward to it just being normal and I think if it signifies anything, It is to honor the the women who came before us who, were skilled and qualified, and didn't get the same opportunities that we have today.", 24 | "confidence": 0.9972096, 25 | "words": [ 26 | { 27 | "word": "yeah", 28 | "start": 0.08, 29 | "end": 0.32, 30 | "confidence": 0.9980539, 31 | "punctuated_word": "Yeah." 32 | }, 33 | { 34 | "word": "as", 35 | "start": 0.32, 36 | "end": 0.82, 37 | "confidence": 0.99285626, 38 | "punctuated_word": "As" 39 | }, 40 | { 41 | "word": "as", 42 | "start": 0.88, 43 | "end": 1.04, 44 | "confidence": 0.95991635, 45 | "punctuated_word": "as" 46 | }, 47 | { 48 | "word": "much", 49 | "start": 1.04, 50 | "end": 1.28, 51 | "confidence": 0.9996654, 52 | "punctuated_word": "much" 53 | }, 54 | { 55 | "word": "as", 56 | "start": 1.28, 57 | "end": 1.5999999, 58 | "confidence": 0.98531306, 59 | "punctuated_word": "as," 60 | }, 61 | { 62 | "word": "it's", 63 | "start": 2, 64 | "end": 2.24, 65 | "confidence": 0.9999382, 66 | "punctuated_word": "it's" 67 | }, 68 | { 69 | "word": "worth", 70 | "start": 2.24, 71 | "end": 2.72, 72 | "confidence": 0.99997175, 73 | "punctuated_word": "worth" 74 | }, 75 | { 76 | "word": "celebrating", 77 | "start": 2.72, 78 | "end": 3.22, 79 | "confidence": 0.8966907, 80 | "punctuated_word": "celebrating," 81 | }, 82 | { 83 | "word": "the", 84 | "start": 4.4, 85 | "end": 4.64, 86 | "confidence": 0.99508864, 87 | "punctuated_word": "the" 88 | }, 89 | { 90 | "word": "first", 91 | "start": 4.64, 92 | "end": 4.96, 93 | "confidence": 0.578624, 94 | "punctuated_word": "first," 95 | }, 96 | { 97 | "word": "spacewalk", 98 | "start": 5.2799997, 99 | "end": 5.7799997, 100 | "confidence": 0.9014553, 101 | "punctuated_word": "spacewalk," 102 | }, 103 | { 104 | "word": "with", 105 | "start": 6.3199997, 106 | "end": 6.56, 107 | "confidence": 0.999765, 108 | "punctuated_word": "with" 109 | }, 110 | { 111 | "word": "an", 112 | "start": 6.56, 113 | "end": 6.72, 114 | "confidence": 0.9989334, 115 | "punctuated_word": "an" 116 | }, 117 | { 118 | "word": "all", 119 | "start": 6.72, 120 | "end": 6.96, 121 | "confidence": 0.9977842, 122 | "punctuated_word": "all" 123 | }, 124 | { 125 | "word": "female", 126 | "start": 6.96, 127 | "end": 7.3599997, 128 | "confidence": 0.99980587, 129 | "punctuated_word": "female" 130 | }, 131 | { 132 | "word": "team", 133 | "start": 7.3599997, 134 | "end": 7.8599997, 135 | "confidence": 0.8970409, 136 | "punctuated_word": "team," 137 | }, 138 | { 139 | "word": "i", 140 | "start": 8.475, 141 | "end": 8.555, 142 | "confidence": 0.6100898, 143 | "punctuated_word": "I" 144 | }, 145 | { 146 | "word": "think", 147 | "start": 8.555, 148 | "end": 8.875, 149 | "confidence": 0.9999169, 150 | "punctuated_word": "think" 151 | }, 152 | { 153 | "word": "many", 154 | "start": 8.875, 155 | "end": 9.115001, 156 | "confidence": 0.9989447, 157 | "punctuated_word": "many" 158 | }, 159 | { 160 | "word": "of", 161 | "start": 9.115001, 162 | "end": 9.3550005, 163 | "confidence": 0.99934477, 164 | "punctuated_word": "of" 165 | }, 166 | { 167 | "word": "us", 168 | "start": 9.3550005, 169 | "end": 9.8550005, 170 | "confidence": 0.9985586, 171 | "punctuated_word": "us" 172 | }, 173 | { 174 | "word": "are", 175 | "start": 9.995001, 176 | "end": 10.235001, 177 | "confidence": 0.999551, 178 | "punctuated_word": "are" 179 | }, 180 | { 181 | "word": "looking", 182 | "start": 10.235001, 183 | "end": 10.475, 184 | "confidence": 0.9996606, 185 | "punctuated_word": "looking" 186 | }, 187 | { 188 | "word": "forward", 189 | "start": 10.475, 190 | "end": 10.715, 191 | "confidence": 0.9997713, 192 | "punctuated_word": "forward" 193 | }, 194 | { 195 | "word": "to", 196 | "start": 10.715, 197 | "end": 10.955, 198 | "confidence": 0.99927133, 199 | "punctuated_word": "to" 200 | }, 201 | { 202 | "word": "it", 203 | "start": 10.955, 204 | "end": 11.115001, 205 | "confidence": 0.997619, 206 | "punctuated_word": "it" 207 | }, 208 | { 209 | "word": "just", 210 | "start": 11.115001, 211 | "end": 11.3550005, 212 | "confidence": 0.9978631, 213 | "punctuated_word": "just" 214 | }, 215 | { 216 | "word": "being", 217 | "start": 11.3550005, 218 | "end": 11.8550005, 219 | "confidence": 0.9994981, 220 | "punctuated_word": "being" 221 | }, 222 | { 223 | "word": "normal", 224 | "start": 11.995001, 225 | "end": 12.495001, 226 | "confidence": 0.9978975, 227 | "punctuated_word": "normal" 228 | }, 229 | { 230 | "word": "and", 231 | "start": 12.715, 232 | "end": 13.215, 233 | "confidence": 0.54509896, 234 | "punctuated_word": "and" 235 | }, 236 | { 237 | "word": "i", 238 | "start": 13.835001, 239 | "end": 13.995001, 240 | "confidence": 0.6895846, 241 | "punctuated_word": "I" 242 | }, 243 | { 244 | "word": "think", 245 | "start": 13.995001, 246 | "end": 14.235001, 247 | "confidence": 0.99965954, 248 | "punctuated_word": "think" 249 | }, 250 | { 251 | "word": "if", 252 | "start": 14.235001, 253 | "end": 14.395, 254 | "confidence": 0.9954182, 255 | "punctuated_word": "if" 256 | }, 257 | { 258 | "word": "it", 259 | "start": 14.395, 260 | "end": 14.555, 261 | "confidence": 0.9864966, 262 | "punctuated_word": "it" 263 | }, 264 | { 265 | "word": "signifies", 266 | "start": 14.555, 267 | "end": 15.055, 268 | "confidence": 0.9997447, 269 | "punctuated_word": "signifies" 270 | }, 271 | { 272 | "word": "anything", 273 | "start": 15.115, 274 | "end": 15.615, 275 | "confidence": 0.89247376, 276 | "punctuated_word": "anything," 277 | }, 278 | { 279 | "word": "it", 280 | "start": 15.82, 281 | "end": 15.98, 282 | "confidence": 0.49997056, 283 | "punctuated_word": "It" 284 | }, 285 | { 286 | "word": "is", 287 | "start": 15.98, 288 | "end": 16.48, 289 | "confidence": 0.9991165, 290 | "punctuated_word": "is" 291 | }, 292 | { 293 | "word": "to", 294 | "start": 16.779999, 295 | "end": 17.02, 296 | "confidence": 0.51602215, 297 | "punctuated_word": "to" 298 | }, 299 | { 300 | "word": "honor", 301 | "start": 17.02, 302 | "end": 17.34, 303 | "confidence": 0.99897003, 304 | "punctuated_word": "honor" 305 | }, 306 | { 307 | "word": "the", 308 | "start": 17.34, 309 | "end": 17.66, 310 | "confidence": 0.9979972, 311 | "punctuated_word": "the" 312 | }, 313 | { 314 | "word": "the", 315 | "start": 17.66, 316 | "end": 17.74, 317 | "confidence": 0.7534162, 318 | "punctuated_word": "the" 319 | }, 320 | { 321 | "word": "women", 322 | "start": 17.74, 323 | "end": 18.06, 324 | "confidence": 0.9617373, 325 | "punctuated_word": "women" 326 | }, 327 | { 328 | "word": "who", 329 | "start": 18.06, 330 | "end": 18.22, 331 | "confidence": 0.9968215, 332 | "punctuated_word": "who" 333 | }, 334 | { 335 | "word": "came", 336 | "start": 18.22, 337 | "end": 18.38, 338 | "confidence": 0.9990761, 339 | "punctuated_word": "came" 340 | }, 341 | { 342 | "word": "before", 343 | "start": 18.38, 344 | "end": 18.7, 345 | "confidence": 0.99931896, 346 | "punctuated_word": "before" 347 | }, 348 | { 349 | "word": "us", 350 | "start": 18.7, 351 | "end": 19.2, 352 | "confidence": 0.9972096, 353 | "punctuated_word": "us" 354 | }, 355 | { 356 | "word": "who", 357 | "start": 19.5, 358 | "end": 19.82, 359 | "confidence": 0.7276913, 360 | "punctuated_word": "who," 361 | }, 362 | { 363 | "word": "were", 364 | "start": 20.14, 365 | "end": 20.38, 366 | "confidence": 0.9741669, 367 | "punctuated_word": "were" 368 | }, 369 | { 370 | "word": "skilled", 371 | "start": 20.38, 372 | "end": 20.86, 373 | "confidence": 0.9973028, 374 | "punctuated_word": "skilled" 375 | }, 376 | { 377 | "word": "and", 378 | "start": 20.86, 379 | "end": 21.18, 380 | "confidence": 0.99707186, 381 | "punctuated_word": "and" 382 | }, 383 | { 384 | "word": "qualified", 385 | "start": 21.18, 386 | "end": 21.68, 387 | "confidence": 0.837723, 388 | "punctuated_word": "qualified," 389 | }, 390 | { 391 | "word": "and", 392 | "start": 22.3, 393 | "end": 22.619999, 394 | "confidence": 0.9976847, 395 | "punctuated_word": "and" 396 | }, 397 | { 398 | "word": "didn't", 399 | "start": 22.619999, 400 | "end": 22.86, 401 | "confidence": 0.99618447, 402 | "punctuated_word": "didn't" 403 | }, 404 | { 405 | "word": "get", 406 | "start": 22.86, 407 | "end": 23.26, 408 | "confidence": 0.9957491, 409 | "punctuated_word": "get" 410 | }, 411 | { 412 | "word": "the", 413 | "start": 23.26, 414 | "end": 23.58, 415 | "confidence": 0.7927007, 416 | "punctuated_word": "the" 417 | }, 418 | { 419 | "word": "same", 420 | "start": 23.58, 421 | "end": 23.9, 422 | "confidence": 0.7259752, 423 | "punctuated_word": "same" 424 | }, 425 | { 426 | "word": "opportunities", 427 | "start": 23.9, 428 | "end": 24.4, 429 | "confidence": 0.9914248, 430 | "punctuated_word": "opportunities" 431 | }, 432 | { 433 | "word": "that", 434 | "start": 24.46, 435 | "end": 24.619999, 436 | "confidence": 0.97425294, 437 | "punctuated_word": "that" 438 | }, 439 | { 440 | "word": "we", 441 | "start": 24.619999, 442 | "end": 24.779999, 443 | "confidence": 0.98887795, 444 | "punctuated_word": "we" 445 | }, 446 | { 447 | "word": "have", 448 | "start": 24.779999, 449 | "end": 24.939999, 450 | "confidence": 0.9769957, 451 | "punctuated_word": "have" 452 | }, 453 | { 454 | "word": "today", 455 | "start": 24.939999, 456 | "end": 25.439999, 457 | "confidence": 0.725032, 458 | "punctuated_word": "today." 459 | } 460 | ], 461 | "paragraphs": { 462 | "transcript": "\nYeah. As as much as, it's worth celebrating, the first, spacewalk, with an all female team, I think many of us are looking forward to it just being normal and I think if it signifies anything, It is to honor the the women who came before us who, were skilled and qualified, and didn't get the same opportunities that we have today.", 463 | "paragraphs": [ 464 | { 465 | "sentences": [ 466 | { 467 | "text": "Yeah.", 468 | "start": 0.08, 469 | "end": 0.32 470 | }, 471 | { 472 | "text": "As as much as, it's worth celebrating, the first, spacewalk, with an all female team, I think many of us are looking forward to it just being normal and I think if it signifies anything, It is to honor the the women who came before us who, were skilled and qualified, and didn't get the same opportunities that we have today.", 473 | "start": 0.32, 474 | "end": 25.439999 475 | } 476 | ], 477 | "num_words": 62, 478 | "start": 0.08, 479 | "end": 25.439999 480 | } 481 | ] 482 | } 483 | } 484 | ] 485 | } 486 | ] 487 | } 488 | } 489 | -------------------------------------------------------------------------------- /test/dg-utterances.json: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "transaction_key": "deprecated", 4 | "request_id": "686278aa-d315-4aeb-b2a9-713615544366", 5 | "sha256": "154e291ecfa8be6ab8343560bcc109008fa7853eb5372533e8efdefc9b504c33", 6 | "created": "2023-10-27T15:35:56.637Z", 7 | "duration": 25.933313, 8 | "channels": 1, 9 | "models": ["626940ac-4b66-436c-a319-5015e4018fae"], 10 | "model_info": { 11 | "626940ac-4b66-436c-a319-5015e4018fae": { 12 | "name": "2-ea-nova", 13 | "version": "2023-09-13.17827", 14 | "arch": "nova-2" 15 | } 16 | } 17 | }, 18 | "results": { 19 | "channels": [ 20 | { 21 | "alternatives": [ 22 | { 23 | "transcript": "Yeah. As as much as, it's worth celebrating, the first, spacewalk, with an all female team, I think many of us are looking forward to it just being normal and I think if it signifies anything, It is to honor the the women who came before us who, were skilled and qualified, and didn't get the same opportunities that we have today.", 24 | "confidence": 0.9972096, 25 | "words": [ 26 | { 27 | "word": "yeah", 28 | "start": 0.08, 29 | "end": 0.32, 30 | "confidence": 0.9980539, 31 | "punctuated_word": "Yeah." 32 | }, 33 | { 34 | "word": "as", 35 | "start": 0.32, 36 | "end": 0.82, 37 | "confidence": 0.99285626, 38 | "punctuated_word": "As" 39 | }, 40 | { 41 | "word": "as", 42 | "start": 0.88, 43 | "end": 1.04, 44 | "confidence": 0.95991635, 45 | "punctuated_word": "as" 46 | }, 47 | { 48 | "word": "much", 49 | "start": 1.04, 50 | "end": 1.28, 51 | "confidence": 0.9996654, 52 | "punctuated_word": "much" 53 | }, 54 | { 55 | "word": "as", 56 | "start": 1.28, 57 | "end": 1.5999999, 58 | "confidence": 0.98531306, 59 | "punctuated_word": "as," 60 | }, 61 | { 62 | "word": "it's", 63 | "start": 2, 64 | "end": 2.24, 65 | "confidence": 0.9999382, 66 | "punctuated_word": "it's" 67 | }, 68 | { 69 | "word": "worth", 70 | "start": 2.24, 71 | "end": 2.72, 72 | "confidence": 0.99997175, 73 | "punctuated_word": "worth" 74 | }, 75 | { 76 | "word": "celebrating", 77 | "start": 2.72, 78 | "end": 3.22, 79 | "confidence": 0.8966907, 80 | "punctuated_word": "celebrating," 81 | }, 82 | { 83 | "word": "the", 84 | "start": 4.4, 85 | "end": 4.64, 86 | "confidence": 0.99508864, 87 | "punctuated_word": "the" 88 | }, 89 | { 90 | "word": "first", 91 | "start": 4.64, 92 | "end": 4.96, 93 | "confidence": 0.578624, 94 | "punctuated_word": "first," 95 | }, 96 | { 97 | "word": "spacewalk", 98 | "start": 5.2799997, 99 | "end": 5.7799997, 100 | "confidence": 0.9014553, 101 | "punctuated_word": "spacewalk," 102 | }, 103 | { 104 | "word": "with", 105 | "start": 6.3199997, 106 | "end": 6.56, 107 | "confidence": 0.999765, 108 | "punctuated_word": "with" 109 | }, 110 | { 111 | "word": "an", 112 | "start": 6.56, 113 | "end": 6.72, 114 | "confidence": 0.9989334, 115 | "punctuated_word": "an" 116 | }, 117 | { 118 | "word": "all", 119 | "start": 6.72, 120 | "end": 6.96, 121 | "confidence": 0.9977842, 122 | "punctuated_word": "all" 123 | }, 124 | { 125 | "word": "female", 126 | "start": 6.96, 127 | "end": 7.3599997, 128 | "confidence": 0.99980587, 129 | "punctuated_word": "female" 130 | }, 131 | { 132 | "word": "team", 133 | "start": 7.3599997, 134 | "end": 7.8599997, 135 | "confidence": 0.8970409, 136 | "punctuated_word": "team," 137 | }, 138 | { 139 | "word": "i", 140 | "start": 8.475, 141 | "end": 8.555, 142 | "confidence": 0.6100898, 143 | "punctuated_word": "I" 144 | }, 145 | { 146 | "word": "think", 147 | "start": 8.555, 148 | "end": 8.875, 149 | "confidence": 0.9999169, 150 | "punctuated_word": "think" 151 | }, 152 | { 153 | "word": "many", 154 | "start": 8.875, 155 | "end": 9.115001, 156 | "confidence": 0.9989447, 157 | "punctuated_word": "many" 158 | }, 159 | { 160 | "word": "of", 161 | "start": 9.115001, 162 | "end": 9.3550005, 163 | "confidence": 0.99934477, 164 | "punctuated_word": "of" 165 | }, 166 | { 167 | "word": "us", 168 | "start": 9.3550005, 169 | "end": 9.8550005, 170 | "confidence": 0.9985586, 171 | "punctuated_word": "us" 172 | }, 173 | { 174 | "word": "are", 175 | "start": 9.995001, 176 | "end": 10.235001, 177 | "confidence": 0.999551, 178 | "punctuated_word": "are" 179 | }, 180 | { 181 | "word": "looking", 182 | "start": 10.235001, 183 | "end": 10.475, 184 | "confidence": 0.9996606, 185 | "punctuated_word": "looking" 186 | }, 187 | { 188 | "word": "forward", 189 | "start": 10.475, 190 | "end": 10.715, 191 | "confidence": 0.9997713, 192 | "punctuated_word": "forward" 193 | }, 194 | { 195 | "word": "to", 196 | "start": 10.715, 197 | "end": 10.955, 198 | "confidence": 0.99927133, 199 | "punctuated_word": "to" 200 | }, 201 | { 202 | "word": "it", 203 | "start": 10.955, 204 | "end": 11.115001, 205 | "confidence": 0.997619, 206 | "punctuated_word": "it" 207 | }, 208 | { 209 | "word": "just", 210 | "start": 11.115001, 211 | "end": 11.3550005, 212 | "confidence": 0.9978631, 213 | "punctuated_word": "just" 214 | }, 215 | { 216 | "word": "being", 217 | "start": 11.3550005, 218 | "end": 11.8550005, 219 | "confidence": 0.9994981, 220 | "punctuated_word": "being" 221 | }, 222 | { 223 | "word": "normal", 224 | "start": 11.995001, 225 | "end": 12.495001, 226 | "confidence": 0.9978975, 227 | "punctuated_word": "normal" 228 | }, 229 | { 230 | "word": "and", 231 | "start": 12.715, 232 | "end": 13.215, 233 | "confidence": 0.54509896, 234 | "punctuated_word": "and" 235 | }, 236 | { 237 | "word": "i", 238 | "start": 13.835001, 239 | "end": 13.995001, 240 | "confidence": 0.6895846, 241 | "punctuated_word": "I" 242 | }, 243 | { 244 | "word": "think", 245 | "start": 13.995001, 246 | "end": 14.235001, 247 | "confidence": 0.99965954, 248 | "punctuated_word": "think" 249 | }, 250 | { 251 | "word": "if", 252 | "start": 14.235001, 253 | "end": 14.395, 254 | "confidence": 0.9954182, 255 | "punctuated_word": "if" 256 | }, 257 | { 258 | "word": "it", 259 | "start": 14.395, 260 | "end": 14.555, 261 | "confidence": 0.9864966, 262 | "punctuated_word": "it" 263 | }, 264 | { 265 | "word": "signifies", 266 | "start": 14.555, 267 | "end": 15.055, 268 | "confidence": 0.9997447, 269 | "punctuated_word": "signifies" 270 | }, 271 | { 272 | "word": "anything", 273 | "start": 15.115, 274 | "end": 15.615, 275 | "confidence": 0.89247376, 276 | "punctuated_word": "anything," 277 | }, 278 | { 279 | "word": "it", 280 | "start": 15.82, 281 | "end": 15.98, 282 | "confidence": 0.49997056, 283 | "punctuated_word": "It" 284 | }, 285 | { 286 | "word": "is", 287 | "start": 15.98, 288 | "end": 16.48, 289 | "confidence": 0.9991165, 290 | "punctuated_word": "is" 291 | }, 292 | { 293 | "word": "to", 294 | "start": 16.779999, 295 | "end": 17.02, 296 | "confidence": 0.51602215, 297 | "punctuated_word": "to" 298 | }, 299 | { 300 | "word": "honor", 301 | "start": 17.02, 302 | "end": 17.34, 303 | "confidence": 0.99897003, 304 | "punctuated_word": "honor" 305 | }, 306 | { 307 | "word": "the", 308 | "start": 17.34, 309 | "end": 17.66, 310 | "confidence": 0.9979972, 311 | "punctuated_word": "the" 312 | }, 313 | { 314 | "word": "the", 315 | "start": 17.66, 316 | "end": 17.74, 317 | "confidence": 0.7534162, 318 | "punctuated_word": "the" 319 | }, 320 | { 321 | "word": "women", 322 | "start": 17.74, 323 | "end": 18.06, 324 | "confidence": 0.9617373, 325 | "punctuated_word": "women" 326 | }, 327 | { 328 | "word": "who", 329 | "start": 18.06, 330 | "end": 18.22, 331 | "confidence": 0.9968215, 332 | "punctuated_word": "who" 333 | }, 334 | { 335 | "word": "came", 336 | "start": 18.22, 337 | "end": 18.38, 338 | "confidence": 0.9990761, 339 | "punctuated_word": "came" 340 | }, 341 | { 342 | "word": "before", 343 | "start": 18.38, 344 | "end": 18.7, 345 | "confidence": 0.99931896, 346 | "punctuated_word": "before" 347 | }, 348 | { 349 | "word": "us", 350 | "start": 18.7, 351 | "end": 19.2, 352 | "confidence": 0.9972096, 353 | "punctuated_word": "us" 354 | }, 355 | { 356 | "word": "who", 357 | "start": 19.5, 358 | "end": 19.82, 359 | "confidence": 0.7276913, 360 | "punctuated_word": "who," 361 | }, 362 | { 363 | "word": "were", 364 | "start": 20.14, 365 | "end": 20.38, 366 | "confidence": 0.9741669, 367 | "punctuated_word": "were" 368 | }, 369 | { 370 | "word": "skilled", 371 | "start": 20.38, 372 | "end": 20.86, 373 | "confidence": 0.9973028, 374 | "punctuated_word": "skilled" 375 | }, 376 | { 377 | "word": "and", 378 | "start": 20.86, 379 | "end": 21.18, 380 | "confidence": 0.99707186, 381 | "punctuated_word": "and" 382 | }, 383 | { 384 | "word": "qualified", 385 | "start": 21.18, 386 | "end": 21.68, 387 | "confidence": 0.837723, 388 | "punctuated_word": "qualified," 389 | }, 390 | { 391 | "word": "and", 392 | "start": 22.3, 393 | "end": 22.619999, 394 | "confidence": 0.9976847, 395 | "punctuated_word": "and" 396 | }, 397 | { 398 | "word": "didn't", 399 | "start": 22.619999, 400 | "end": 22.86, 401 | "confidence": 0.99618447, 402 | "punctuated_word": "didn't" 403 | }, 404 | { 405 | "word": "get", 406 | "start": 22.86, 407 | "end": 23.26, 408 | "confidence": 0.9957491, 409 | "punctuated_word": "get" 410 | }, 411 | { 412 | "word": "the", 413 | "start": 23.26, 414 | "end": 23.58, 415 | "confidence": 0.7927007, 416 | "punctuated_word": "the" 417 | }, 418 | { 419 | "word": "same", 420 | "start": 23.58, 421 | "end": 23.9, 422 | "confidence": 0.7259752, 423 | "punctuated_word": "same" 424 | }, 425 | { 426 | "word": "opportunities", 427 | "start": 23.9, 428 | "end": 24.4, 429 | "confidence": 0.9914248, 430 | "punctuated_word": "opportunities" 431 | }, 432 | { 433 | "word": "that", 434 | "start": 24.46, 435 | "end": 24.619999, 436 | "confidence": 0.97425294, 437 | "punctuated_word": "that" 438 | }, 439 | { 440 | "word": "we", 441 | "start": 24.619999, 442 | "end": 24.779999, 443 | "confidence": 0.98887795, 444 | "punctuated_word": "we" 445 | }, 446 | { 447 | "word": "have", 448 | "start": 24.779999, 449 | "end": 24.939999, 450 | "confidence": 0.9769957, 451 | "punctuated_word": "have" 452 | }, 453 | { 454 | "word": "today", 455 | "start": 24.939999, 456 | "end": 25.439999, 457 | "confidence": 0.725032, 458 | "punctuated_word": "today." 459 | } 460 | ], 461 | "paragraphs": { 462 | "transcript": "\nYeah. As as much as, it's worth celebrating, the first, spacewalk, with an all female team, I think many of us are looking forward to it just being normal and I think if it signifies anything, It is to honor the the women who came before us who, were skilled and qualified, and didn't get the same opportunities that we have today.", 463 | "paragraphs": [ 464 | { 465 | "sentences": [ 466 | { 467 | "text": "Yeah.", 468 | "start": 0.08, 469 | "end": 0.32 470 | }, 471 | { 472 | "text": "As as much as, it's worth celebrating, the first, spacewalk, with an all female team, I think many of us are looking forward to it just being normal and I think if it signifies anything, It is to honor the the women who came before us who, were skilled and qualified, and didn't get the same opportunities that we have today.", 473 | "start": 0.32, 474 | "end": 25.439999 475 | } 476 | ], 477 | "num_words": 62, 478 | "start": 0.08, 479 | "end": 25.439999 480 | } 481 | ] 482 | } 483 | } 484 | ] 485 | } 486 | ], 487 | "utterances": [ 488 | { 489 | "start": 0.08, 490 | "end": 3.22, 491 | "confidence": 0.9790507, 492 | "channel": 0, 493 | "transcript": "Yeah. As as much as, it's worth celebrating,", 494 | "words": [ 495 | { 496 | "word": "yeah", 497 | "start": 0.08, 498 | "end": 0.32, 499 | "confidence": 0.9980539, 500 | "punctuated_word": "Yeah." 501 | }, 502 | { 503 | "word": "as", 504 | "start": 0.32, 505 | "end": 0.82, 506 | "confidence": 0.99285626, 507 | "punctuated_word": "As" 508 | }, 509 | { 510 | "word": "as", 511 | "start": 0.88, 512 | "end": 1.04, 513 | "confidence": 0.95991635, 514 | "punctuated_word": "as" 515 | }, 516 | { 517 | "word": "much", 518 | "start": 1.04, 519 | "end": 1.28, 520 | "confidence": 0.9996654, 521 | "punctuated_word": "much" 522 | }, 523 | { 524 | "word": "as", 525 | "start": 1.28, 526 | "end": 1.5999999, 527 | "confidence": 0.98531306, 528 | "punctuated_word": "as," 529 | }, 530 | { 531 | "word": "it's", 532 | "start": 2, 533 | "end": 2.24, 534 | "confidence": 0.9999382, 535 | "punctuated_word": "it's" 536 | }, 537 | { 538 | "word": "worth", 539 | "start": 2.24, 540 | "end": 2.72, 541 | "confidence": 0.99997175, 542 | "punctuated_word": "worth" 543 | }, 544 | { 545 | "word": "celebrating", 546 | "start": 2.72, 547 | "end": 3.22, 548 | "confidence": 0.8966907, 549 | "punctuated_word": "celebrating," 550 | } 551 | ], 552 | "id": "d3bb4463-e3aa-4411-a664-85f3685e03f9" 553 | }, 554 | { 555 | "start": 4.4, 556 | "end": 5.7799997, 557 | "confidence": 0.8250559, 558 | "channel": 0, 559 | "transcript": "the first, spacewalk,", 560 | "words": [ 561 | { 562 | "word": "the", 563 | "start": 4.4, 564 | "end": 4.64, 565 | "confidence": 0.99508864, 566 | "punctuated_word": "the" 567 | }, 568 | { 569 | "word": "first", 570 | "start": 4.64, 571 | "end": 4.96, 572 | "confidence": 0.578624, 573 | "punctuated_word": "first," 574 | }, 575 | { 576 | "word": "spacewalk", 577 | "start": 5.2799997, 578 | "end": 5.7799997, 579 | "confidence": 0.9014553, 580 | "punctuated_word": "spacewalk," 581 | } 582 | ], 583 | "id": "3deaa54a-ff4e-492e-9fa0-f66c0014826e" 584 | }, 585 | { 586 | "start": 6.3199997, 587 | "end": 7.8599997, 588 | "confidence": 0.97866595, 589 | "channel": 0, 590 | "transcript": "with an all female team,", 591 | "words": [ 592 | { 593 | "word": "with", 594 | "start": 6.3199997, 595 | "end": 6.56, 596 | "confidence": 0.999765, 597 | "punctuated_word": "with" 598 | }, 599 | { 600 | "word": "an", 601 | "start": 6.56, 602 | "end": 6.72, 603 | "confidence": 0.9989334, 604 | "punctuated_word": "an" 605 | }, 606 | { 607 | "word": "all", 608 | "start": 6.72, 609 | "end": 6.96, 610 | "confidence": 0.9977842, 611 | "punctuated_word": "all" 612 | }, 613 | { 614 | "word": "female", 615 | "start": 6.96, 616 | "end": 7.3599997, 617 | "confidence": 0.99980587, 618 | "punctuated_word": "female" 619 | }, 620 | { 621 | "word": "team", 622 | "start": 7.3599997, 623 | "end": 7.8599997, 624 | "confidence": 0.8970409, 625 | "punctuated_word": "team," 626 | } 627 | ], 628 | "id": "d44277d3-651f-41b2-94f6-f524545d4f5d" 629 | }, 630 | { 631 | "start": 8.475, 632 | "end": 13.215, 633 | "confidence": 0.93879175, 634 | "channel": 0, 635 | "transcript": "I think many of us are looking forward to it just being normal and", 636 | "words": [ 637 | { 638 | "word": "i", 639 | "start": 8.475, 640 | "end": 8.555, 641 | "confidence": 0.6100898, 642 | "punctuated_word": "I" 643 | }, 644 | { 645 | "word": "think", 646 | "start": 8.555, 647 | "end": 8.875, 648 | "confidence": 0.9999169, 649 | "punctuated_word": "think" 650 | }, 651 | { 652 | "word": "many", 653 | "start": 8.875, 654 | "end": 9.115001, 655 | "confidence": 0.9989447, 656 | "punctuated_word": "many" 657 | }, 658 | { 659 | "word": "of", 660 | "start": 9.115001, 661 | "end": 9.3550005, 662 | "confidence": 0.99934477, 663 | "punctuated_word": "of" 664 | }, 665 | { 666 | "word": "us", 667 | "start": 9.3550005, 668 | "end": 9.8550005, 669 | "confidence": 0.9985586, 670 | "punctuated_word": "us" 671 | }, 672 | { 673 | "word": "are", 674 | "start": 9.995001, 675 | "end": 10.235001, 676 | "confidence": 0.999551, 677 | "punctuated_word": "are" 678 | }, 679 | { 680 | "word": "looking", 681 | "start": 10.235001, 682 | "end": 10.475, 683 | "confidence": 0.9996606, 684 | "punctuated_word": "looking" 685 | }, 686 | { 687 | "word": "forward", 688 | "start": 10.475, 689 | "end": 10.715, 690 | "confidence": 0.9997713, 691 | "punctuated_word": "forward" 692 | }, 693 | { 694 | "word": "to", 695 | "start": 10.715, 696 | "end": 10.955, 697 | "confidence": 0.99927133, 698 | "punctuated_word": "to" 699 | }, 700 | { 701 | "word": "it", 702 | "start": 10.955, 703 | "end": 11.115001, 704 | "confidence": 0.997619, 705 | "punctuated_word": "it" 706 | }, 707 | { 708 | "word": "just", 709 | "start": 11.115001, 710 | "end": 11.3550005, 711 | "confidence": 0.9978631, 712 | "punctuated_word": "just" 713 | }, 714 | { 715 | "word": "being", 716 | "start": 11.3550005, 717 | "end": 11.8550005, 718 | "confidence": 0.9994981, 719 | "punctuated_word": "being" 720 | }, 721 | { 722 | "word": "normal", 723 | "start": 11.995001, 724 | "end": 12.495001, 725 | "confidence": 0.9978975, 726 | "punctuated_word": "normal" 727 | }, 728 | { 729 | "word": "and", 730 | "start": 12.715, 731 | "end": 13.215, 732 | "confidence": 0.54509896, 733 | "punctuated_word": "and" 734 | } 735 | ], 736 | "id": "c15c6b07-9eea-4cda-b0ca-e53c0b2f91f7" 737 | }, 738 | { 739 | "start": 13.835001, 740 | "end": 21.68, 741 | "confidence": 0.9007723, 742 | "channel": 0, 743 | "transcript": "I think if it signifies anything, It is to honor the the women who came before us who, were skilled and qualified,", 744 | "words": [ 745 | { 746 | "word": "i", 747 | "start": 13.835001, 748 | "end": 13.995001, 749 | "confidence": 0.6895846, 750 | "punctuated_word": "I" 751 | }, 752 | { 753 | "word": "think", 754 | "start": 13.995001, 755 | "end": 14.235001, 756 | "confidence": 0.99965954, 757 | "punctuated_word": "think" 758 | }, 759 | { 760 | "word": "if", 761 | "start": 14.235001, 762 | "end": 14.395, 763 | "confidence": 0.9954182, 764 | "punctuated_word": "if" 765 | }, 766 | { 767 | "word": "it", 768 | "start": 14.395, 769 | "end": 14.555, 770 | "confidence": 0.9864966, 771 | "punctuated_word": "it" 772 | }, 773 | { 774 | "word": "signifies", 775 | "start": 14.555, 776 | "end": 15.055, 777 | "confidence": 0.9997447, 778 | "punctuated_word": "signifies" 779 | }, 780 | { 781 | "word": "anything", 782 | "start": 15.115, 783 | "end": 15.615, 784 | "confidence": 0.89247376, 785 | "punctuated_word": "anything," 786 | }, 787 | { 788 | "word": "it", 789 | "start": 15.82, 790 | "end": 15.98, 791 | "confidence": 0.49997056, 792 | "punctuated_word": "It" 793 | }, 794 | { 795 | "word": "is", 796 | "start": 15.98, 797 | "end": 16.48, 798 | "confidence": 0.9991165, 799 | "punctuated_word": "is" 800 | }, 801 | { 802 | "word": "to", 803 | "start": 16.779999, 804 | "end": 17.02, 805 | "confidence": 0.51602215, 806 | "punctuated_word": "to" 807 | }, 808 | { 809 | "word": "honor", 810 | "start": 17.02, 811 | "end": 17.34, 812 | "confidence": 0.99897003, 813 | "punctuated_word": "honor" 814 | }, 815 | { 816 | "word": "the", 817 | "start": 17.34, 818 | "end": 17.66, 819 | "confidence": 0.9979972, 820 | "punctuated_word": "the" 821 | }, 822 | { 823 | "word": "the", 824 | "start": 17.66, 825 | "end": 17.74, 826 | "confidence": 0.7534162, 827 | "punctuated_word": "the" 828 | }, 829 | { 830 | "word": "women", 831 | "start": 17.74, 832 | "end": 18.06, 833 | "confidence": 0.9617373, 834 | "punctuated_word": "women" 835 | }, 836 | { 837 | "word": "who", 838 | "start": 18.06, 839 | "end": 18.22, 840 | "confidence": 0.9968215, 841 | "punctuated_word": "who" 842 | }, 843 | { 844 | "word": "came", 845 | "start": 18.22, 846 | "end": 18.38, 847 | "confidence": 0.9990761, 848 | "punctuated_word": "came" 849 | }, 850 | { 851 | "word": "before", 852 | "start": 18.38, 853 | "end": 18.7, 854 | "confidence": 0.99931896, 855 | "punctuated_word": "before" 856 | }, 857 | { 858 | "word": "us", 859 | "start": 18.7, 860 | "end": 19.2, 861 | "confidence": 0.9972096, 862 | "punctuated_word": "us" 863 | }, 864 | { 865 | "word": "who", 866 | "start": 19.5, 867 | "end": 19.82, 868 | "confidence": 0.7276913, 869 | "punctuated_word": "who," 870 | }, 871 | { 872 | "word": "were", 873 | "start": 20.14, 874 | "end": 20.38, 875 | "confidence": 0.9741669, 876 | "punctuated_word": "were" 877 | }, 878 | { 879 | "word": "skilled", 880 | "start": 20.38, 881 | "end": 20.86, 882 | "confidence": 0.9973028, 883 | "punctuated_word": "skilled" 884 | }, 885 | { 886 | "word": "and", 887 | "start": 20.86, 888 | "end": 21.18, 889 | "confidence": 0.99707186, 890 | "punctuated_word": "and" 891 | }, 892 | { 893 | "word": "qualified", 894 | "start": 21.18, 895 | "end": 21.68, 896 | "confidence": 0.837723, 897 | "punctuated_word": "qualified," 898 | } 899 | ], 900 | "id": "d057c1de-9d37-4c68-a757-5ca083451c1d" 901 | }, 902 | { 903 | "start": 22.3, 904 | "end": 25.439999, 905 | "confidence": 0.9164877, 906 | "channel": 0, 907 | "transcript": "and didn't get the same opportunities that we have today.", 908 | "words": [ 909 | { 910 | "word": "and", 911 | "start": 22.3, 912 | "end": 22.619999, 913 | "confidence": 0.9976847, 914 | "punctuated_word": "and" 915 | }, 916 | { 917 | "word": "didn't", 918 | "start": 22.619999, 919 | "end": 22.86, 920 | "confidence": 0.99618447, 921 | "punctuated_word": "didn't" 922 | }, 923 | { 924 | "word": "get", 925 | "start": 22.86, 926 | "end": 23.26, 927 | "confidence": 0.9957491, 928 | "punctuated_word": "get" 929 | }, 930 | { 931 | "word": "the", 932 | "start": 23.26, 933 | "end": 23.58, 934 | "confidence": 0.7927007, 935 | "punctuated_word": "the" 936 | }, 937 | { 938 | "word": "same", 939 | "start": 23.58, 940 | "end": 23.9, 941 | "confidence": 0.7259752, 942 | "punctuated_word": "same" 943 | }, 944 | { 945 | "word": "opportunities", 946 | "start": 23.9, 947 | "end": 24.4, 948 | "confidence": 0.9914248, 949 | "punctuated_word": "opportunities" 950 | }, 951 | { 952 | "word": "that", 953 | "start": 24.46, 954 | "end": 24.619999, 955 | "confidence": 0.97425294, 956 | "punctuated_word": "that" 957 | }, 958 | { 959 | "word": "we", 960 | "start": 24.619999, 961 | "end": 24.779999, 962 | "confidence": 0.98887795, 963 | "punctuated_word": "we" 964 | }, 965 | { 966 | "word": "have", 967 | "start": 24.779999, 968 | "end": 24.939999, 969 | "confidence": 0.9769957, 970 | "punctuated_word": "have" 971 | }, 972 | { 973 | "word": "today", 974 | "start": 24.939999, 975 | "end": 25.439999, 976 | "confidence": 0.725032, 977 | "punctuated_word": "today." 978 | } 979 | ], 980 | "id": "ff6bbc3f-5985-40ec-89b0-8f720b16209e" 981 | } 982 | ] 983 | } 984 | } 985 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "include": ["src"], 3 | "exclude": ["node_modules/**/*.ts"], 4 | "compilerOptions": { 5 | "declaration": true, 6 | "declarationMap": true, 7 | "module": "CommonJS", 8 | "outDir": "dist/main", 9 | "rootDir": "src", 10 | "sourceMap": true, 11 | "target": "ES2015", 12 | 13 | "strict": true, 14 | 15 | "esModuleInterop": true, 16 | "moduleResolution": "Node", 17 | 18 | "resolveJsonModule": true, 19 | 20 | "forceConsistentCasingInFileNames": true, 21 | "stripInternal": true, 22 | "allowSyntheticDefaultImports": true 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /tsconfig.module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig", 3 | "compilerOptions": { 4 | "module": "ES2020", 5 | "outDir": "dist/module" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require("path"); 2 | 3 | module.exports = { 4 | entry: "./src/index.ts", 5 | output: { 6 | path: path.resolve(__dirname, "dist/umd"), 7 | filename: "deepgram.js", 8 | library: { 9 | type: "umd", 10 | name: "deepgram", 11 | }, 12 | }, 13 | module: { 14 | rules: [ 15 | { 16 | test: /\.ts$/, 17 | loader: "ts-loader", 18 | options: { 19 | transpileOnly: true, 20 | }, 21 | }, 22 | ], 23 | }, 24 | resolve: { 25 | extensions: [".ts", ".js", ".json"], 26 | }, 27 | }; 28 | --------------------------------------------------------------------------------