Changeset 35403 for main/trunk
- Timestamp:
- 2021-09-15T13:11:45+12:00 (3 years ago)
- Location:
- main/trunk/model-interfaces-dev/atea/korero-maori-asr/src/components
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/model-interfaces-dev/atea/korero-maori-asr/src/components/TranscriptionItem.vue
r35400 r35403 83 83 import { mapState } from "vuex"; 84 84 import { saveAs } from "file-saver" 85 import TranscriptionItemEditor from "./TranscriptionItemEditor.vue"85 import TranscriptionItemEditor, { getWords } from "./TranscriptionItemEditor.vue" 86 86 import { TranscriptionViewModel } from "../main"; 87 87 import Util from "../js/Util"; … … 130 130 const blob = new Blob([ JSON.stringify(toDownload, null, 4) ], { type: "application/json;charset=utf-8" }); 131 131 saveAs(blob, fileName); 132 }, 133 downloadAsWebvtt() { 134 const fileName = buildDownloadableFileName(this.transcription.fileName, "vtt"); 135 const toDownload = buildWebvttFileContents(this.transcription); 136 137 const blob = new Blob([ toDownload ], { type: "text/vtt;charset=utf-8" }); 138 saveAs(blob, fileName); 132 139 } 133 140 } … … 147 154 return fileName; 148 155 } 156 157 /** 158 * Builds a WebVTT file of the given transcription 159 * @param {TranscriptionViewModel} transcription The transcription. 160 * @returns {String} The WebVTT content. 161 */ 162 function buildWebvttFileContents(transcription) { 163 let contents = "WEBVTT Transcription of " + transcription.fileName + "\n\n"; 164 165 for (const word of getWords(transcription)) { 166 contents += getTime(word.startTime) + " --> " + getTime(word.endTime) + "\n"; 167 contents += "- " + word.word + "\n\n"; 168 } 169 170 return contents; 171 172 function getTime(seconds) { 173 const hours = (seconds / 3600) | 0; 174 const minutes = ((seconds - (hours * 60)) / 60) | 0; 175 const actualSeconds = seconds - (minutes * 60); 176 177 let result = hours.toLocaleString("en-US", { maximumFractionDigits: 0, minimumIntegerDigits: 2 }); 178 result += ":" + minutes.toLocaleString("en-US", { maximumFractionDigits: 0, minimumIntegerDigits: 2 }); 179 result += ":" + actualSeconds.toLocaleString("en-US", { minimumFractionDigits: 3, maximumFractionDigis: 3, minimumIntegerDigits: 2 }); 180 181 return result; 182 } 183 } 149 184 </script> -
main/trunk/model-interfaces-dev/atea/korero-maori-asr/src/components/TranscriptionItemEditor.vue
r35397 r35403 82 82 import Util from "../js/Util"; 83 83 84 class Word {84 export class Word { 85 85 /** 86 86 * Initialises a new instance of the Word class. … … 257 257 * @returns {Word[]} 258 258 */ 259 function getWords(transcription) {259 export function getWords(transcription) { 260 260 /** @type {Word[]} */ 261 261 const words = [];
Note:
See TracChangeset
for help on using the changeset viewer.