From 7001eb4b514cc22f09b57475fdcb345012694d69 Mon Sep 17 00:00:00 2001 From: ronen barzel Date: Tue, 13 Sep 2016 12:03:27 +0100 Subject: [PATCH 1/5] delete broken vestigial import --- gentle/standard_kaldi.py | 1 - 1 file changed, 1 deletion(-) diff --git a/gentle/standard_kaldi.py b/gentle/standard_kaldi.py index 9ad91258..59bbd5cf 100644 --- a/gentle/standard_kaldi.py +++ b/gentle/standard_kaldi.py @@ -6,7 +6,6 @@ import tempfile import wave -from gentle import ffmpeg from util.paths import get_binary from gentle.rpc import RPCProtocol from gentle.resources import Resources From 0fc95c9be4d92173c94620a5c6ad396b9ac9f342 Mon Sep 17 00:00:00 2001 From: ronen barzel Date: Tue, 6 Sep 2016 13:10:40 +0100 Subject: [PATCH 2/5] export gentle.Transcription, add stats() and Transcription.from_jsonfile() --- gentle/__init__.py | 1 + gentle/transcription.py | 35 ++++++++++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/gentle/__init__.py b/gentle/__init__.py index 77a74e05..cfe17060 100644 --- a/gentle/__init__.py +++ b/gentle/__init__.py @@ -3,3 +3,4 @@ from forced_aligner import ForcedAligner from full_transcriber import FullTranscriber from resample import resample, resampled +from transcription import Transcription diff --git a/gentle/transcription.py b/gentle/transcription.py index a130c9f1..c6ec8d9e 100644 --- a/gentle/transcription.py +++ b/gentle/transcription.py @@ -5,6 +5,8 @@ import logging import wave +from collections import defaultdict + from multiprocessing.pool import ThreadPool as Pool class MultiThreadedTranscriber: @@ -68,12 +70,32 @@ def __init__(self, transcript=None, words=None): def to_json(self, **kwargs): '''Return a JSON representation of the aligned transcript''' + options = { + 'sort_keys': True, + 'indent': 4, + 'separators': (',', ': '), + } + options.update(kwargs) + container = {} if self.transcript: container['transcript'] = self.transcript if self.words: container['words'] = self.words - return json.dumps(container, **kwargs) + return json.dumps(container, **options) + + @classmethod + def from_json(cls, json_str): + return cls._from_jsondata(json.loads(json_str)) + + @classmethod + def from_jsonfile(cls, filename): + with open(filename) as fh: + return cls._from_jsondata(json.load(fh)) + + @classmethod + def _from_jsondata(cls, data): + return cls(transcript = data['transcript'], words = [Word(**wd) for wd in data['words']]) def to_csv(self): '''Return a CSV representation of the aligned transcript. Format: @@ -94,6 +116,17 @@ def to_csv(self): w.writerow(row) return buf.getvalue() + def stats(self): + counts = defaultdict(int) + for word in self.words: + counts[word["case"]] += 1 + stats = {} + stats['total'] = len(self.words) + for key, val in counts.iteritems(): + stats[key] = val + return stats + + if __name__=='__main__': # full transcription from Queue import Queue From e6fc2e9ac3da55076b40dc4adb2e4c198c0facd5 Mon Sep 17 00:00:00 2001 From: ronen barzel Date: Mon, 12 Sep 2016 14:57:44 +0100 Subject: [PATCH 3/5] make first-class object for transcription Words, rather than using dictionary --- gentle/diff_align.py | 70 +++++++++++---------- gentle/forced_aligner.py | 7 ++- gentle/full_transcriber.py | 24 ++++---- gentle/multipass.py | 34 ++++++----- gentle/transcriber.py | 84 +++++++++++++++++++++++++ gentle/transcription.py | 121 +++++++++++-------------------------- www/view_alignment.html | 2 +- 7 files changed, 190 insertions(+), 152 deletions(-) create mode 100644 gentle/transcriber.py diff --git a/gentle/diff_align.py b/gentle/diff_align.py index a40e1269..70cc6dd0 100644 --- a/gentle/diff_align.py +++ b/gentle/diff_align.py @@ -3,10 +3,11 @@ import os import sys -import metasentence -import language_model -import standard_kaldi -from resources import Resources +from gentle import metasentence +from gentle import language_model +from gentle import standard_kaldi +from gentle import transcription +from gentle.resources import Resources # TODO(maxhawkins): try using the (apparently-superior) time-mediated dynamic @@ -23,7 +24,7 @@ def align(alignment, ms, **kwargs): disfluency = kwargs['disfluency'] if 'disfluency' in kwargs else False disfluencies = kwargs['disfluencies'] if 'disfluencies' in kwargs else [] - hypothesis = [X["word"] for X in alignment] + hypothesis = [X.word for X in alignment] reference = ms.get_kaldi_sequence() display_seq = ms.get_display_sequence() @@ -36,17 +37,16 @@ def align(alignment, ms, **kwargs): word = hypothesis[a] if disfluency and word in disfluencies: hyp_token = alignment[a] - phones = hyp_token.get("phones", []) - start = hyp_token["start"] - end = hyp_token["start"] + hyp_token["duration"] - - out.append({ - "case": "not-found-in-transcript", - "phones": phones, - "start": start, - "end": end, - "word": word - }) + phones = hyp_token.phones or [] + start = hyp_token.start + end = hyp_token.start + hyp_token.duration + + out.append(transcription.Word( + case="not-found-in-transcript", + phones=phones, + start=start, + end=end, + word=word)) continue display_word = display_seq[b] @@ -55,28 +55,26 @@ def align(alignment, ms, **kwargs): if op == 'equal': hyp_word = hypothesis[a] hyp_token = alignment[a] - phones = hyp_token.get("phones", []) - start = hyp_token["start"] - end = hyp_token["start"] + hyp_token["duration"] - - out.append({ - "case": "success", - "startOffset": start_offset, - "endOffset": end_offset, - "word": display_word, - "alignedWord": hyp_word, - "phones": phones, - "start": start, - "end": end, - }) + phones = hyp_token.phones or [] + start = hyp_token.start + end = hyp_token.start + hyp_token.duration + + out.append(transcription.Word( + case="success", + startOffset=start_offset, + endOffset=end_offset, + word=display_word, + alignedWord=hyp_word, + phones=phones, + start=start, + end=end)) elif op in ['insert', 'replace']: - out.append({ - "case": "not-found-in-audio", - "startOffset": start_offset, - "endOffset": end_offset, - "word": display_word, - }) + out.append(transcription.Word( + case="not-found-in-audio", + startOffset=start_offset, + endOffset=end_offset, + word=display_word)) return out def word_diff(a, b): diff --git a/gentle/forced_aligner.py b/gentle/forced_aligner.py index b6c6658f..bff1c948 100644 --- a/gentle/forced_aligner.py +++ b/gentle/forced_aligner.py @@ -3,7 +3,8 @@ from gentle import language_model from gentle import metasentence from gentle import multipass -from gentle.transcription import MultiThreadedTranscriber, Transcription +from gentle.transcriber import MultiThreadedTranscriber +from gentle.transcription import Transcription class ForcedAligner(): @@ -31,7 +32,7 @@ def transcribe(self, wavfile, progress_cb=None, logging=None): # Perform a second-pass with unaligned words if logging is not None: - logging.info("%d unaligned words (of %d)" % (len([X for X in words if X.get("case") == "not-found-in-audio"]), len(words))) + logging.info("%d unaligned words (of %d)" % (len([X for X in words if X.case == "not-found-in-audio"]), len(words))) if progress_cb is not None: progress_cb({'status': 'ALIGNING'}) @@ -39,6 +40,6 @@ def transcribe(self, wavfile, progress_cb=None, logging=None): words = multipass.realign(wavfile, words, self.ms, resources=self.resources, nthreads=self.nthreads, progress_cb=progress_cb) if logging is not None: - logging.info("after 2nd pass: %d unaligned words (of %d)" % (len([X for X in words if X.get("case") == "not-found-in-audio"]), len(words))) + logging.info("after 2nd pass: %d unaligned words (of %d)" % (len([X for X in words if X.case == "not-found-in-audio"]), len(words))) return Transcription(words=words, transcript=self.transcript) diff --git a/gentle/full_transcriber.py b/gentle/full_transcriber.py index 025e7017..8d2bdfe8 100644 --- a/gentle/full_transcriber.py +++ b/gentle/full_transcriber.py @@ -1,7 +1,9 @@ import os from gentle import kaldi_queue -from gentle.transcription import MultiThreadedTranscriber, Transcription +from gentle import transcription +from gentle.transcriber import MultiThreadedTranscriber +from gentle.transcription import Transcription class FullTranscriber(): @@ -24,17 +26,17 @@ def make_transcription_alignment(trans): transcript = "" words = [] for t_wd in trans: - word = { - "case": "success", - "startOffset": len(transcript), - "endOffset": len(transcript) + len(t_wd["word"]), - "word": t_wd["word"], - "alignedWord": t_wd["word"], - "phones": t_wd["phones"], - "start": t_wd["start"], - "end": t_wd["start"] + t_wd["duration"]} + word = transcription.Word( + case="success", + startOffset=len(transcript), + endOffset=len(transcript) + len(t_wd.word), + word=t_wd.word, + alignedWord=t_wd.word, + phones=t_wd.phones, + start=t_wd.start, + end=t_wd.start + t_wd.duration) words.append(word) - transcript += word["word"] + " " + transcript += word.word + " " return Transcription(words=words, transcript=transcript) diff --git a/gentle/multipass.py b/gentle/multipass.py index 01f7d33f..052036eb 100644 --- a/gentle/multipass.py +++ b/gentle/multipass.py @@ -7,6 +7,7 @@ from gentle import metasentence from gentle import language_model from gentle import diff_align +from gentle import transcription def prepare_multipass(alignment): to_realign = [] @@ -14,9 +15,9 @@ def prepare_multipass(alignment): cur_unaligned_words = [] for wd_idx,wd in enumerate(alignment): - if wd['case'] == 'not-found-in-audio': + if wd.case == 'not-found-in-audio': cur_unaligned_words.append(wd) - elif wd['case'] == 'success': + elif wd.case == 'success': if len(cur_unaligned_words) > 0: to_realign.append({ "start": last_aligned_word, @@ -41,12 +42,15 @@ def realign(wavfile, alignment, ms, resources, nthreads=4, progress_cb=None): def realign(chunk): wav_obj = wave.open(wavfile, 'r') - start_t = (chunk["start"] or {"end": 0})["end"] - end_t = chunk["end"] - if end_t is None: + if chunk["start"] is None: + start_t = 0 + else: + start_t = chunk["start"].end + + if chunk["end"] is None: end_t = wav_obj.getnframes() / float(wav_obj.getframerate()) else: - end_t = end_t["start"] + end_t = chunk["end"].start duration = end_t - start_t if duration < 0.01 or duration > 60: @@ -54,8 +58,8 @@ def realign(chunk): return # Create a language model - offset_offset = chunk['words'][0]['startOffset'] - chunk_len = chunk['words'][-1]['endOffset'] - offset_offset + offset_offset = chunk['words'][0].startOffset + chunk_len = chunk['words'][-1].endOffset - offset_offset chunk_transcript = ms.raw_sentence[offset_offset:offset_offset+chunk_len].encode("utf-8") chunk_ms = metasentence.MetaSentence(chunk_transcript, resources.vocab) chunk_ks = chunk_ms.get_kaldi_sequence() @@ -71,21 +75,21 @@ def realign(chunk): buf = wav_obj.readframes(int(duration * wav_obj.getframerate())) k.push_chunk(buf) - ret = k.get_final() + ret = [transcription.Word(**wd) for wd in k.get_final()] k.stop() word_alignment = diff_align.align(ret, chunk_ms) # Adjust startOffset, endOffset, and timing to match originals for wd in word_alignment: - if wd.get("end"): + if wd.end is not None: # Apply timing offset - wd['start'] += start_t - wd['end'] += start_t + wd.start += start_t + wd.end += start_t - if wd.get("endOffset"): - wd['startOffset'] += offset_offset - wd['endOffset'] += offset_offset + if wd.endOffset is not None: + wd.startOffset += offset_offset + wd.endOffset += offset_offset # "chunk" should be replaced by "words" realignments.append({"chunk": chunk, "words": word_alignment}) diff --git a/gentle/transcriber.py b/gentle/transcriber.py new file mode 100644 index 00000000..a5fa52d7 --- /dev/null +++ b/gentle/transcriber.py @@ -0,0 +1,84 @@ +import math +import logging +import wave + +from gentle import transcription + +from multiprocessing.pool import ThreadPool as Pool + +class MultiThreadedTranscriber: + def __init__(self, kaldi_queue, chunk_len=20, overlap_t=2, nthreads=4): + self.chunk_len = chunk_len + self.overlap_t = overlap_t + self.nthreads = nthreads + + self.kaldi_queue = kaldi_queue + + def transcribe(self, wavfile, progress_cb=None): + wav_obj = wave.open(wavfile, 'r') + duration = wav_obj.getnframes() / float(wav_obj.getframerate()) + n_chunks = int(math.ceil(duration / float(self.chunk_len - self.overlap_t))) + + chunks = [] + + def transcribe_chunk(idx): + wav_obj = wave.open(wavfile, 'r') + start_t = idx * (self.chunk_len - self.overlap_t) + # Seek + wav_obj.setpos(int(start_t * wav_obj.getframerate())) + # Read frames + buf = wav_obj.readframes(int(self.chunk_len * wav_obj.getframerate())) + + k = self.kaldi_queue.get() + k.push_chunk(buf) + ret = k.get_final() + k.reset() + self.kaldi_queue.put(k) + + chunks.append({"start": start_t, "words": ret}) + logging.info('%d/%d' % (len(chunks), n_chunks)) + if progress_cb is not None: + progress_cb({"message": ' '.join([X['word'] for X in ret]), + "percent": len(chunks) / float(n_chunks)}) + + + pool = Pool(min(n_chunks, self.nthreads)) + pool.map(transcribe_chunk, range(n_chunks)) + pool.close() + + chunks.sort(key=lambda x: x['start']) + + # Combine chunks + # TODO: remove overlap? ...or just let the sequence aligner deal with it. + words = [] + for c in chunks: + chunk_start = c['start'] + for wd in c['words']: + wd['start'] += chunk_start + words.append(transcription.Word(**wd)) + + return words + + +if __name__=='__main__': + # full transcription + from Queue import Queue + from util import ffmpeg + from gentle import standard_kaldi + + import sys + + import logging + logging.getLogger().setLevel('INFO') + + k_queue = Queue() + for i in range(3): + k_queue.put(standard_kaldi.Kaldi()) + + trans = MultiThreadedTranscriber(k_queue) + + with gentle.resampled(sys.argv[1]) as filename: + out = trans.transcribe(filename) + + open(sys.argv[2], 'w').write(out.to_json()) + diff --git a/gentle/transcription.py b/gentle/transcription.py index c6ec8d9e..ebf13648 100644 --- a/gentle/transcription.py +++ b/gentle/transcription.py @@ -1,66 +1,33 @@ import csv import io import json -import math -import logging -import wave from collections import defaultdict -from multiprocessing.pool import ThreadPool as Pool - -class MultiThreadedTranscriber: - def __init__(self, kaldi_queue, chunk_len=20, overlap_t=2, nthreads=4): - self.chunk_len = chunk_len - self.overlap_t = overlap_t - self.nthreads = nthreads - - self.kaldi_queue = kaldi_queue - - def transcribe(self, wavfile, progress_cb=None): - wav_obj = wave.open(wavfile, 'r') - duration = wav_obj.getnframes() / float(wav_obj.getframerate()) - n_chunks = int(math.ceil(duration / float(self.chunk_len - self.overlap_t))) - - chunks = [] - - def transcribe_chunk(idx): - wav_obj = wave.open(wavfile, 'r') - start_t = idx * (self.chunk_len - self.overlap_t) - # Seek - wav_obj.setpos(int(start_t * wav_obj.getframerate())) - # Read frames - buf = wav_obj.readframes(int(self.chunk_len * wav_obj.getframerate())) - - k = self.kaldi_queue.get() - k.push_chunk(buf) - ret = k.get_final() - k.reset() - self.kaldi_queue.put(k) - - chunks.append({"start": start_t, "words": ret}) - logging.info('%d/%d' % (len(chunks), n_chunks)) - if progress_cb is not None: - progress_cb({"message": ' '.join([X['word'] for X in ret]), - "percent": len(chunks) / float(n_chunks)}) - - - pool = Pool(min(n_chunks, self.nthreads)) - pool.map(transcribe_chunk, range(n_chunks)) - pool.close() - - chunks.sort(key=lambda x: x['start']) - - # Combine chunks - # TODO: remove overlap? ...or just let the sequence aligner deal with it. - words = [] - for c in chunks: - chunk_start = c['start'] - for wd in c['words']: - wd['start'] += chunk_start - words.append(wd) - - return words +class Word: + + def __init__(self, case=None, startOffset=None, endOffset=None, word=None, alignedWord=None, phones=None, start=None, end=None, duration=None): + self.case = case + self.startOffset = startOffset + self.endOffset = endOffset + self.word = word + self.alignedWord = alignedWord + self.phones = phones + self.start = start + self.end = end + self.duration = duration + + def as_dict(self): + return { key:val for key, val in self.__dict__.iteritems() if val is not None } + + def __eq__(self, other): + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not self == other + + def __repr__(self): + return "Word(" + " ".join(sorted([key + "=" + str(val) for key, val in self.as_dict().iteritems()])) + ")" class Transcription: @@ -68,6 +35,9 @@ def __init__(self, transcript=None, words=None): self.transcript = transcript self.words = words + def __eq__(self, other): + return self.transcript == other.transcript and self.words == other.words + def to_json(self, **kwargs): '''Return a JSON representation of the aligned transcript''' options = { @@ -81,7 +51,7 @@ def to_json(self, **kwargs): if self.transcript: container['transcript'] = self.transcript if self.words: - container['words'] = self.words + container['words'] = [word.as_dict() for word in self.words] return json.dumps(container, **options) @classmethod @@ -106,12 +76,12 @@ def to_csv(self): buf = io.BytesIO() w = csv.writer(buf) for X in self.words: - if X.get("case") not in ("success", "not-found-in-audio"): + if X.case not in ("success", "not-found-in-audio"): continue - row = [X["word"], - X.get("alignedWord"), - X.get("start"), - X.get("end") + row = [X.word, + X.alignedWord, + X.start, + X.end ] w.writerow(row) return buf.getvalue() @@ -119,32 +89,11 @@ def to_csv(self): def stats(self): counts = defaultdict(int) for word in self.words: - counts[word["case"]] += 1 + counts[word.case] += 1 stats = {} stats['total'] = len(self.words) for key, val in counts.iteritems(): stats[key] = val return stats - -if __name__=='__main__': - # full transcription - from Queue import Queue - from util import ffmpeg - from gentle import standard_kaldi - - import sys - - import logging - logging.getLogger().setLevel('INFO') - - k_queue = Queue() - for i in range(3): - k_queue.put(standard_kaldi.Kaldi()) - - trans = MultiThreadedTranscriber(k_queue) - - with gentle.resampled(sys.argv[1]) as filename: - out = trans.transcribe(filename) - - open(sys.argv[2], 'w').write(out.to_json()) +Transcription.Word = Word diff --git a/www/view_alignment.html b/www/view_alignment.html index 7125c8c4..63e7cb37 100644 --- a/www/view_alignment.html +++ b/www/view_alignment.html @@ -258,7 +258,7 @@

Gentle

var currentOffset = 0; wds.forEach(function(wd) { - if(wd['case'] == 'not-found-in-transcript') { + if(wd.case == 'not-found-in-transcript') { // TODO: show phonemes somewhere var txt = ' ' + wd.word; var $plaintext = document.createTextNode(txt); From 1a7633d8a9249b1dc4a49fccf02e814b532657ee Mon Sep 17 00:00:00 2001 From: ronen barzel Date: Thu, 1 Sep 2016 12:35:47 +0100 Subject: [PATCH 4/5] Add test mechanism --- .gitignore | 1 + pytest.ini | 2 + tests/.gitignore | 1 + tests/__init__.py | 1 + tests/data/inputs/README.md | 5 + .../inputs/harvard-sentences-list30-s01.mp3 | Bin 0 -> 14229 bytes .../data/inputs/harvard-sentences-list30.mp3 | Bin 0 -> 167373 bytes .../data/inputs/harvard-sentences-list30.txt | 10 + .../forced-harvard-sentences-list30.json | 2015 +++++++++++++++++ .../full-harvard-sentences-list30-s01.json | 223 ++ tests/helpers.py | 20 + tests/test_forced_aligner.py | 34 + tests/test_full_transcriber.py | 26 + 13 files changed, 2338 insertions(+) create mode 100644 pytest.ini create mode 100644 tests/.gitignore create mode 100644 tests/__init__.py create mode 100644 tests/data/inputs/README.md create mode 100644 tests/data/inputs/harvard-sentences-list30-s01.mp3 create mode 100644 tests/data/inputs/harvard-sentences-list30.mp3 create mode 100644 tests/data/inputs/harvard-sentences-list30.txt create mode 100644 tests/data/results/forced-harvard-sentences-list30.json create mode 100644 tests/data/results/full-harvard-sentences-list30-s01.json create mode 100644 tests/helpers.py create mode 100644 tests/test_forced_aligner.py create mode 100644 tests/test_full_transcriber.py diff --git a/.gitignore b/.gitignore index 646de6fd..7734e2a4 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ ext/.depend.mk *.pyc *~ webdata/ +.cache/ diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 00000000..21ffa1d4 --- /dev/null +++ b/pytest.ini @@ -0,0 +1,2 @@ +[pytest] +addopts = --disable-pytest-warnings diff --git a/tests/.gitignore b/tests/.gitignore new file mode 100644 index 00000000..d0e8fdb3 --- /dev/null +++ b/tests/.gitignore @@ -0,0 +1 @@ +!data/ diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 00000000..56764ff1 --- /dev/null +++ b/tests/__init__.py @@ -0,0 +1 @@ +# nothing here right now diff --git a/tests/data/inputs/README.md b/tests/data/inputs/README.md new file mode 100644 index 00000000..1c139078 --- /dev/null +++ b/tests/data/inputs/README.md @@ -0,0 +1,5 @@ +## Data sources: + +Harvard Sentences audio files taken from the Open Speech Repository at http://www.voiptroubleshooter.com/open_speech/american.html + +The Harvard Sentences are listed at http://www.cs.columbia.edu/%7Ehgs/audio/harvard.html diff --git a/tests/data/inputs/harvard-sentences-list30-s01.mp3 b/tests/data/inputs/harvard-sentences-list30-s01.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..6714a2cfb89c6f2191b3e9f8cbc4cea6c18d5274 GIT binary patch literal 14229 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

aE-vJq?2>A=GZz6JhGL!;4_6vv(=1vGPWvl< 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 J2>%Z=|1Y}fx8DE& literal 0 HcmV?d00001 diff --git a/tests/data/inputs/harvard-sentences-list30.mp3 b/tests/data/inputs/harvard-sentences-list30.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..5319b96629ab6c73503f50f0650857c667158392 GIT binary patch literal 167373 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 K0f7I9vHTy4$4`v_ literal 0 HcmV?d00001 diff --git a/tests/data/inputs/harvard-sentences-list30.txt b/tests/data/inputs/harvard-sentences-list30.txt new file mode 100644 index 00000000..c6f9011b --- /dev/null +++ b/tests/data/inputs/harvard-sentences-list30.txt @@ -0,0 +1,10 @@ +The mute muffled the high tones of the horn. +The gold ring fits only a pierced ear. +The old pan was covered with hard fudge. +Watch the log float in the wide river. +The node on the stalk of wheat grew daily. +The heap of fallen leaves was set on fire. +Write fast, if you want to finish early. +His shirt was clean but one button was gone. +The barrel of beer was a brew of malt and hops. +Tin cans are absent from store shelves. diff --git a/tests/data/results/forced-harvard-sentences-list30.json b/tests/data/results/forced-harvard-sentences-list30.json new file mode 100644 index 00000000..eb87a521 --- /dev/null +++ b/tests/data/results/forced-harvard-sentences-list30.json @@ -0,0 +1,2015 @@ +{ + "transcript": "The mute muffled the high tones of the horn.\nThe gold ring fits only a pierced ear.\nThe old pan was covered with hard fudge.\nWatch the log float in the wide river.\nThe node on the stalk of wheat grew daily.\nThe heap of fallen leaves was set on fire.\nWrite fast, if you want to finish early.\nHis shirt was clean but one button was gone.\nThe barrel of beer was a brew of malt and hops.\nTin cans are absent from store shelves.\n", + "words": [ + { + "alignedWord": "the", + "case": "success", + "end": 1.29, + "endOffset": 3, + "phones": [ + { + "duration": 0.18, + "phone": "dh_B" + }, + { + "duration": 0.08, + "phone": "iy_E" + } + ], + "start": 1.03, + "startOffset": 0, + "word": "The" + }, + { + "alignedWord": "mute", + "case": "success", + "end": 1.6400000000000001, + "endOffset": 8, + "phones": [ + { + "duration": 0.08, + "phone": "m_B" + }, + { + "duration": 0.12, + "phone": "y_I" + }, + { + "duration": 0.11, + "phone": "uw_I" + }, + { + "duration": 0.04, + "phone": "t_E" + } + ], + "start": 1.29, + "startOffset": 4, + "word": "mute" + }, + { + "alignedWord": "muffled", + "case": "success", + "end": 2.42, + "endOffset": 16, + "phones": [ + { + "duration": 0.23, + "phone": "m_B" + }, + { + "duration": 0.1, + "phone": "ah_I" + }, + { + "duration": 0.14, + "phone": "f_I" + }, + { + "duration": 0.04, + "phone": "ah_I" + }, + { + "duration": 0.13, + "phone": "l_I" + }, + { + "duration": 0.07, + "phone": "d_E" + } + ], + "start": 1.71, + "startOffset": 9, + "word": "muffled" + }, + { + "alignedWord": "the", + "case": "success", + "end": 2.6700000000000004, + "endOffset": 20, + "phones": [ + { + "duration": 0.13, + "phone": "dh_B" + }, + { + "duration": 0.09, + "phone": "iy_E" + } + ], + "start": 2.45, + "startOffset": 17, + "word": "the" + }, + { + "alignedWord": "high", + "case": "success", + "end": 2.83, + "endOffset": 25, + "phones": [ + { + "duration": 0.11, + "phone": "hh_B" + }, + { + "duration": 0.05, + "phone": "ay_E" + } + ], + "start": 2.67, + "startOffset": 21, + "word": "high" + }, + { + "alignedWord": "tones", + "case": "success", + "end": 3.55, + "endOffset": 31, + "phones": [ + { + "duration": 0.14, + "phone": "t_B" + }, + { + "duration": 0.25, + "phone": "ow_I" + }, + { + "duration": 0.08, + "phone": "n_I" + }, + { + "duration": 0.07, + "phone": "z_E" + } + ], + "start": 3.01, + "startOffset": 26, + "word": "tones" + }, + { + "alignedWord": "of", + "case": "success", + "end": 3.74, + "endOffset": 34, + "phones": [ + { + "duration": 0.09, + "phone": "ah_B" + }, + { + "duration": 0.07, + "phone": "v_E" + } + ], + "start": 3.58, + "startOffset": 32, + "word": "of" + }, + { + "alignedWord": "the", + "case": "success", + "end": 3.8400000000000003, + "endOffset": 38, + "phones": [ + { + "duration": 0.03, + "phone": "dh_B" + }, + { + "duration": 0.07, + "phone": "iy_E" + } + ], + "start": 3.74, + "startOffset": 35, + "word": "the" + }, + { + "alignedWord": "horn", + "case": "success", + "end": 4.34, + "endOffset": 43, + "phones": [ + { + "duration": 0.08, + "phone": "hh_B" + }, + { + "duration": 0.18, + "phone": "ao_I" + }, + { + "duration": 0.12, + "phone": "r_I" + }, + { + "duration": 0.12, + "phone": "n_E" + } + ], + "start": 3.84, + "startOffset": 39, + "word": "horn" + }, + { + "alignedWord": "the", + "case": "success", + "end": 6.36, + "endOffset": 48, + "phones": [ + { + "duration": 0.11, + "phone": "dh_B" + }, + { + "duration": 0.08, + "phone": "iy_E" + } + ], + "start": 6.17, + "startOffset": 45, + "word": "The" + }, + { + "alignedWord": "gold", + "case": "success", + "end": 6.8500000000000005, + "endOffset": 53, + "phones": [ + { + "duration": 0.08, + "phone": "g_B" + }, + { + "duration": 0.11, + "phone": "ow_I" + }, + { + "duration": 0.18, + "phone": "l_I" + }, + { + "duration": 0.12, + "phone": "d_E" + } + ], + "start": 6.36, + "startOffset": 49, + "word": "gold" + }, + { + "alignedWord": "ring", + "case": "success", + "end": 7.27, + "endOffset": 58, + "phones": [ + { + "duration": 0.11, + "phone": "r_B" + }, + { + "duration": 0.09, + "phone": "ih_I" + }, + { + "duration": 0.22, + "phone": "ng_E" + } + ], + "start": 6.85, + "startOffset": 54, + "word": "ring" + }, + { + "alignedWord": "fits", + "case": "success", + "end": 7.92, + "endOffset": 63, + "phones": [ + { + "duration": 0.22, + "phone": "f_B" + }, + { + "duration": 0.12, + "phone": "ih_I" + }, + { + "duration": 0.1, + "phone": "t_I" + }, + { + "duration": 0.18, + "phone": "s_E" + } + ], + "start": 7.3, + "startOffset": 59, + "word": "fits" + }, + { + "alignedWord": "only", + "case": "success", + "end": 8.63, + "endOffset": 68, + "phones": [ + { + "duration": 0.11, + "phone": "ow_B" + }, + { + "duration": 0.25, + "phone": "n_I" + }, + { + "duration": 0.09, + "phone": "l_I" + }, + { + "duration": 0.12, + "phone": "iy_E" + } + ], + "start": 8.06, + "startOffset": 64, + "word": "only" + }, + { + "alignedWord": "a", + "case": "success", + "end": 8.73, + "endOffset": 70, + "phones": [ + { + "duration": 0.1, + "phone": "ah_S" + } + ], + "start": 8.63, + "startOffset": 69, + "word": "a" + }, + { + "alignedWord": "pierced", + "case": "success", + "end": 9.27, + "endOffset": 78, + "phones": [ + { + "duration": 0.09, + "phone": "p_B" + }, + { + "duration": 0.12, + "phone": "ih_I" + }, + { + "duration": 0.1, + "phone": "r_I" + }, + { + "duration": 0.04, + "phone": "s_I" + }, + { + "duration": 0.14, + "phone": "t_E" + } + ], + "start": 8.78, + "startOffset": 71, + "word": "pierced" + }, + { + "alignedWord": "ear", + "case": "success", + "end": 9.74, + "endOffset": 82, + "phones": [ + { + "duration": 0.23, + "phone": "ih_B" + }, + { + "duration": 0.21, + "phone": "r_E" + } + ], + "start": 9.3, + "startOffset": 79, + "word": "ear" + }, + { + "alignedWord": "the", + "case": "success", + "end": 12.11, + "endOffset": 87, + "phones": [ + { + "duration": 0.16, + "phone": "dh_B" + }, + { + "duration": 0.11, + "phone": "iy_E" + } + ], + "start": 11.84, + "startOffset": 84, + "word": "The" + }, + { + "alignedWord": "old", + "case": "success", + "end": 12.450000000000001, + "endOffset": 91, + "phones": [ + { + "duration": 0.19, + "phone": "ow_B" + }, + { + "duration": 0.06, + "phone": "l_I" + }, + { + "duration": 0.06, + "phone": "d_E" + } + ], + "start": 12.14, + "startOffset": 88, + "word": "old" + }, + { + "alignedWord": "pan", + "case": "success", + "end": 13.11, + "endOffset": 95, + "phones": [ + { + "duration": 0.17, + "phone": "p_B" + }, + { + "duration": 0.26, + "phone": "ae_I" + }, + { + "duration": 0.17, + "phone": "n_E" + } + ], + "start": 12.51, + "startOffset": 92, + "word": "pan" + }, + { + "alignedWord": "was", + "case": "success", + "end": 13.299999999999999, + "endOffset": 99, + "phones": [ + { + "duration": 0.06, + "phone": "w_B" + }, + { + "duration": 0.05, + "phone": "ao_I" + }, + { + "duration": 0.08, + "phone": "z_E" + } + ], + "start": 13.11, + "startOffset": 96, + "word": "was" + }, + { + "alignedWord": "covered", + "case": "success", + "end": 13.82, + "endOffset": 107, + "phones": [ + { + "duration": 0.17, + "phone": "k_B" + }, + { + "duration": 0.09, + "phone": "ah_I" + }, + { + "duration": 0.08, + "phone": "v_I" + }, + { + "duration": 0.09, + "phone": "er_I" + }, + { + "duration": 0.09, + "phone": "d_E" + } + ], + "start": 13.3, + "startOffset": 100, + "word": "covered" + }, + { + "alignedWord": "with", + "case": "success", + "end": 14.030000000000001, + "endOffset": 112, + "phones": [ + { + "duration": 0.09, + "phone": "w_B" + }, + { + "duration": 0.06, + "phone": "ih_I" + }, + { + "duration": 0.06, + "phone": "th_E" + } + ], + "start": 13.82, + "startOffset": 108, + "word": "with" + }, + { + "alignedWord": "hard", + "case": "success", + "end": 14.58, + "endOffset": 117, + "phones": [ + { + "duration": 0.22, + "phone": "hh_B" + }, + { + "duration": 0.13, + "phone": "aa_I" + }, + { + "duration": 0.09, + "phone": "r_I" + }, + { + "duration": 0.08, + "phone": "d_E" + } + ], + "start": 14.06, + "startOffset": 113, + "word": "hard" + }, + { + "alignedWord": "fudge", + "case": "success", + "end": 15.42, + "endOffset": 123, + "phones": [ + { + "duration": 0.03, + "phone": "f_B" + }, + { + "duration": 0.21, + "phone": "ah_I" + }, + { + "duration": 0.38, + "phone": "jh_E" + } + ], + "start": 14.8, + "startOffset": 118, + "word": "fudge" + }, + { + "alignedWord": "watch", + "case": "success", + "end": 17.98, + "endOffset": 130, + "phones": [ + { + "duration": 0.18, + "phone": "w_B" + }, + { + "duration": 0.19, + "phone": "ao_I" + }, + { + "duration": 0.17, + "phone": "ch_E" + } + ], + "start": 17.44, + "startOffset": 125, + "word": "Watch" + }, + { + "alignedWord": "the", + "case": "success", + "end": 18.19, + "endOffset": 134, + "phones": [ + { + "duration": 0.08, + "phone": "dh_B" + }, + { + "duration": 0.11, + "phone": "iy_E" + } + ], + "start": 18, + "startOffset": 131, + "word": "the" + }, + { + "alignedWord": "log", + "case": "success", + "end": 18.64, + "endOffset": 138, + "phones": [ + { + "duration": 0.08, + "phone": "l_B" + }, + { + "duration": 0.24, + "phone": "ao_I" + }, + { + "duration": 0.13, + "phone": "g_E" + } + ], + "start": 18.19, + "startOffset": 135, + "word": "log" + }, + { + "alignedWord": "float", + "case": "success", + "end": 19.21, + "endOffset": 144, + "phones": [ + { + "duration": 0.09, + "phone": "f_B" + }, + { + "duration": 0.07, + "phone": "l_I" + }, + { + "duration": 0.17, + "phone": "ow_I" + }, + { + "duration": 0.11, + "phone": "t_E" + } + ], + "start": 18.77, + "startOffset": 139, + "word": "float" + }, + { + "alignedWord": "in", + "case": "success", + "end": 19.48, + "endOffset": 147, + "phones": [ + { + "duration": 0.1, + "phone": "ih_B" + }, + { + "duration": 0.1, + "phone": "n_E" + } + ], + "start": 19.28, + "startOffset": 145, + "word": "in" + }, + { + "alignedWord": "the", + "case": "success", + "end": 19.6, + "endOffset": 151, + "phones": [ + { + "duration": 0.04, + "phone": "dh_B" + }, + { + "duration": 0.08, + "phone": "iy_E" + } + ], + "start": 19.48, + "startOffset": 148, + "word": "the" + }, + { + "alignedWord": "wide", + "case": "success", + "end": 20.1, + "endOffset": 156, + "phones": [ + { + "duration": 0.15, + "phone": "w_B" + }, + { + "duration": 0.29, + "phone": "ay_I" + }, + { + "duration": 0.06, + "phone": "d_E" + } + ], + "start": 19.6, + "startOffset": 152, + "word": "wide" + }, + { + "alignedWord": "river", + "case": "success", + "end": 20.779999999999998, + "endOffset": 162, + "phones": [ + { + "duration": 0.23, + "phone": "r_B" + }, + { + "duration": 0.05, + "phone": "ih_I" + }, + { + "duration": 0.1, + "phone": "v_I" + }, + { + "duration": 0.27, + "phone": "er_E" + } + ], + "start": 20.13, + "startOffset": 157, + "word": "river" + }, + { + "alignedWord": "the", + "case": "success", + "end": 22.9, + "endOffset": 167, + "phones": [ + { + "duration": 0.18, + "phone": "dh_B" + }, + { + "duration": 0.09, + "phone": "iy_E" + } + ], + "start": 22.63, + "startOffset": 164, + "word": "The" + }, + { + "alignedWord": "node", + "case": "success", + "end": 23.389999999999997, + "endOffset": 172, + "phones": [ + { + "duration": 0.11, + "phone": "n_B" + }, + { + "duration": 0.3, + "phone": "ow_I" + }, + { + "duration": 0.08, + "phone": "d_E" + } + ], + "start": 22.9, + "startOffset": 168, + "word": "node" + }, + { + "alignedWord": "on", + "case": "success", + "end": 23.61, + "endOffset": 175, + "phones": [ + { + "duration": 0.13, + "phone": "ao_B" + }, + { + "duration": 0.09, + "phone": "n_E" + } + ], + "start": 23.39, + "startOffset": 173, + "word": "on" + }, + { + "alignedWord": "the", + "case": "success", + "end": 23.72, + "endOffset": 179, + "phones": [ + { + "duration": 0.04, + "phone": "dh_B" + }, + { + "duration": 0.07, + "phone": "iy_E" + } + ], + "start": 23.61, + "startOffset": 176, + "word": "the" + }, + { + "alignedWord": "stalk", + "case": "success", + "end": 24.369999999999997, + "endOffset": 185, + "phones": [ + { + "duration": 0.17, + "phone": "s_B" + }, + { + "duration": 0.07, + "phone": "t_I" + }, + { + "duration": 0.27, + "phone": "ao_I" + }, + { + "duration": 0.14, + "phone": "k_E" + } + ], + "start": 23.72, + "startOffset": 180, + "word": "stalk" + }, + { + "alignedWord": "of", + "case": "success", + "end": 24.549999999999997, + "endOffset": 188, + "phones": [ + { + "duration": 0.09, + "phone": "ah_B" + }, + { + "duration": 0.06, + "phone": "v_E" + } + ], + "start": 24.4, + "startOffset": 186, + "word": "of" + }, + { + "alignedWord": "wheat", + "case": "success", + "end": 24.990000000000002, + "endOffset": 194, + "phones": [ + { + "duration": 0.03, + "phone": "hh_B" + }, + { + "duration": 0.15, + "phone": "w_I" + }, + { + "duration": 0.15, + "phone": "iy_I" + }, + { + "duration": 0.11, + "phone": "t_E" + } + ], + "start": 24.55, + "startOffset": 189, + "word": "wheat" + }, + { + "alignedWord": "grew", + "case": "success", + "end": 25.479999999999997, + "endOffset": 199, + "phones": [ + { + "duration": 0.16, + "phone": "g_B" + }, + { + "duration": 0.07, + "phone": "r_I" + }, + { + "duration": 0.17, + "phone": "uw_E" + } + ], + "start": 25.08, + "startOffset": 195, + "word": "grew" + }, + { + "alignedWord": "daily", + "case": "success", + "end": 26.14, + "endOffset": 205, + "phones": [ + { + "duration": 0.11, + "phone": "d_B" + }, + { + "duration": 0.2, + "phone": "ey_I" + }, + { + "duration": 0.07, + "phone": "l_I" + }, + { + "duration": 0.28, + "phone": "iy_E" + } + ], + "start": 25.48, + "startOffset": 200, + "word": "daily" + }, + { + "alignedWord": "the", + "case": "success", + "end": 27.81, + "endOffset": 210, + "phones": [ + { + "duration": 0.19, + "phone": "dh_B" + }, + { + "duration": 0.03, + "phone": "ah_E" + } + ], + "start": 27.59, + "startOffset": 207, + "word": "The" + }, + { + "alignedWord": "heap", + "case": "success", + "end": 28.240000000000002, + "endOffset": 215, + "phones": [ + { + "duration": 0.22, + "phone": "hh_B" + }, + { + "duration": 0.16, + "phone": "iy_I" + }, + { + "duration": 0.05, + "phone": "p_E" + } + ], + "start": 27.810000000000002, + "startOffset": 211, + "word": "heap" + }, + { + "alignedWord": "of", + "case": "success", + "end": 28.5, + "endOffset": 218, + "phones": [ + { + "duration": 0.13, + "phone": "ah_B" + }, + { + "duration": 0.08, + "phone": "v_E" + } + ], + "start": 28.29, + "startOffset": 216, + "word": "of" + }, + { + "alignedWord": "fallen", + "case": "success", + "end": 29.05, + "endOffset": 225, + "phones": [ + { + "duration": 0.09, + "phone": "f_B" + }, + { + "duration": 0.13, + "phone": "aa_I" + }, + { + "duration": 0.08, + "phone": "l_I" + }, + { + "duration": 0.04, + "phone": "ah_I" + }, + { + "duration": 0.15, + "phone": "n_E" + } + ], + "start": 28.560000000000002, + "startOffset": 219, + "word": "fallen" + }, + { + "alignedWord": "leaves", + "case": "success", + "end": 29.580000000000002, + "endOffset": 232, + "phones": [ + { + "duration": 0.07, + "phone": "l_B" + }, + { + "duration": 0.25, + "phone": "iy_I" + }, + { + "duration": 0.04, + "phone": "v_I" + }, + { + "duration": 0.17, + "phone": "z_E" + } + ], + "start": 29.05, + "startOffset": 226, + "word": "leaves" + }, + { + "alignedWord": "was", + "case": "success", + "end": 29.89, + "endOffset": 236, + "phones": [ + { + "duration": 0.13, + "phone": "w_B" + }, + { + "duration": 0.06, + "phone": "ah_I" + }, + { + "duration": 0.06, + "phone": "z_E" + } + ], + "start": 29.64, + "startOffset": 233, + "word": "was" + }, + { + "alignedWord": "set", + "case": "success", + "end": 30.26, + "endOffset": 240, + "phones": [ + { + "duration": 0.14, + "phone": "s_B" + }, + { + "duration": 0.12, + "phone": "eh_I" + }, + { + "duration": 0.08, + "phone": "t_E" + } + ], + "start": 29.92, + "startOffset": 237, + "word": "set" + }, + { + "alignedWord": "on", + "case": "success", + "end": 30.52, + "endOffset": 243, + "phones": [ + { + "duration": 0.12, + "phone": "ao_B" + }, + { + "duration": 0.1, + "phone": "n_E" + } + ], + "start": 30.3, + "startOffset": 241, + "word": "on" + }, + { + "alignedWord": "fire", + "case": "success", + "end": 31.21, + "endOffset": 248, + "phones": [ + { + "duration": 0.18, + "phone": "f_B" + }, + { + "duration": 0.25, + "phone": "ay_I" + }, + { + "duration": 0.26, + "phone": "r_E" + } + ], + "start": 30.52, + "startOffset": 244, + "word": "fire" + }, + { + "alignedWord": "write", + "case": "success", + "end": 33.22, + "endOffset": 255, + "phones": [ + { + "duration": 0.19, + "phone": "r_B" + }, + { + "duration": 0.08, + "phone": "ay_I" + }, + { + "duration": 0.1, + "phone": "t_E" + } + ], + "start": 32.85, + "startOffset": 250, + "word": "Write" + }, + { + "alignedWord": "fast", + "case": "success", + "end": 33.79, + "endOffset": 260, + "phones": [ + { + "duration": 0.14, + "phone": "f_B" + }, + { + "duration": 0.24, + "phone": "ae_I" + }, + { + "duration": 0.06, + "phone": "s_I" + }, + { + "duration": 0.09, + "phone": "t_E" + } + ], + "start": 33.26, + "startOffset": 256, + "word": "fast" + }, + { + "alignedWord": "if", + "case": "success", + "end": 33.96, + "endOffset": 264, + "phones": [ + { + "duration": 0.09, + "phone": "ih_B" + }, + { + "duration": 0.08, + "phone": "f_E" + } + ], + "start": 33.79, + "startOffset": 262, + "word": "if" + }, + { + "alignedWord": "you", + "case": "success", + "end": 34.08, + "endOffset": 268, + "phones": [ + { + "duration": 0.06, + "phone": "y_B" + }, + { + "duration": 0.06, + "phone": "uw_E" + } + ], + "start": 33.96, + "startOffset": 265, + "word": "you" + }, + { + "alignedWord": "want", + "case": "success", + "end": 34.379999999999995, + "endOffset": 273, + "phones": [ + { + "duration": 0.08, + "phone": "w_B" + }, + { + "duration": 0.1, + "phone": "ao_I" + }, + { + "duration": 0.05, + "phone": "n_I" + }, + { + "duration": 0.07, + "phone": "t_E" + } + ], + "start": 34.08, + "startOffset": 269, + "word": "want" + }, + { + "alignedWord": "to", + "case": "success", + "end": 34.489999999999995, + "endOffset": 276, + "phones": [ + { + "duration": 0.04, + "phone": "t_B" + }, + { + "duration": 0.07, + "phone": "uw_E" + } + ], + "start": 34.379999999999995, + "startOffset": 274, + "word": "to" + }, + { + "alignedWord": "finish", + "case": "success", + "end": 35.019999999999996, + "endOffset": 283, + "phones": [ + { + "duration": 0.11, + "phone": "f_B" + }, + { + "duration": 0.07, + "phone": "ih_I" + }, + { + "duration": 0.06, + "phone": "n_I" + }, + { + "duration": 0.07, + "phone": "ih_I" + }, + { + "duration": 0.22, + "phone": "sh_E" + } + ], + "start": 34.489999999999995, + "startOffset": 277, + "word": "finish" + }, + { + "alignedWord": "early", + "case": "success", + "end": 35.730000000000004, + "endOffset": 289, + "phones": [ + { + "duration": 0.28, + "phone": "er_B" + }, + { + "duration": 0.13, + "phone": "l_I" + }, + { + "duration": 0.26, + "phone": "iy_E" + } + ], + "start": 35.06, + "startOffset": 284, + "word": "early" + }, + { + "alignedWord": "his", + "case": "success", + "end": 37.8, + "endOffset": 294, + "phones": [ + { + "duration": 0.14, + "phone": "hh_B" + }, + { + "duration": 0.06, + "phone": "ih_I" + }, + { + "duration": 0.08, + "phone": "z_E" + } + ], + "start": 37.519999999999996, + "startOffset": 291, + "word": "His" + }, + { + "alignedWord": "shirt", + "case": "success", + "end": 37.879999999999995, + "endOffset": 300, + "phones": [ + { + "duration": 0.08, + "phone": "sh_B" + } + ], + "start": 37.8, + "startOffset": 295, + "word": "shirt" + }, + { + "alignedWord": "was", + "case": "success", + "end": 38.459999999999994, + "endOffset": 304, + "phones": [ + { + "duration": 0.12, + "phone": "w_B" + }, + { + "duration": 0.05, + "phone": "ao_I" + }, + { + "duration": 0.07, + "phone": "z_E" + } + ], + "start": 38.22, + "startOffset": 301, + "word": "was" + }, + { + "alignedWord": "clean", + "case": "success", + "end": 39.05, + "endOffset": 310, + "phones": [ + { + "duration": 0.17, + "phone": "k_B" + }, + { + "duration": 0.07, + "phone": "l_I" + }, + { + "duration": 0.24, + "phone": "iy_I" + }, + { + "duration": 0.11, + "phone": "n_E" + } + ], + "start": 38.459999999999994, + "startOffset": 305, + "word": "clean" + }, + { + "alignedWord": "but", + "case": "success", + "end": 39.309999999999995, + "endOffset": 314, + "phones": [ + { + "duration": 0.12, + "phone": "b_B" + }, + { + "duration": 0.03, + "phone": "ah_I" + }, + { + "duration": 0.08, + "phone": "t_E" + } + ], + "start": 39.08, + "startOffset": 311, + "word": "but" + }, + { + "alignedWord": "one", + "case": "success", + "end": 39.629999999999995, + "endOffset": 318, + "phones": [ + { + "duration": 0.14, + "phone": "w_B" + }, + { + "duration": 0.07, + "phone": "ah_I" + }, + { + "duration": 0.11, + "phone": "n_E" + } + ], + "start": 39.309999999999995, + "startOffset": 315, + "word": "one" + }, + { + "alignedWord": "button", + "case": "success", + "end": 39.879999999999995, + "endOffset": 325, + "phones": [ + { + "duration": 0.05, + "phone": "b_B" + }, + { + "duration": 0.09, + "phone": "ah_I" + }, + { + "duration": 0.06, + "phone": "t_I" + }, + { + "duration": 0.05, + "phone": "ah_I" + } + ], + "start": 39.629999999999995, + "startOffset": 319, + "word": "button" + }, + { + "alignedWord": "was", + "case": "success", + "end": 40.18, + "endOffset": 329, + "phones": [ + { + "duration": 0.06, + "phone": "w_B" + }, + { + "duration": 0.04, + "phone": "ao_I" + }, + { + "duration": 0.08, + "phone": "z_E" + } + ], + "start": 40, + "startOffset": 326, + "word": "was" + }, + { + "alignedWord": "gone", + "case": "success", + "end": 40.76, + "endOffset": 334, + "phones": [ + { + "duration": 0.1, + "phone": "g_B" + }, + { + "duration": 0.3, + "phone": "ao_I" + }, + { + "duration": 0.18, + "phone": "n_E" + } + ], + "start": 40.18, + "startOffset": 330, + "word": "gone" + }, + { + "alignedWord": "the", + "case": "success", + "end": 42.82, + "endOffset": 339, + "phones": [ + { + "duration": 0.17, + "phone": "dh_B" + }, + { + "duration": 0.08, + "phone": "iy_E" + } + ], + "start": 42.57, + "startOffset": 336, + "word": "The" + }, + { + "alignedWord": "barrel", + "case": "success", + "end": 43.34, + "endOffset": 346, + "phones": [ + { + "duration": 0.1, + "phone": "b_B" + }, + { + "duration": 0.17, + "phone": "eh_I" + }, + { + "duration": 0.07, + "phone": "r_I" + }, + { + "duration": 0.1, + "phone": "ah_I" + }, + { + "duration": 0.08, + "phone": "l_E" + } + ], + "start": 42.82, + "startOffset": 340, + "word": "barrel" + }, + { + "alignedWord": "of", + "case": "success", + "end": 43.480000000000004, + "endOffset": 349, + "phones": [ + { + "duration": 0.03, + "phone": "ah_B" + }, + { + "duration": 0.11, + "phone": "v_E" + } + ], + "start": 43.34, + "startOffset": 347, + "word": "of" + }, + { + "alignedWord": "beer", + "case": "success", + "end": 44.04, + "endOffset": 354, + "phones": [ + { + "duration": 0.08, + "phone": "b_B" + }, + { + "duration": 0.25, + "phone": "ih_I" + }, + { + "duration": 0.2, + "phone": "r_E" + } + ], + "start": 43.51, + "startOffset": 350, + "word": "beer" + }, + { + "alignedWord": "was", + "case": "success", + "end": 44.27, + "endOffset": 358, + "phones": [ + { + "duration": 0.08, + "phone": "w_B" + }, + { + "duration": 0.04, + "phone": "ao_I" + }, + { + "duration": 0.08, + "phone": "z_E" + } + ], + "start": 44.07, + "startOffset": 355, + "word": "was" + }, + { + "alignedWord": "a", + "case": "success", + "end": 44.339999999999996, + "endOffset": 360, + "phones": [ + { + "duration": 0.07, + "phone": "ah_S" + } + ], + "start": 44.269999999999996, + "startOffset": 359, + "word": "a" + }, + { + "alignedWord": "brew", + "case": "success", + "end": 44.78, + "endOffset": 365, + "phones": [ + { + "duration": 0.13, + "phone": "b_B" + }, + { + "duration": 0.03, + "phone": "r_I" + }, + { + "duration": 0.28, + "phone": "uw_E" + } + ], + "start": 44.34, + "startOffset": 361, + "word": "brew" + }, + { + "alignedWord": "of", + "case": "success", + "end": 44.95, + "endOffset": 368, + "phones": [ + { + "duration": 0.08, + "phone": "ah_B" + }, + { + "duration": 0.09, + "phone": "v_E" + } + ], + "start": 44.78, + "startOffset": 366, + "word": "of" + }, + { + "alignedWord": "malt", + "case": "success", + "end": 45.45, + "endOffset": 373, + "phones": [ + { + "duration": 0.14, + "phone": "m_B" + }, + { + "duration": 0.12, + "phone": "ao_I" + }, + { + "duration": 0.18, + "phone": "l_I" + }, + { + "duration": 0.03, + "phone": "t_E" + } + ], + "start": 44.980000000000004, + "startOffset": 369, + "word": "malt" + }, + { + "alignedWord": "and", + "case": "success", + "end": 45.78, + "endOffset": 377, + "phones": [ + { + "duration": 0.08, + "phone": "ah_B" + }, + { + "duration": 0.05, + "phone": "n_I" + }, + { + "duration": 0.05, + "phone": "d_E" + } + ], + "start": 45.6, + "startOffset": 374, + "word": "and" + }, + { + "alignedWord": "hops", + "case": "success", + "end": 46.32, + "endOffset": 382, + "phones": [ + { + "duration": 0.12, + "phone": "hh_B" + }, + { + "duration": 0.2, + "phone": "aa_I" + }, + { + "duration": 0.14, + "phone": "p_I" + }, + { + "duration": 0.08, + "phone": "s_E" + } + ], + "start": 45.78, + "startOffset": 378, + "word": "hops" + }, + { + "alignedWord": "tin", + "case": "success", + "end": 48.93, + "endOffset": 387, + "phones": [ + { + "duration": 0.11, + "phone": "t_B" + }, + { + "duration": 0.12, + "phone": "ih_I" + }, + { + "duration": 0.12, + "phone": "n_E" + } + ], + "start": 48.58, + "startOffset": 384, + "word": "Tin" + }, + { + "alignedWord": "cans", + "case": "success", + "end": 49.49, + "endOffset": 392, + "phones": [ + { + "duration": 0.1, + "phone": "k_B" + }, + { + "duration": 0.27, + "phone": "ae_I" + }, + { + "duration": 0.06, + "phone": "n_I" + }, + { + "duration": 0.13, + "phone": "z_E" + } + ], + "start": 48.93, + "startOffset": 388, + "word": "cans" + }, + { + "alignedWord": "are", + "case": "success", + "end": 49.63, + "endOffset": 396, + "phones": [ + { + "duration": 0.14, + "phone": "er_S" + } + ], + "start": 49.49, + "startOffset": 393, + "word": "are" + }, + { + "alignedWord": "absent", + "case": "success", + "end": 50.220000000000006, + "endOffset": 403, + "phones": [ + { + "duration": 0.24, + "phone": "ae_B" + }, + { + "duration": 0.1, + "phone": "b_I" + }, + { + "duration": 0.07, + "phone": "s_I" + }, + { + "duration": 0.03, + "phone": "ah_I" + }, + { + "duration": 0.05, + "phone": "n_I" + }, + { + "duration": 0.1, + "phone": "t_E" + } + ], + "start": 49.63, + "startOffset": 397, + "word": "absent" + }, + { + "alignedWord": "from", + "case": "success", + "end": 50.46, + "endOffset": 408, + "phones": [ + { + "duration": 0.06, + "phone": "f_B" + }, + { + "duration": 0.04, + "phone": "r_I" + }, + { + "duration": 0.06, + "phone": "ah_I" + }, + { + "duration": 0.08, + "phone": "m_E" + } + ], + "start": 50.22, + "startOffset": 404, + "word": "from" + }, + { + "alignedWord": "store", + "case": "success", + "end": 50.84, + "endOffset": 414, + "phones": [ + { + "duration": 0.08, + "phone": "s_B" + }, + { + "duration": 0.06, + "phone": "t_I" + }, + { + "duration": 0.13, + "phone": "ao_I" + }, + { + "duration": 0.08, + "phone": "r_E" + } + ], + "start": 50.49, + "startOffset": 409, + "word": "store" + }, + { + "alignedWord": "shelves", + "case": "success", + "end": 51.42, + "endOffset": 422, + "phones": [ + { + "duration": 0.2, + "phone": "sh_B" + }, + { + "duration": 0.14, + "phone": "eh_I" + }, + { + "duration": 0.16, + "phone": "l_I" + }, + { + "duration": 0.03, + "phone": "v_I" + }, + { + "duration": 0.05, + "phone": "z_E" + } + ], + "start": 50.84, + "startOffset": 415, + "word": "shelves" + } + ] +} \ No newline at end of file diff --git a/tests/data/results/full-harvard-sentences-list30-s01.json b/tests/data/results/full-harvard-sentences-list30-s01.json new file mode 100644 index 00000000..a57c9a06 --- /dev/null +++ b/tests/data/results/full-harvard-sentences-list30-s01.json @@ -0,0 +1,223 @@ +{ + "transcript": "the mute muscle the higher tones are who are and ", + "words": [ + { + "alignedWord": "the", + "case": "success", + "end": 0.5900000000000001, + "endOffset": 3, + "phones": [ + { + "duration": 0.17, + "phone": "dh_B" + }, + { + "duration": 0.08, + "phone": "iy_E" + } + ], + "start": 0.34, + "startOffset": 0, + "word": "the" + }, + { + "alignedWord": "mute", + "case": "success", + "end": 0.98, + "endOffset": 8, + "phones": [ + { + "duration": 0.08, + "phone": "m_B" + }, + { + "duration": 0.11, + "phone": "y_I" + }, + { + "duration": 0.13, + "phone": "uw_I" + }, + { + "duration": 0.07, + "phone": "t_E" + } + ], + "start": 0.59, + "startOffset": 4, + "word": "mute" + }, + { + "alignedWord": "muscle", + "case": "success", + "end": 1.74, + "endOffset": 15, + "phones": [ + { + "duration": 0.23, + "phone": "m_B" + }, + { + "duration": 0.11, + "phone": "ah_I" + }, + { + "duration": 0.12, + "phone": "s_I" + }, + { + "duration": 0.05, + "phone": "ah_I" + }, + { + "duration": 0.22, + "phone": "l_E" + } + ], + "start": 1.01, + "startOffset": 9, + "word": "muscle" + }, + { + "alignedWord": "the", + "case": "success", + "end": 1.97, + "endOffset": 19, + "phones": [ + { + "duration": 0.11, + "phone": "dh_B" + }, + { + "duration": 0.09, + "phone": "iy_E" + } + ], + "start": 1.77, + "startOffset": 16, + "word": "the" + }, + { + "alignedWord": "higher", + "case": "success", + "end": 2.29, + "endOffset": 26, + "phones": [ + { + "duration": 0.1, + "phone": "hh_B" + }, + { + "duration": 0.18, + "phone": "ay_I" + }, + { + "duration": 0.04, + "phone": "er_E" + } + ], + "start": 1.97, + "startOffset": 20, + "word": "higher" + }, + { + "alignedWord": "tones", + "case": "success", + "end": 2.86, + "endOffset": 32, + "phones": [ + { + "duration": 0.16, + "phone": "t_B" + }, + { + "duration": 0.24, + "phone": "ow_I" + }, + { + "duration": 0.09, + "phone": "n_I" + }, + { + "duration": 0.08, + "phone": "z_E" + } + ], + "start": 2.29, + "startOffset": 27, + "word": "tones" + }, + { + "alignedWord": "are", + "case": "success", + "end": 3.12, + "endOffset": 36, + "phones": [ + { + "duration": 0.26, + "phone": "er_S" + } + ], + "start": 2.86, + "startOffset": 33, + "word": "are" + }, + { + "alignedWord": "who", + "case": "success", + "end": 3.43, + "endOffset": 40, + "phones": [ + { + "duration": 0.11, + "phone": "hh_B" + }, + { + "duration": 0.2, + "phone": "uw_E" + } + ], + "start": 3.12, + "startOffset": 37, + "word": "who" + }, + { + "alignedWord": "are", + "case": "success", + "end": 3.49, + "endOffset": 44, + "phones": [ + { + "duration": 0.06, + "phone": "er_S" + } + ], + "start": 3.43, + "startOffset": 41, + "word": "are" + }, + { + "alignedWord": "and", + "case": "success", + "end": 3.64, + "endOffset": 48, + "phones": [ + { + "duration": 0.03, + "phone": "ah_B" + }, + { + "duration": 0.05, + "phone": "n_I" + }, + { + "duration": 0.07, + "phone": "d_E" + } + ], + "start": 3.49, + "startOffset": 45, + "word": "and" + } + ] +} \ No newline at end of file diff --git a/tests/helpers.py b/tests/helpers.py new file mode 100644 index 00000000..c5e8b959 --- /dev/null +++ b/tests/helpers.py @@ -0,0 +1,20 @@ +import json +import os +import pytest + +_thisdir = os.path.dirname(os.path.realpath(__file__)) +_datadir = os.path.join(_thisdir, "data") + +def input_path(name): + return os.path.join(_datadir, "inputs", name) + +def result_path(name): + return os.path.join(_datadir, "results", name) + +def result_json(name): + with open(result_path(name + ".json")) as f: + return json.loads(f.read()) + +def input_data(filename): + with open(input_path(filename)) as fh: + return fh.read(); diff --git a/tests/test_forced_aligner.py b/tests/test_forced_aligner.py new file mode 100644 index 00000000..705a4b0b --- /dev/null +++ b/tests/test_forced_aligner.py @@ -0,0 +1,34 @@ +import gentle +import logging +import logging.handlers +import sys + +from helpers import * + +class TestForcedAligner: + + def test_harvard30(self, tmpdir, request): + name = "harvard-sentences-list30" + transcript = input_data(name + ".txt") + audiofile = input_path(name + ".mp3") + resultfile = result_path("forced-" + name + ".json") + + expected = gentle.Transcription.from_jsonfile(resultfile) + assert transcript == expected.transcript # test data consistency check + + resources = gentle.Resources() + aligner = gentle.ForcedAligner(resources, transcript) + + logger = logging.getLogger(request.node.name) + handler = logging.handlers.MemoryHandler(sys.maxint) + logger.addHandler(handler) + logger.setLevel('INFO') + + with gentle.resampled(audiofile) as wavfile: + result = aligner.transcribe(wavfile, logging=logger) + + log = [record.getMessage() for record in handler.buffer] + + assert result == expected + assert "5 unaligned words (of 86)" in log + assert "after 2nd pass: 0 unaligned words (of 86)" in log diff --git a/tests/test_full_transcriber.py b/tests/test_full_transcriber.py new file mode 100644 index 00000000..b16c926e --- /dev/null +++ b/tests/test_full_transcriber.py @@ -0,0 +1,26 @@ +import gentle +import json +import logging +import logging.handlers +import sys + +from helpers import * + +class TestFullTranscriber: + + def test_harvard30_s01(self, request): + name = "harvard-sentences-list30-s01" + audiofile = input_path(name + ".mp3") + resultfile = result_path("full-" + name + ".json") + + expected = gentle.Transcription.from_jsonfile(resultfile) + + resources = gentle.Resources() + transcriber = gentle.FullTranscriber(resources) + + assert transcriber.available # verify language model is loaded + + with gentle.resampled(audiofile) as wavfile: + result = transcriber.transcribe(wavfile) + + assert result == expected From c4b47b62399d10af931166c1f888f84f80049440 Mon Sep 17 00:00:00 2001 From: ronen barzel Date: Thu, 15 Sep 2016 09:49:14 +0100 Subject: [PATCH 5/5] tidy up test data directory names; stash test results in tmp dir for post-mortems --- tests/.gitignore | 1 + .../forced-harvard-sentences-list30.json | 0 .../full-harvard-sentences-list30-s01.json | 0 tests/data/{inputs => input}/README.md | 0 .../harvard-sentences-list30-s01.mp3 | Bin .../harvard-sentences-list30.mp3 | Bin .../harvard-sentences-list30.txt | 0 tests/helpers.py | 19 ++++++++++-------- tests/test_forced_aligner.py | 6 +++++- tests/test_full_transcriber.py | 6 +++++- 10 files changed, 22 insertions(+), 10 deletions(-) rename tests/data/{results => expected}/forced-harvard-sentences-list30.json (100%) rename tests/data/{results => expected}/full-harvard-sentences-list30-s01.json (100%) rename tests/data/{inputs => input}/README.md (100%) rename tests/data/{inputs => input}/harvard-sentences-list30-s01.mp3 (100%) rename tests/data/{inputs => input}/harvard-sentences-list30.mp3 (100%) rename tests/data/{inputs => input}/harvard-sentences-list30.txt (100%) diff --git a/tests/.gitignore b/tests/.gitignore index d0e8fdb3..b5f1fe66 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -1 +1,2 @@ !data/ +data/tmp diff --git a/tests/data/results/forced-harvard-sentences-list30.json b/tests/data/expected/forced-harvard-sentences-list30.json similarity index 100% rename from tests/data/results/forced-harvard-sentences-list30.json rename to tests/data/expected/forced-harvard-sentences-list30.json diff --git a/tests/data/results/full-harvard-sentences-list30-s01.json b/tests/data/expected/full-harvard-sentences-list30-s01.json similarity index 100% rename from tests/data/results/full-harvard-sentences-list30-s01.json rename to tests/data/expected/full-harvard-sentences-list30-s01.json diff --git a/tests/data/inputs/README.md b/tests/data/input/README.md similarity index 100% rename from tests/data/inputs/README.md rename to tests/data/input/README.md diff --git a/tests/data/inputs/harvard-sentences-list30-s01.mp3 b/tests/data/input/harvard-sentences-list30-s01.mp3 similarity index 100% rename from tests/data/inputs/harvard-sentences-list30-s01.mp3 rename to tests/data/input/harvard-sentences-list30-s01.mp3 diff --git a/tests/data/inputs/harvard-sentences-list30.mp3 b/tests/data/input/harvard-sentences-list30.mp3 similarity index 100% rename from tests/data/inputs/harvard-sentences-list30.mp3 rename to tests/data/input/harvard-sentences-list30.mp3 diff --git a/tests/data/inputs/harvard-sentences-list30.txt b/tests/data/input/harvard-sentences-list30.txt similarity index 100% rename from tests/data/inputs/harvard-sentences-list30.txt rename to tests/data/input/harvard-sentences-list30.txt diff --git a/tests/helpers.py b/tests/helpers.py index c5e8b959..968e24a5 100644 --- a/tests/helpers.py +++ b/tests/helpers.py @@ -2,18 +2,21 @@ import os import pytest -_thisdir = os.path.dirname(os.path.realpath(__file__)) -_datadir = os.path.join(_thisdir, "data") +_this_dir = os.path.dirname(os.path.realpath(__file__)) +_data_dir = os.path.join(_this_dir, "data") +_input_dir = os.path.join(_data_dir, "input") +_expected_dir = os.path.join(_data_dir, "expected") +_result_dir = os.path.join(_data_dir, "tmp") def input_path(name): - return os.path.join(_datadir, "inputs", name) + return os.path.join(_input_dir, name) -def result_path(name): - return os.path.join(_datadir, "results", name) +def expected_path(name): + return os.path.join(_expected_dir, name) -def result_json(name): - with open(result_path(name + ".json")) as f: - return json.loads(f.read()) +def result_path(name): + if not os.path.isdir(_result_dir): os.makedirs(_result_dir) + return os.path.join(_result_dir, name) def input_data(filename): with open(input_path(filename)) as fh: diff --git a/tests/test_forced_aligner.py b/tests/test_forced_aligner.py index 705a4b0b..a2d17a0f 100644 --- a/tests/test_forced_aligner.py +++ b/tests/test_forced_aligner.py @@ -11,9 +11,10 @@ def test_harvard30(self, tmpdir, request): name = "harvard-sentences-list30" transcript = input_data(name + ".txt") audiofile = input_path(name + ".mp3") + expectedfile = expected_path("forced-" + name + ".json") resultfile = result_path("forced-" + name + ".json") - expected = gentle.Transcription.from_jsonfile(resultfile) + expected = gentle.Transcription.from_jsonfile(expectedfile) assert transcript == expected.transcript # test data consistency check resources = gentle.Resources() @@ -29,6 +30,9 @@ def test_harvard30(self, tmpdir, request): log = [record.getMessage() for record in handler.buffer] + with open(resultfile, "w") as fh: + fh.write(result.to_json()) + assert result == expected assert "5 unaligned words (of 86)" in log assert "after 2nd pass: 0 unaligned words (of 86)" in log diff --git a/tests/test_full_transcriber.py b/tests/test_full_transcriber.py index b16c926e..d290eedd 100644 --- a/tests/test_full_transcriber.py +++ b/tests/test_full_transcriber.py @@ -11,9 +11,10 @@ class TestFullTranscriber: def test_harvard30_s01(self, request): name = "harvard-sentences-list30-s01" audiofile = input_path(name + ".mp3") + expectedfile = expected_path("full-" + name + ".json") resultfile = result_path("full-" + name + ".json") - expected = gentle.Transcription.from_jsonfile(resultfile) + expected = gentle.Transcription.from_jsonfile(expectedfile) resources = gentle.Resources() transcriber = gentle.FullTranscriber(resources) @@ -23,4 +24,7 @@ def test_harvard30_s01(self, request): with gentle.resampled(audiofile) as wavfile: result = transcriber.transcribe(wavfile) + with open(resultfile, "w") as fh: + fh.write(result.to_json()) + assert result == expected