diff --git a/.gitignore b/.gitignore index a76077f..2fa6681 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -*.mp3 *~ # python stuff __pycache__/ diff --git a/mixcloud/.gitignore b/mixcloud/.gitignore new file mode 100644 index 0000000..847b15c --- /dev/null +++ b/mixcloud/.gitignore @@ -0,0 +1,2 @@ +*.mp3 +*.wav diff --git a/mixcloud/fun_with_subtitles_02.sh.txt b/mixcloud/fun_with_subtitles_02.sh.txt index fcd9349..e4e53a0 100644 --- a/mixcloud/fun_with_subtitles_02.sh.txt +++ b/mixcloud/fun_with_subtitles_02.sh.txt @@ -1,6 +1,9 @@ +#!/bin/bash +# # vosk can also output JSON that includes the timing of each individual # detected WORD! # NOTE: I had an error when I did this and needed to PATCH some PYTHON code in VOSK # see VOSKPATCH.TXT -vosk-transcriber -l en-us -i worm25_mia_60.wav -t json -o worm25_mia_60.json + +vosk-transcriber -l en-us -i w25mia60.wav -t json -o w25mia60.json diff --git a/mixcloud/scripts/srt2vtt.py b/mixcloud/scripts/srt2vtt.py old mode 100644 new mode 100755 diff --git a/mixcloud/scripts/timecode.py b/mixcloud/scripts/timecode.py new file mode 100755 index 0000000..c6e5696 --- /dev/null +++ b/mixcloud/scripts/timecode.py @@ -0,0 +1,96 @@ +# This file is part of Active Archives. +# Copyright 2006-2016 the Active Archives contributors (see AUTHORS) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# Also add information on how to contact you by electronic and paper mail. + +from __future__ import print_function +import math +import re + +# timecode_pat = re.compile(r"(\d+):(\d+):(\d+)(?:[.,](\d+))?") +timecode_pat = re.compile(r"(?:(\d+):)?(\d+):(\d+)(?:[.,](\d+))?") + + +def timecode_fromsecs(rawsecs, fract=True, alwaysfract=False, fractdelim=',', alwayshours=False): + # returns a string in HH:MM:SS[.xxx] notation + # if fract is True, uses .xxx if either necessary (non-zero) + # OR alwaysfract is True + hours = math.floor(rawsecs / 3600) + rawsecs -= hours * 3600 + mins = math.floor(rawsecs / 60) + rawsecs -= mins * 60 + if fract: + secs = math.floor(rawsecs) + rawsecs -= secs + if (rawsecs > 0 or alwaysfract): + fract = "%.03f" % rawsecs + if hours or alwayshours: + return "%02d:%02d:%02d%s%s" % (hours, mins, secs, fractdelim, \ + fract[2:]) + else: + return "%02d:%02d%s%s" % (mins, secs, fractdelim, fract[2:]) + else: + if hours or alwayshours: + return "%02d:%02d:%02d" % (hours, mins, secs) + else: + return "%02d:%02d" % (mins, secs) + + else: + secs = round(rawsecs) + if hours or alwayshours: + return "%02d:%02d:%02d" % (hours, mins, secs) + else: + return "%02d:%02d" % (mins, secs) + + +def timecode_tosecs(tcstr): + r = timecode_pat.search(tcstr) + if r: + ret = 0 + if r.group(1): + ret += 3600 * int(r.group(1)) + ret += 60 * int(r.group(2)) + ret += int(r.group(3)) + if (r.group(4)): + ret = float(str(ret) + "." + r.group(4)) + return ret + else: + return None + + +def parse2secs(val): + try: + return float(val) + except ValueError: + return timecode_tosecs(val) +## to accept None +# except TypeError: +# return + +if __name__ == "__main__": + def t(x): + # with fraction + s = timecode_fromsecs(x, True, False) + print (x, "=>", s, "=>", timecode_tosecs(s)) + # without fraction + s = timecode_fromsecs(x, False) + print (x, "=>", s, "=>", timecode_tosecs(s)) + + t(0) + t(59.666666666666666) + t(60) + t(60.0) + t(1235 / 3.0) + t(10000.5) diff --git a/mixcloud/scripts/voskjson2vtt.py b/mixcloud/scripts/voskjson2vtt.py new file mode 100755 index 0000000..68a3520 --- /dev/null +++ b/mixcloud/scripts/voskjson2vtt.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python +import json +import argparse +import sys + +# requires: timecode.py +# some functions to help working with (srt/vtt) timecodes +from timecode import timecode_fromsecs + +ap = argparse.ArgumentParser("convert VOSK json output into a special vtt with timed json per word") +ap.add_argument('infile', nargs='?', type=argparse.FileType('r'), default=sys.stdin) +ap.add_argument('outfile', nargs='?', type=argparse.FileType('w'), default=sys.stdout) +args = ap.parse_args() + + +data = json.load(args.infile) + +def tc(s): + return timecode_fromsecs(s, alwaysfract=True, fractdelim=".") + +print ("WEBVTT", file=args.outfile) +print (file=args.outfile) +for m in data['monologues']: + for term in m['terms']: + if term['type'] == "WORD": + print (f"{tc(term['start'])} --> {tc(term['end'])}", file=args.outfile) + # print (f"{term['text']}") + tterm = {'text': term['text'], 'confidence': term['confidence']} + print (json.dumps(tterm), file=args.outfile) + print (file=args.outfile) diff --git a/mixcloud/vtt_words.html b/mixcloud/vtt_words.html new file mode 100644 index 0000000..cad1b01 --- /dev/null +++ b/mixcloud/vtt_words.html @@ -0,0 +1,56 @@ + + + + + + + + + + +
+
hello
+
+ + + + + diff --git a/mixcloud/w25mia60.json b/mixcloud/w25mia60.json new file mode 100644 index 0000000..8ff1c9e --- /dev/null +++ b/mixcloud/w25mia60.json @@ -0,0 +1 @@ +{"schemaVersion": "2.0", "monologues": [{"speaker": {"id": "unknown", "name": null}, "start": 0.07581, "end": 10.71, "terms": [{"confidence": 1.0, "start": 0.07581, "end": 0.27, "text": "have", "type": "WORD"}, {"confidence": 1.0, "start": 0.27, "end": 0.33, "text": "a", "type": "WORD"}, {"confidence": 1.0, "start": 0.33, "end": 0.87, "text": "particular", "type": "WORD"}, {"confidence": 1.0, "start": 0.87, "end": 1.56, "text": "connection", "type": "WORD"}, {"confidence": 1.0, "start": 1.65, "end": 1.8, "text": "to", "type": "WORD"}, {"confidence": 1.0, "start": 1.8, "end": 2.19, "text": "worms", "type": "WORD"}, {"confidence": 1.0, "start": 2.25, "end": 2.61, "text": "inner", "type": "WORD"}, {"confidence": 1.0, "start": 2.61, "end": 2.94, "text": "and", "type": "WORD"}, {"confidence": 1.0, "start": 2.97, "end": 3.33, "text": "outer", "type": "WORD"}, {"confidence": 1.0, "start": 3.39, "end": 4.14, "text": "workings", "type": "WORD"}, {"confidence": 1.0, "start": 4.98, "end": 5.07, "text": "i", "type": "WORD"}, {"confidence": 1.0, "start": 5.07, "end": 5.34, "text": "wanted", "type": "WORD"}, {"confidence": 1.0, "start": 5.34, "end": 5.7, "text": "to", "type": "WORD"}, {"confidence": 1.0, "start": 5.73, "end": 5.97, "text": "make", "type": "WORD"}, {"confidence": 1.0, "start": 5.97, "end": 6.06, "text": "the", "type": "WORD"}, {"confidence": 1.0, "start": 6.06, "end": 6.6, "text": "series", "type": "WORD"}, {"confidence": 1.0, "start": 6.6, "end": 7.11, "text": "because", "type": "WORD"}, {"confidence": 0.715959, "start": 7.14, "end": 7.44, "text": "one", "type": "WORD"}, {"confidence": 1.0, "start": 7.44, "end": 7.59, "text": "has", "type": "WORD"}, {"confidence": 1.0, "start": 7.59, "end": 8.19, "text": "become", "type": "WORD"}, {"confidence": 1.0, "start": 8.28, "end": 8.64, "text": "over", "type": "WORD"}, {"confidence": 1.0, "start": 8.64, "end": 8.94, "text": "twenty", "type": "WORD"}, {"confidence": 1.0, "start": 8.94, "end": 9.21, "text": "five", "type": "WORD"}, {"confidence": 1.0, "start": 9.21, "end": 9.69, "text": "years", "type": "WORD"}, {"confidence": 0.868049, "start": 9.69, "end": 9.87, "text": "and", "type": "WORD"}, {"confidence": 1.0, "start": 9.87, "end": 10.71, "text": "institution", "type": "WORD"}]}, {"speaker": {"id": "unknown", "name": null}, "start": 11.46, "end": 29.88, "terms": [{"confidence": 1.0, "start": 11.46, "end": 11.61, "text": "but", "type": "WORD"}, {"confidence": 1.0, "start": 11.61, "end": 11.7, "text": "an", "type": "WORD"}, {"confidence": 1.0, "start": 11.7, "end": 12.36, "text": "institution", "type": "WORD"}, {"confidence": 1.0, "start": 12.36, "end": 12.75, "text": "built", "type": "WORD"}, {"confidence": 1.0, "start": 13.14, "end": 13.494532, "text": "with", "type": "WORD"}, {"confidence": 0.908873, "start": 13.5, "end": 13.62, "text": "and", "type": "WORD"}, {"confidence": 0.664659, "start": 13.62, "end": 14.13, "text": "for", "type": "WORD"}, {"confidence": 1.0, "start": 14.13, "end": 14.28, "text": "and", "type": "WORD"}, {"confidence": 1.0, "start": 14.28, "end": 14.85, "text": "from", "type": "WORD"}, {"confidence": 1.0, "start": 14.88, "end": 14.97, "text": "a", "type": "WORD"}, {"confidence": 1.0, "start": 14.97, "end": 15.12, "text": "d", "type": "WORD"}, {"confidence": 1.0, "start": 15.12, "end": 15.24, "text": "i", "type": "WORD"}, {"confidence": 1.0, "start": 15.24, "end": 15.48, "text": "y", "type": "WORD"}, {"confidence": 1.0, "start": 15.48, "end": 16.11, "text": "spirits", "type": "WORD"}, {"confidence": 0.821086, "start": 16.59, "end": 16.74, "text": "and", "type": "WORD"}, {"confidence": 1.0, "start": 16.74, "end": 17.16, "text": "something", "type": "WORD"}, {"confidence": 1.0, "start": 17.22, "end": 17.4, "text": "that", "type": "WORD"}, {"confidence": 1.0, "start": 17.4, "end": 17.46, "text": "it", "type": "WORD"}, {"confidence": 1.0, "start": 17.46, "end": 17.67, "text": "still", "type": "WORD"}, {"confidence": 1.0, "start": 17.67, "end": 18.39, "text": "retains", "type": "WORD"}, {"confidence": 1.0, "start": 18.9, "end": 19.08, "text": "it's", "type": "WORD"}, {"confidence": 1.0, "start": 19.08, "end": 19.17, "text": "the", "type": "WORD"}, {"confidence": 1.0, "start": 19.17, "end": 19.47, "text": "nature", "type": "WORD"}, {"confidence": 1.0, "start": 19.47, "end": 19.56, "text": "of", "type": "WORD"}, {"confidence": 1.0, "start": 19.56, "end": 19.71, "text": "do", "type": "WORD"}, {"confidence": 1.0, "start": 19.71, "end": 19.8, "text": "i", "type": "WORD"}, {"confidence": 1.0, "start": 19.8, "end": 20.017606, "text": "was", "type": "WORD"}, {"confidence": 0.697723, "start": 20.017606, "end": 20.49, "text": "spaces", "type": "WORD"}, {"confidence": 1.0, "start": 20.49, "end": 20.64, "text": "of", "type": "WORD"}, {"confidence": 1.0, "start": 20.64, "end": 21.06, "text": "course", "type": "WORD"}, {"confidence": 1.0, "start": 21.06, "end": 21.24, "text": "and", "type": "WORD"}, {"confidence": 1.0, "start": 21.24, "end": 21.42, "text": "any", "type": "WORD"}, {"confidence": 1.0, "start": 21.42, "end": 21.81, "text": "cultural", "type": "WORD"}, {"confidence": 1.0, "start": 21.81, "end": 22.41, "text": "spaces", "type": "WORD"}, {"confidence": 1.0, "start": 22.47, "end": 22.71, "text": "that", "type": "WORD"}, {"confidence": 1.0, "start": 22.71, "end": 23.04, "text": "people", "type": "WORD"}, {"confidence": 1.0, "start": 23.04, "end": 23.19, "text": "who", "type": "WORD"}, {"confidence": 1.0, "start": 23.19, "end": 23.49, "text": "make", "type": "WORD"}, {"confidence": 1.0, "start": 23.49, "end": 23.61, "text": "it", "type": "WORD"}, {"confidence": 1.0, "start": 23.61, "end": 23.88, "text": "come", "type": "WORD"}, {"confidence": 1.0, "start": 23.88, "end": 23.97, "text": "and", "type": "WORD"}, {"confidence": 1.0, "start": 23.97, "end": 24.39, "text": "go", "type": "WORD"}, {"confidence": 1.0, "start": 24.57, "end": 24.69, "text": "the", "type": "WORD"}, {"confidence": 1.0, "start": 24.69, "end": 24.9, "text": "name", "type": "WORD"}, {"confidence": 1.0, "start": 24.9, "end": 25.02, "text": "on", "type": "WORD"}, {"confidence": 1.0, "start": 25.02, "end": 25.08, "text": "the", "type": "WORD"}, {"confidence": 1.0, "start": 25.08, "end": 25.41, "text": "building", "type": "WORD"}, {"confidence": 1.0, "start": 25.41, "end": 25.74, "text": "stays", "type": "WORD"}, {"confidence": 1.0, "start": 25.74, "end": 25.83, "text": "the", "type": "WORD"}, {"confidence": 1.0, "start": 25.83, "end": 26.16, "text": "same", "type": "WORD"}, {"confidence": 1.0, "start": 26.16, "end": 26.37, "text": "but", "type": "WORD"}, {"confidence": 1.0, "start": 26.37, "end": 26.46, "text": "the", "type": "WORD"}, {"confidence": 1.0, "start": 26.46, "end": 26.88, "text": "vibe", "type": "WORD"}, {"confidence": 1.0, "start": 26.97, "end": 27.63, "text": "changes", "type": "WORD"}, {"confidence": 1.0, "start": 28.02, "end": 28.2, "text": "and", "type": "WORD"}, {"confidence": 1.0, "start": 28.2, "end": 28.26, "text": "the", "type": "WORD"}, {"confidence": 1.0, "start": 28.26, "end": 28.56, "text": "sense", "type": "WORD"}, {"confidence": 1.0, "start": 28.56, "end": 28.68, "text": "of", "type": "WORD"}, {"confidence": 1.0, "start": 28.68, "end": 29.19, "text": "identity", "type": "WORD"}, {"confidence": 1.0, "start": 29.19, "end": 29.88, "text": "shifts", "type": "WORD"}]}, {"speaker": {"id": "unknown", "name": null}, "start": 31.02, "end": 39.87, "terms": [{"confidence": 1.0, "start": 31.02, "end": 31.44, "text": "worm", "type": "WORD"}, {"confidence": 1.0, "start": 31.47, "end": 31.71, "text": "is", "type": "WORD"}, {"confidence": 1.0, "start": 31.71, "end": 31.77, "text": "a", "type": "WORD"}, {"confidence": 1.0, "start": 31.77, "end": 32.07, "text": "place", "type": "WORD"}, {"confidence": 1.0, "start": 32.07, "end": 32.19, "text": "of", "type": "WORD"}, {"confidence": 1.0, "start": 32.19, "end": 32.85, "text": "invention", "type": "WORD"}, {"confidence": 1.0, "start": 32.85, "end": 33.0, "text": "and", "type": "WORD"}, {"confidence": 1.0, "start": 33.0, "end": 33.81, "text": "reinvention", "type": "WORD"}, {"confidence": 1.0, "start": 33.81, "end": 34.17, "text": "and", "type": "WORD"}, {"confidence": 0.722413, "start": 34.23, "end": 34.41, "text": "with", "type": "WORD"}, {"confidence": 1.0, "start": 34.41, "end": 34.5, "text": "the", "type": "WORD"}, {"confidence": 1.0, "start": 34.5, "end": 34.92, "text": "constant", "type": "WORD"}, {"confidence": 1.0, "start": 34.92, "end": 35.46, "text": "motion", "type": "WORD"}, {"confidence": 1.0, "start": 35.52, "end": 35.88, "text": "certain", "type": "WORD"}, {"confidence": 1.0, "start": 35.88, "end": 36.39, "text": "stories", "type": "WORD"}, {"confidence": 1.0, "start": 36.39, "end": 36.51, "text": "and", "type": "WORD"}, {"confidence": 1.0, "start": 36.51, "end": 37.05, "text": "memories", "type": "WORD"}, {"confidence": 0.854091, "start": 37.08, "end": 37.38, "text": "do", "type": "WORD"}, {"confidence": 1.0, "start": 37.41, "end": 37.68, "text": "fade", "type": "WORD"}, {"confidence": 1.0, "start": 37.68, "end": 38.07, "text": "away", "type": "WORD"}, {"confidence": 1.0, "start": 38.64, "end": 39.12, "text": "sometimes", "type": "WORD"}, {"confidence": 1.0, "start": 39.12, "end": 39.33, "text": "quite", "type": "WORD"}, {"confidence": 1.0, "start": 39.33, "end": 39.87, "text": "quickly", "type": "WORD"}]}, {"speaker": {"id": "unknown", "name": null}, "start": 40.77, "end": 52.68, "terms": [{"confidence": 1.0, "start": 40.77, "end": 40.89, "text": "the", "type": "WORD"}, {"confidence": 1.0, "start": 40.89, "end": 41.16, "text": "idea", "type": "WORD"}, {"confidence": 1.0, "start": 41.16, "end": 41.31, "text": "of", "type": "WORD"}, {"confidence": 1.0, "start": 41.34, "end": 41.73, "text": "this", "type": "WORD"}, {"confidence": 1.0, "start": 41.79, "end": 42.24, "text": "history", "type": "WORD"}, {"confidence": 1.0, "start": 42.24, "end": 42.362058, "text": "of", "type": "WORD"}, {"confidence": 0.478323, "start": 42.362058, "end": 42.563606, "text": "why", "type": "WORD"}, {"confidence": 1.0, "start": 42.563606, "end": 42.78, "text": "i'm", "type": "WORD"}, {"confidence": 1.0, "start": 42.87, "end": 43.08, "text": "not", "type": "WORD"}, {"confidence": 1.0, "start": 43.08, "end": 43.2, "text": "the", "type": "WORD"}, {"confidence": 1.0, "start": 43.26, "end": 43.62, "text": "only", "type": "WORD"}, {"confidence": 1.0, "start": 43.65, "end": 44.13, "text": "possible", "type": "WORD"}, {"confidence": 1.0, "start": 44.16, "end": 44.64, "text": "history", "type": "WORD"}, {"confidence": 1.0, "start": 44.67, "end": 44.79, "text": "of", "type": "WORD"}, {"confidence": 1.0, "start": 44.79, "end": 45.27, "text": "course", "type": "WORD"}, {"confidence": 1.0, "start": 45.33, "end": 45.51, "text": "is", "type": "WORD"}, {"confidence": 1.0, "start": 45.51, "end": 45.63, "text": "to", "type": "WORD"}, {"confidence": 1.0, "start": 45.63, "end": 45.93, "text": "try", "type": "WORD"}, {"confidence": 1.0, "start": 45.93, "end": 46.08, "text": "and", "type": "WORD"}, {"confidence": 1.0, "start": 46.08, "end": 46.65, "text": "capture", "type": "WORD"}, {"confidence": 1.0, "start": 47.04, "end": 47.16, "text": "a", "type": "WORD"}, {"confidence": 1.0, "start": 47.16, "end": 47.37, "text": "few", "type": "WORD"}, {"confidence": 1.0, "start": 47.37, "end": 47.46, "text": "of", "type": "WORD"}, {"confidence": 1.0, "start": 47.46, "end": 47.7, "text": "those", "type": "WORD"}, {"confidence": 1.0, "start": 47.7, "end": 48.21, "text": "stories", "type": "WORD"}, {"confidence": 1.0, "start": 48.24, "end": 48.36, "text": "with", "type": "WORD"}, {"confidence": 1.0, "start": 48.36, "end": 48.42, "text": "the", "type": "WORD"}, {"confidence": 1.0, "start": 48.42, "end": 48.75, "text": "people", "type": "WORD"}, {"confidence": 1.0, "start": 48.75, "end": 48.9, "text": "that", "type": "WORD"}, {"confidence": 1.0, "start": 48.93, "end": 49.08, "text": "i've", "type": "WORD"}, {"confidence": 1.0, "start": 49.08, "end": 49.53, "text": "met", "type": "WORD"}, {"confidence": 1.0, "start": 49.95, "end": 50.121068, "text": "and", "type": "WORD"}, {"confidence": 1.0, "start": 50.138932, "end": 50.370344, "text": "people", "type": "WORD"}, {"confidence": 0.966533, "start": 50.370344, "end": 50.49, "text": "that", "type": "WORD"}, {"confidence": 0.314138, "start": 50.49, "end": 50.748351, "text": "maria", "type": "WORD"}, {"confidence": 0.542389, "start": 50.748351, "end": 50.91, "text": "it", "type": "WORD"}, {"confidence": 1.0, "start": 50.934155, "end": 51.12, "text": "has", "type": "WORD"}, {"confidence": 0.49303, "start": 51.12, "end": 51.57, "text": "known", "type": "WORD"}, {"confidence": 1.0, "start": 51.96, "end": 52.23, "text": "along", "type": "WORD"}, {"confidence": 1.0, "start": 52.23, "end": 52.32, "text": "the", "type": "WORD"}, {"confidence": 1.0, "start": 52.32, "end": 52.68, "text": "way", "type": "WORD"}]}, {"speaker": {"id": "unknown", "name": null}, "start": 53.79, "end": 59.97, "terms": [{"confidence": 1.0, "start": 53.79, "end": 53.94, "text": "but", "type": "WORD"}, {"confidence": 1.0, "start": 53.94, "end": 54.0, "text": "i'm", "type": "WORD"}, {"confidence": 1.0, "start": 54.0, "end": 54.09, "text": "not", "type": "WORD"}, {"confidence": 1.0, "start": 54.09, "end": 54.21, "text": "going", "type": "WORD"}, {"confidence": 1.0, "start": 54.21, "end": 54.27, "text": "to", "type": "WORD"}, {"confidence": 1.0, "start": 54.27, "end": 54.63, "text": "begin", "type": "WORD"}, {"confidence": 1.0, "start": 54.66, "end": 54.78, "text": "at", "type": "WORD"}, {"confidence": 1.0, "start": 54.78, "end": 54.84, "text": "the", "type": "WORD"}, {"confidence": 1.0, "start": 54.84, "end": 55.38, "text": "beginning", "type": "WORD"}, {"confidence": 1.0, "start": 55.92, "end": 56.13, "text": "that", "type": "WORD"}, {"confidence": 1.0, "start": 56.13, "end": 56.25, "text": "would", "type": "WORD"}, {"confidence": 1.0, "start": 56.25, "end": 56.34, "text": "be", "type": "WORD"}, {"confidence": 1.0, "start": 56.34, "end": 56.73, "text": "logical", "type": "WORD"}, {"confidence": 1.0, "start": 56.73, "end": 56.88, "text": "but", "type": "WORD"}, {"confidence": 1.0, "start": 56.88, "end": 57.21, "text": "actually", "type": "WORD"}, {"confidence": 1.0, "start": 57.21, "end": 57.3, "text": "have", "type": "WORD"}, {"confidence": 1.0, "start": 57.3, "end": 57.54, "text": "already", "type": "WORD"}, {"confidence": 1.0, "start": 57.54, "end": 58.02, "text": "begun", "type": "WORD"}, {"confidence": 1.0, "start": 58.05, "end": 58.68, "text": "obviously", "type": "WORD"}, {"confidence": 1.0, "start": 58.68, "end": 58.86, "text": "and", "type": "WORD"}, {"confidence": 1.0, "start": 58.86, "end": 59.37, "text": "today's", "type": "WORD"}, {"confidence": 1.0, "start": 59.37, "end": 59.97, "text": "episode", "type": "WORD"}]}], "text": []} \ No newline at end of file diff --git a/mixcloud/w25mia60_words.vtt b/mixcloud/w25mia60_words.vtt new file mode 100644 index 0000000..11f67d1 --- /dev/null +++ b/mixcloud/w25mia60_words.vtt @@ -0,0 +1,518 @@ +WEBVTT + +00:00.076 --> 00:00.270 +{"text": "have", "confidence": 1.0} + +00:00.270 --> 00:00.330 +{"text": "a", "confidence": 1.0} + +00:00.330 --> 00:00.870 +{"text": "particular", "confidence": 1.0} + +00:00.870 --> 00:01.560 +{"text": "connection", "confidence": 1.0} + +00:01.650 --> 00:01.800 +{"text": "to", "confidence": 1.0} + +00:01.800 --> 00:02.190 +{"text": "worms", "confidence": 1.0} + +00:02.250 --> 00:02.610 +{"text": "inner", "confidence": 1.0} + +00:02.610 --> 00:02.940 +{"text": "and", "confidence": 1.0} + +00:02.970 --> 00:03.330 +{"text": "outer", "confidence": 1.0} + +00:03.390 --> 00:04.140 +{"text": "workings", "confidence": 1.0} + +00:04.980 --> 00:05.070 +{"text": "i", "confidence": 1.0} + +00:05.070 --> 00:05.340 +{"text": "wanted", "confidence": 1.0} + +00:05.340 --> 00:05.700 +{"text": "to", "confidence": 1.0} + +00:05.730 --> 00:05.970 +{"text": "make", "confidence": 1.0} + +00:05.970 --> 00:06.060 +{"text": "the", "confidence": 1.0} + +00:06.060 --> 00:06.600 +{"text": "series", "confidence": 1.0} + +00:06.600 --> 00:07.110 +{"text": "because", "confidence": 1.0} + +00:07.140 --> 00:07.440 +{"text": "one", "confidence": 0.715959} + +00:07.440 --> 00:07.590 +{"text": "has", "confidence": 1.0} + +00:07.590 --> 00:08.190 +{"text": "become", "confidence": 1.0} + +00:08.280 --> 00:08.640 +{"text": "over", "confidence": 1.0} + +00:08.640 --> 00:08.940 +{"text": "twenty", "confidence": 1.0} + +00:08.940 --> 00:09.210 +{"text": "five", "confidence": 1.0} + +00:09.210 --> 00:09.690 +{"text": "years", "confidence": 1.0} + +00:09.690 --> 00:09.870 +{"text": "and", "confidence": 0.868049} + +00:09.870 --> 00:10.710 +{"text": "institution", "confidence": 1.0} + +00:11.460 --> 00:11.610 +{"text": "but", "confidence": 1.0} + +00:11.610 --> 00:11.700 +{"text": "an", "confidence": 1.0} + +00:11.700 --> 00:12.360 +{"text": "institution", "confidence": 1.0} + +00:12.360 --> 00:12.750 +{"text": "built", "confidence": 1.0} + +00:13.140 --> 00:13.495 +{"text": "with", "confidence": 1.0} + +00:13.500 --> 00:13.620 +{"text": "and", "confidence": 0.908873} + +00:13.620 --> 00:14.130 +{"text": "for", "confidence": 0.664659} + +00:14.130 --> 00:14.280 +{"text": "and", "confidence": 1.0} + +00:14.280 --> 00:14.850 +{"text": "from", "confidence": 1.0} + +00:14.880 --> 00:14.970 +{"text": "a", "confidence": 1.0} + +00:14.970 --> 00:15.120 +{"text": "d", "confidence": 1.0} + +00:15.120 --> 00:15.240 +{"text": "i", "confidence": 1.0} + +00:15.240 --> 00:15.480 +{"text": "y", "confidence": 1.0} + +00:15.480 --> 00:16.110 +{"text": "spirits", "confidence": 1.0} + +00:16.590 --> 00:16.740 +{"text": "and", "confidence": 0.821086} + +00:16.740 --> 00:17.160 +{"text": "something", "confidence": 1.0} + +00:17.220 --> 00:17.400 +{"text": "that", "confidence": 1.0} + +00:17.400 --> 00:17.460 +{"text": "it", "confidence": 1.0} + +00:17.460 --> 00:17.670 +{"text": "still", "confidence": 1.0} + +00:17.670 --> 00:18.390 +{"text": "retains", "confidence": 1.0} + +00:18.900 --> 00:19.080 +{"text": "it's", "confidence": 1.0} + +00:19.080 --> 00:19.170 +{"text": "the", "confidence": 1.0} + +00:19.170 --> 00:19.470 +{"text": "nature", "confidence": 1.0} + +00:19.470 --> 00:19.560 +{"text": "of", "confidence": 1.0} + +00:19.560 --> 00:19.710 +{"text": "do", "confidence": 1.0} + +00:19.710 --> 00:19.800 +{"text": "i", "confidence": 1.0} + +00:19.800 --> 00:20.018 +{"text": "was", "confidence": 1.0} + +00:20.018 --> 00:20.490 +{"text": "spaces", "confidence": 0.697723} + +00:20.490 --> 00:20.640 +{"text": "of", "confidence": 1.0} + +00:20.640 --> 00:21.060 +{"text": "course", "confidence": 1.0} + +00:21.060 --> 00:21.240 +{"text": "and", "confidence": 1.0} + +00:21.240 --> 00:21.420 +{"text": "any", "confidence": 1.0} + +00:21.420 --> 00:21.810 +{"text": "cultural", "confidence": 1.0} + +00:21.810 --> 00:22.410 +{"text": "spaces", "confidence": 1.0} + +00:22.470 --> 00:22.710 +{"text": "that", "confidence": 1.0} + +00:22.710 --> 00:23.040 +{"text": "people", "confidence": 1.0} + +00:23.040 --> 00:23.190 +{"text": "who", "confidence": 1.0} + +00:23.190 --> 00:23.490 +{"text": "make", "confidence": 1.0} + +00:23.490 --> 00:23.610 +{"text": "it", "confidence": 1.0} + +00:23.610 --> 00:23.880 +{"text": "come", "confidence": 1.0} + +00:23.880 --> 00:23.970 +{"text": "and", "confidence": 1.0} + +00:23.970 --> 00:24.390 +{"text": "go", "confidence": 1.0} + +00:24.570 --> 00:24.690 +{"text": "the", "confidence": 1.0} + +00:24.690 --> 00:24.900 +{"text": "name", "confidence": 1.0} + +00:24.900 --> 00:25.020 +{"text": "on", "confidence": 1.0} + +00:25.020 --> 00:25.080 +{"text": "the", "confidence": 1.0} + +00:25.080 --> 00:25.410 +{"text": "building", "confidence": 1.0} + +00:25.410 --> 00:25.740 +{"text": "stays", "confidence": 1.0} + +00:25.740 --> 00:25.830 +{"text": "the", "confidence": 1.0} + +00:25.830 --> 00:26.160 +{"text": "same", "confidence": 1.0} + +00:26.160 --> 00:26.370 +{"text": "but", "confidence": 1.0} + +00:26.370 --> 00:26.460 +{"text": "the", "confidence": 1.0} + +00:26.460 --> 00:26.880 +{"text": "vibe", "confidence": 1.0} + +00:26.970 --> 00:27.630 +{"text": "changes", "confidence": 1.0} + +00:28.020 --> 00:28.200 +{"text": "and", "confidence": 1.0} + +00:28.200 --> 00:28.260 +{"text": "the", "confidence": 1.0} + +00:28.260 --> 00:28.560 +{"text": "sense", "confidence": 1.0} + +00:28.560 --> 00:28.680 +{"text": "of", "confidence": 1.0} + +00:28.680 --> 00:29.190 +{"text": "identity", "confidence": 1.0} + +00:29.190 --> 00:29.880 +{"text": "shifts", "confidence": 1.0} + +00:31.020 --> 00:31.440 +{"text": "worm", "confidence": 1.0} + +00:31.470 --> 00:31.710 +{"text": "is", "confidence": 1.0} + +00:31.710 --> 00:31.770 +{"text": "a", "confidence": 1.0} + +00:31.770 --> 00:32.070 +{"text": "place", "confidence": 1.0} + +00:32.070 --> 00:32.190 +{"text": "of", "confidence": 1.0} + +00:32.190 --> 00:32.850 +{"text": "invention", "confidence": 1.0} + +00:32.850 --> 00:33.000 +{"text": "and", "confidence": 1.0} + +00:33.000 --> 00:33.810 +{"text": "reinvention", "confidence": 1.0} + +00:33.810 --> 00:34.170 +{"text": "and", "confidence": 1.0} + +00:34.230 --> 00:34.410 +{"text": "with", "confidence": 0.722413} + +00:34.410 --> 00:34.500 +{"text": "the", "confidence": 1.0} + +00:34.500 --> 00:34.920 +{"text": "constant", "confidence": 1.0} + +00:34.920 --> 00:35.460 +{"text": "motion", "confidence": 1.0} + +00:35.520 --> 00:35.880 +{"text": "certain", "confidence": 1.0} + +00:35.880 --> 00:36.390 +{"text": "stories", "confidence": 1.0} + +00:36.390 --> 00:36.510 +{"text": "and", "confidence": 1.0} + +00:36.510 --> 00:37.050 +{"text": "memories", "confidence": 1.0} + +00:37.080 --> 00:37.380 +{"text": "do", "confidence": 0.854091} + +00:37.410 --> 00:37.680 +{"text": "fade", "confidence": 1.0} + +00:37.680 --> 00:38.070 +{"text": "away", "confidence": 1.0} + +00:38.640 --> 00:39.120 +{"text": "sometimes", "confidence": 1.0} + +00:39.120 --> 00:39.330 +{"text": "quite", "confidence": 1.0} + +00:39.330 --> 00:39.870 +{"text": "quickly", "confidence": 1.0} + +00:40.770 --> 00:40.890 +{"text": "the", "confidence": 1.0} + +00:40.890 --> 00:41.160 +{"text": "idea", "confidence": 1.0} + +00:41.160 --> 00:41.310 +{"text": "of", "confidence": 1.0} + +00:41.340 --> 00:41.730 +{"text": "this", "confidence": 1.0} + +00:41.790 --> 00:42.240 +{"text": "history", "confidence": 1.0} + +00:42.240 --> 00:42.362 +{"text": "of", "confidence": 1.0} + +00:42.362 --> 00:42.564 +{"text": "why", "confidence": 0.478323} + +00:42.564 --> 00:42.780 +{"text": "i'm", "confidence": 1.0} + +00:42.870 --> 00:43.080 +{"text": "not", "confidence": 1.0} + +00:43.080 --> 00:43.200 +{"text": "the", "confidence": 1.0} + +00:43.260 --> 00:43.620 +{"text": "only", "confidence": 1.0} + +00:43.650 --> 00:44.130 +{"text": "possible", "confidence": 1.0} + +00:44.160 --> 00:44.640 +{"text": "history", "confidence": 1.0} + +00:44.670 --> 00:44.790 +{"text": "of", "confidence": 1.0} + +00:44.790 --> 00:45.270 +{"text": "course", "confidence": 1.0} + +00:45.330 --> 00:45.510 +{"text": "is", "confidence": 1.0} + +00:45.510 --> 00:45.630 +{"text": "to", "confidence": 1.0} + +00:45.630 --> 00:45.930 +{"text": "try", "confidence": 1.0} + +00:45.930 --> 00:46.080 +{"text": "and", "confidence": 1.0} + +00:46.080 --> 00:46.650 +{"text": "capture", "confidence": 1.0} + +00:47.040 --> 00:47.160 +{"text": "a", "confidence": 1.0} + +00:47.160 --> 00:47.370 +{"text": "few", "confidence": 1.0} + +00:47.370 --> 00:47.460 +{"text": "of", "confidence": 1.0} + +00:47.460 --> 00:47.700 +{"text": "those", "confidence": 1.0} + +00:47.700 --> 00:48.210 +{"text": "stories", "confidence": 1.0} + +00:48.240 --> 00:48.360 +{"text": "with", "confidence": 1.0} + +00:48.360 --> 00:48.420 +{"text": "the", "confidence": 1.0} + +00:48.420 --> 00:48.750 +{"text": "people", "confidence": 1.0} + +00:48.750 --> 00:48.900 +{"text": "that", "confidence": 1.0} + +00:48.930 --> 00:49.080 +{"text": "i've", "confidence": 1.0} + +00:49.080 --> 00:49.530 +{"text": "met", "confidence": 1.0} + +00:49.950 --> 00:50.121 +{"text": "and", "confidence": 1.0} + +00:50.139 --> 00:50.370 +{"text": "people", "confidence": 1.0} + +00:50.370 --> 00:50.490 +{"text": "that", "confidence": 0.966533} + +00:50.490 --> 00:50.748 +{"text": "maria", "confidence": 0.314138} + +00:50.748 --> 00:50.910 +{"text": "it", "confidence": 0.542389} + +00:50.934 --> 00:51.120 +{"text": "has", "confidence": 1.0} + +00:51.120 --> 00:51.570 +{"text": "known", "confidence": 0.49303} + +00:51.960 --> 00:52.230 +{"text": "along", "confidence": 1.0} + +00:52.230 --> 00:52.320 +{"text": "the", "confidence": 1.0} + +00:52.320 --> 00:52.680 +{"text": "way", "confidence": 1.0} + +00:53.790 --> 00:53.940 +{"text": "but", "confidence": 1.0} + +00:53.940 --> 00:54.000 +{"text": "i'm", "confidence": 1.0} + +00:54.000 --> 00:54.090 +{"text": "not", "confidence": 1.0} + +00:54.090 --> 00:54.210 +{"text": "going", "confidence": 1.0} + +00:54.210 --> 00:54.270 +{"text": "to", "confidence": 1.0} + +00:54.270 --> 00:54.630 +{"text": "begin", "confidence": 1.0} + +00:54.660 --> 00:54.780 +{"text": "at", "confidence": 1.0} + +00:54.780 --> 00:54.840 +{"text": "the", "confidence": 1.0} + +00:54.840 --> 00:55.380 +{"text": "beginning", "confidence": 1.0} + +00:55.920 --> 00:56.130 +{"text": "that", "confidence": 1.0} + +00:56.130 --> 00:56.250 +{"text": "would", "confidence": 1.0} + +00:56.250 --> 00:56.340 +{"text": "be", "confidence": 1.0} + +00:56.340 --> 00:56.730 +{"text": "logical", "confidence": 1.0} + +00:56.730 --> 00:56.880 +{"text": "but", "confidence": 1.0} + +00:56.880 --> 00:57.210 +{"text": "actually", "confidence": 1.0} + +00:57.210 --> 00:57.300 +{"text": "have", "confidence": 1.0} + +00:57.300 --> 00:57.540 +{"text": "already", "confidence": 1.0} + +00:57.540 --> 00:58.020 +{"text": "begun", "confidence": 1.0} + +00:58.050 --> 00:58.680 +{"text": "obviously", "confidence": 1.0} + +00:58.680 --> 00:58.860 +{"text": "and", "confidence": 1.0} + +00:58.860 --> 00:59.370 +{"text": "today's", "confidence": 1.0} + +00:59.370 --> 00:59.970 +{"text": "episode", "confidence": 1.0} +