Dionyssos commited on
Commit
9b9c715
1 Parent(s): 7f72cef

mimic3 prompt scripts

Browse files
engineer_foreign_style_vectors.py ADDED
@@ -0,0 +1,186 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # create foreign style vectors - to use for english StyleTTS2
2
+
3
+ # It may crash due to non-truly-blocking shutil.copyfile() saying onnx protobuf incomplete file
4
+ # You have to rerun the script - it will copy all voices from hf:mimic3-voices to ~/.local/mimic3
5
+ from pathlib import Path
6
+ import shutil
7
+ import csv
8
+ import io
9
+ import os
10
+ import typing
11
+ import wave
12
+ import sys
13
+ from mimic3_tts.__main__ import (CommandLineInterfaceState,
14
+ get_args,
15
+ initialize_args,
16
+ initialize_tts,
17
+ # print_voices,
18
+ # process_lines,
19
+ shutdown_tts,
20
+ OutputNaming,
21
+ process_line)
22
+ import time
23
+ ROOT_DIR = '/data/dkounadis/mimic3-voices/'
24
+
25
+ foreign_voices = []
26
+ for lang in os.listdir(ROOT_DIR + 'voices'):
27
+ if 'en_' not in lang:
28
+ for voice in os.listdir(ROOT_DIR + 'voices/' + lang):
29
+ # print('______\n', voice)
30
+ try:
31
+ with open(ROOT_DIR + 'voices/' + lang + '/' + voice + '/speakers.txt', 'r') as f:
32
+ foreign_voices += [lang + '/' + voice + '#' + spk.rstrip() for spk in f]
33
+ except FileNotFoundError:
34
+ # spk = None # siwis_low [has no speakers]
35
+ foreign_voices.append(lang + '/' + voice)
36
+ # print(spk)
37
+ # print(os.listdir(ROOT_DIR + 'voices/' + lang + '/' + voice))
38
+ # --- Now we have all speakers per voices -- so can we call mimic3 on those perhaps with copyfile
39
+ # print(foreign_voices, len(foreign_voices))
40
+
41
+
42
+
43
+
44
+
45
+
46
+ # ----------------------
47
+ # print(foreign_voices.keys(), len(foreign_voices))
48
+ # raise SystemExit
49
+
50
+
51
+ def process_lines(state: CommandLineInterfaceState, wav_path=None):
52
+ '''MIMIC3 INTERNAL CALL that yields the sigh sound'''
53
+
54
+ args = state.args
55
+
56
+ result_idx = 0
57
+ print(f'why waitings in the for loop LIN {state.texts=}\n')
58
+ for line in state.texts:
59
+ # print(f'LIN {line=}\n') # prints \n so is empty not getting the predifne text of state.texts
60
+ line_voice: typing.Optional[str] = None
61
+ line_id = ""
62
+ line = line.strip()
63
+ # if not line:
64
+ # continue
65
+
66
+ if args.output_naming == OutputNaming.ID:
67
+ # Line has the format id|text instead of just text
68
+ with io.StringIO(line) as line_io:
69
+ reader = csv.reader(line_io, delimiter=args.csv_delimiter)
70
+ row = next(reader)
71
+ line_id, line = row[0], row[-1]
72
+ if args.csv_voice:
73
+ line_voice = row[1]
74
+
75
+ process_line(line, state, line_id=line_id, line_voice=line_voice)
76
+ result_idx += 1
77
+ time.sleep(4)
78
+ # Write combined audio to stdout
79
+ if state.all_audio:
80
+ # _LOGGER.debug("Writing WAV audio to stdout")
81
+
82
+ if sys.stdout.isatty() and (not state.args.stdout):
83
+ with io.BytesIO() as wav_io:
84
+ wav_file_play: wave.Wave_write = wave.open(wav_io, "wb")
85
+ with wav_file_play:
86
+ wav_file_play.setframerate(state.sample_rate_hz)
87
+ wav_file_play.setsampwidth(state.sample_width_bytes)
88
+ wav_file_play.setnchannels(state.num_channels)
89
+ wav_file_play.writeframes(state.all_audio)
90
+
91
+ # play_wav_bytes(state.args, wav_io.getvalue())
92
+ # wav_path = '_direct_call_2.wav'
93
+ with open(wav_path, 'wb') as wav_file:
94
+ wav_file.write(wav_io.getvalue())
95
+ wav_file.seek(0)
96
+ print('\n\nTTSING', wav_path)
97
+ else:
98
+ print('\n\nDOES NOT TTSING --> ADD SOME time.sleep(4)', wav_path)
99
+
100
+ # -----------------------------------------------------------------------------
101
+ # cat _tmp_ssml.txt | mimic3 --cuda --ssml --noise-w 0.90001 --length-scale 0.91 --noise-scale 0.04 > noise_w=0.90_en_happy_2.wav
102
+ # ======================================================================
103
+
104
+ reference_wav_directory = 'style_vectors_speed1_ICASSP/' #out_dir # + '/wavs/style_vector_v2/'
105
+ Path(reference_wav_directory).mkdir(parents=True, exist_ok=True)
106
+ wav_dir = 'assets/wavs/'
107
+ Path(wav_dir).mkdir(parents=True, exist_ok=True)
108
+ for _id, _voice in enumerate(foreign_voices):
109
+
110
+ # Mimic3 GitHub Quota exceded:
111
+ # https://github.com/MycroftAI/mimic3-voices
112
+ # Above repo can exceed download quota of LFS
113
+ # Copy mimic-voices from local copies
114
+ # clone https://huggingface.co/mukowaty/mimic3-voices/tree/main/voices
115
+ # copy to ~/
116
+ #
117
+ #
118
+ home_voice_dir = f'/home/audeering.local/dkounadis/.local/share/mycroft/mimic3/voices/{_voice.split("#")[0]}/'
119
+ Path(home_voice_dir).mkdir(parents=True, exist_ok=True)
120
+ speaker_free_voice_name = _voice.split("#")[0] if '#' in _voice else _voice
121
+ if (
122
+ (not os.path.isfile(home_voice_dir + 'generator.onnx')) or
123
+ (os.path.getsize(home_voice_dir + 'generator.onnx') < 500) # .onnx - is just LFS header
124
+ ):
125
+
126
+ # Copy
127
+
128
+ shutil.copyfile(
129
+ f'/data/dkounadis/mimic3-voices/voices/{speaker_free_voice_name}/generator.onnx',
130
+ home_voice_dir + 'generator.onnx')
131
+
132
+
133
+ prepare_file = _voice.replace('/', '_').replace('#', '_').replace('_low', '')
134
+ if 'cmu-arctic' in prepare_file:
135
+ prepare_file = prepare_file.replace('cmu-arctic', 'cmu_arctic') + '.wav'
136
+ else:
137
+ prepare_file = prepare_file + '.wav' # [...cmu-arctic...](....cmu_arctic....wav)
138
+
139
+ # file_true = prepare_file.split('.wav')[0] + '_true_.wav'
140
+ # file_false = prepare_file.split('.wav')[0] + '_false_.wav'
141
+ # print(prepare_file, file_false, file_true)
142
+
143
+
144
+ reference_wav = reference_wav_directory + prepare_file
145
+ if not os.path.isfile(reference_wav):
146
+
147
+ rate = 1 # high speed sounds nice if used as speaker-reference audio for StyleTTS2
148
+ _ssml = (
149
+ '<speak>'
150
+ '<prosody volume=\'64\'>'
151
+ f'<prosody rate=\'{rate}\'>'
152
+ f'<voice name=\'{_voice}\'>'
153
+ '<s>'
154
+ 'Sweet dreams are made of this, .. !!! # I travel the world and the seven seas.'
155
+ '</s>'
156
+ '</voice>'
157
+ '</prosody>'
158
+ '</prosody>'
159
+ '</speak>'
160
+ )
161
+ with open('_tmp_ssml.txt', 'w') as f:
162
+ f.write(_ssml)
163
+
164
+
165
+ # ps = subprocess.Popen(f'cat _tmp_ssml.txt | mimic3 --ssml > {reference_wav}', shell=True)
166
+ # ps.wait() # using ps to call mimic3 because samples dont have time to be written in stdout buffer
167
+ args = get_args()
168
+ args.ssml = True
169
+ args.text = [_ssml] #['aa', 'bb'] #txt
170
+ args.interactive = False
171
+ # args.output_naming = OutputNaming.TIME
172
+
173
+ state = CommandLineInterfaceState(args=args)
174
+ initialize_args(state)
175
+ initialize_tts(state)
176
+ # args.texts = [txt] #['aa', 'bb'] #txt
177
+ # state.stdout = '.' #None #'makeme.wav'
178
+ # state.output_dir = '.noopy'
179
+ # state.interactive = False
180
+ # state.output_naming = OutputNaming.TIME
181
+ # # state.ssml = 1234546575
182
+ # state.stdout = True
183
+ # state.tts = True
184
+ process_lines(state, wav_path=reference_wav)
185
+ shutdown_tts(state)
186
+ print(os.path.getsize(reference_wav), 'SZ')
harvard.json ADDED
@@ -0,0 +1,1158 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "sentences": [
3
+ {
4
+ "list": 1,
5
+ "sentences": [
6
+ "The birch canoe slid on the smooth planks.",
7
+ "Glue the sheet to the dark blue background.",
8
+ "It's easy to tell the depth of a well.",
9
+ "These days a chicken leg is a rare dish.",
10
+ "Rice is often served in round bowls.",
11
+ "The juice of lemons makes fine punch.",
12
+ "The box was thrown beside the parked truck.",
13
+ "The hogs were fed chopped corn and garbage.",
14
+ "Four hours of steady work faced us.",
15
+ "Large size in stockings is hard to sell."
16
+ ]
17
+ },
18
+ {
19
+ "list": 2,
20
+ "sentences": [
21
+ "The boy was there when the sun rose.",
22
+ "A rod is used to catch pink salmon.",
23
+ "The source of the huge river is the clear spring.",
24
+ "Kick the ball straight and follow through.",
25
+ "Help the woman get back to her feet.",
26
+ "A pot of tea helps to pass the evening.",
27
+ "Smoky fires lack flame and heat.",
28
+ "The soft cushion broke the man's fall.",
29
+ "The salt breeze came across from the sea.",
30
+ "The girl at the booth sold fifty bonds."
31
+ ]
32
+ },
33
+ {
34
+ "list": 3,
35
+ "sentences": [
36
+ "The small pup gnawed a hole in the sock.",
37
+ "The fish twisted and turned on the bent hook.",
38
+ "Press the pants and sew a button on the vest.",
39
+ "The swan dive was far short of perfect.",
40
+ "The beauty of the view stunned the young boy.",
41
+ "Two blue fish swam in the tank.",
42
+ "Her purse was full of useless trash.",
43
+ "The colt reared and threw the tall rider.",
44
+ "It snowed, rained, and hailed the same morning.",
45
+ "Read verse out loud for pleasure."
46
+ ]
47
+ },
48
+ {
49
+ "list": 4,
50
+ "sentences": [
51
+ "Hoist the load to your left shoulder.",
52
+ "Take the winding path to reach the lake.",
53
+ "Note closely the size of the gas tank.",
54
+ "Wipe the grease off your dirty face.",
55
+ "Mend the coat before you go out.",
56
+ "The wrist was badly strained and hung limp.",
57
+ "The stray cat gave birth to kittens.",
58
+ "The young girl gave no clear response.",
59
+ "The meal was cooked before the bell rang.",
60
+ "What joy there is in living."
61
+ ]
62
+ },
63
+ {
64
+ "list": 5,
65
+ "sentences": [
66
+ "A king ruled the state in the early days.",
67
+ "The ship was torn apart on the sharp reef.",
68
+ "Sickness kept him home the third week.",
69
+ "The wide road shimmered in the hot sun.",
70
+ "The lazy cow lay in the cool grass.",
71
+ "Lift the square stone over the fence.",
72
+ "The rope will bind the seven books at once.",
73
+ "Hop over the fence and plunge in.",
74
+ "The friendly gang left the drug store.",
75
+ "Mesh wire keeps chicks inside."
76
+ ]
77
+ },
78
+ {
79
+ "list": 6,
80
+ "sentences": [
81
+ "The frosty air passed through the coat.",
82
+ "The crooked maze failed to fool the mouse.",
83
+ "Adding fast leads to wrong sums.",
84
+ "The show was a flop from the very start.",
85
+ "A saw is a tool used for making boards.",
86
+ "The wagon moved on well-oiled wheels.",
87
+ "March the soldiers past the next hill.",
88
+ "A cup of sugar makes sweet fudge.",
89
+ "Place a rosebush near the porch steps.",
90
+ "Both lost their lives in the raging storm."
91
+ ]
92
+ },
93
+ {
94
+ "list": 7,
95
+ "sentences": [
96
+ "We talked of the side show in the circus.",
97
+ "Use a pencil to write the first draft.",
98
+ "He ran half a mile and then walked.",
99
+ "The sky that morning was clear and bright blue.",
100
+ "The tame animal lived in the zoo.",
101
+ "The dam broke with a loud crash.",
102
+ "The map helped us find our way.",
103
+ "He carved a toy from a tiny block of wood.",
104
+ "The first part of the plan needs changing.",
105
+ "The new girl was the pride of the class."
106
+ ]
107
+ },
108
+ {
109
+ "list": 8,
110
+ "sentences": [
111
+ "The spear was thrown with great force.",
112
+ "They took the axe and the saw.",
113
+ "The ancient coin was quite dull.",
114
+ "The rush for gold made them rich.",
115
+ "The noontime sun made the air hot.",
116
+ "The pine trees were cut down.",
117
+ "The girl worked hard and with care.",
118
+ "The church was built of stone.",
119
+ "The two men played a game of cards.",
120
+ "The ship sailed across the blue sea."
121
+ ]
122
+ },
123
+ {
124
+ "list": 9,
125
+ "sentences": [
126
+ "The lease ran out in sixteen weeks.",
127
+ "A font of type is stored in the case.",
128
+ "We need grain to keep our mules healthy.",
129
+ "The ink stain dried on the finished page.",
130
+ "The walled town was seized without a fight.",
131
+ "The lease will be up in three weeks.",
132
+ "The purple tie was ten years old.",
133
+ "Men think and plan and sometimes act.",
134
+ "A six-shooter is a gun that fires six shots.",
135
+ "A shoe of fine quality costs more."
136
+ ]
137
+ },
138
+ {
139
+ "list": 10,
140
+ "sentences": [
141
+ "The house was torn down to make room.",
142
+ "A map shows where the party will meet.",
143
+ "The ink stain dried on the finished page.",
144
+ "The bread was buttered on both sides.",
145
+ "The corner store was robbed last night.",
146
+ "The store walls were lined with colored tiles.",
147
+ "The store was out of chocolate soda.",
148
+ "The bow of the ship made a deep ripple.",
149
+ "The coat and vest were slightly worn.",
150
+ "The bill was paid every third week."
151
+ ]
152
+ },
153
+ {
154
+ "list": 11,
155
+ "sentences": [
156
+ "Oak is strong and also gives shade.",
157
+ "Cats and dogs each hate the other.",
158
+ "The pipe began to rust while new.",
159
+ "Open the crate but don't break the glass.",
160
+ "Add the sum to the product of these three.",
161
+ "Thieves who rob friends deserve jail.",
162
+ "The ripe taste of cheese improves with age.",
163
+ "Act on these orders with great speed.",
164
+ "The hog crawled under the high fence.",
165
+ "Move the vat over the hot fire."
166
+ ]
167
+ },
168
+ {
169
+ "list": 12,
170
+ "sentences": [
171
+ "The bark of the pine tree was shiny and dark.",
172
+ "Leaves turn brown and yellow in the fall.",
173
+ "The pennant waved when the wind blew.",
174
+ "Split the log with a quick, sharp blow.",
175
+ "Burn peat after the logs give out.",
176
+ "He ordered peach pie with ice cream.",
177
+ "We saw the march begin on time.",
178
+ "Tack the strip of carpet to the worn stairs.",
179
+ "It is easy to tell the depth of a well.",
180
+ "Four hours of steady work faced us."
181
+ ]
182
+ },
183
+ {
184
+ "list": 13,
185
+ "sentences": [
186
+ "They told us to dip our bread in the gravy.",
187
+ "Please pack it in the old, green trunk.",
188
+ "The strange noise drove us from the room.",
189
+ "We talked of the side show in the circus.",
190
+ "Use a pencil to write the first draft.",
191
+ "Three years later, the shell is thin.",
192
+ "The clock struck to mark the third period.",
193
+ "A small creek cut across the field.",
194
+ "Cars and busses stalled in snow drifts.",
195
+ "The set of china hit the floor with a crash."
196
+ ]
197
+ },
198
+ {
199
+ "list": 14,
200
+ "sentences": [
201
+ "This is a grand season for hikes on the road.",
202
+ "The dune rose from the edge of the water.",
203
+ "Those words were the cue for the actor to leave.",
204
+ "A yacht slid around the point into the bay.",
205
+ "The two met while playing on the sand.",
206
+ "The ink stain dried on the finished page.",
207
+ "The walled town was seized without a fight.",
208
+ "The lease will be up in three weeks.",
209
+ "The purple tie was ten years old.",
210
+ "Men think and plan and sometimes act."
211
+ ]
212
+ },
213
+ {
214
+ "list": 15,
215
+ "sentences": [
216
+ "She has been ill, and will go home soon.",
217
+ "The weasel will be trapped on a ledge.",
218
+ "The beak of the bird is very sharp.",
219
+ "The boy was there when the sun rose.",
220
+ "A rod is used to catch pink salmon.",
221
+ "The source of the huge river is the clear spring.",
222
+ "Kick the ball straight and follow through.",
223
+ "Help the woman get back to her feet.",
224
+ "A pot of tea helps to pass the evening.",
225
+ "Smoky fires lack flame and heat."
226
+ ]
227
+ },
228
+ {
229
+ "list": 16,
230
+ "sentences": [
231
+ "The soft cushion broke the man's fall.",
232
+ "The salt breeze came across from the sea.",
233
+ "The girl at the booth sold fifty bonds.",
234
+ "The small pup gnawed a hole in the sock.",
235
+ "The fish twisted and turned on the bent hook.",
236
+ "Press the pants and sew a button on the vest.",
237
+ "The swan dive was far short of perfect.",
238
+ "The beauty of the view stunned the young boy.",
239
+ "Two blue fish swam in the tank.",
240
+ "Her purse was full of useless trash."
241
+ ]
242
+ },
243
+ {
244
+ "list": 17,
245
+ "sentences": [
246
+ "The colt reared and threw the tall rider.",
247
+ "It snowed, rained, and hailed the same morning.",
248
+ "Read verse out loud for pleasure.",
249
+ "Hoist the load to your left shoulder.",
250
+ "Take the winding path to reach the lake.",
251
+ "Note closely the size of the gas tank.",
252
+ "Wipe the grease off your dirty face.",
253
+ "Mend the coat before you go out.",
254
+ "The wrist was badly strained and hung limp.",
255
+ "The stray cat gave birth to kittens."
256
+ ]
257
+ },
258
+ {
259
+ "list": 18,
260
+ "sentences": [
261
+ "The young girl gave no clear response.",
262
+ "The meal was cooked before the bell rang.",
263
+ "What joy there is in living.",
264
+ "A king ruled the state in the early days.",
265
+ "The ship was torn apart on the sharp reef.",
266
+ "Sickness kept him home the third week.",
267
+ "The wide road shimmered in the hot sun.",
268
+ "The lazy cow lay in the cool grass.",
269
+ "Lift the square stone over the fence.",
270
+ "The rope will bind the seven books at once."
271
+ ]
272
+ },
273
+ {
274
+ "list": 19,
275
+ "sentences": [
276
+ "Hop over the fence and plunge in.",
277
+ "The friendly gang left the drug store.",
278
+ "Mesh wire keeps chicks inside.",
279
+ "The frosty air passed through the coat.",
280
+ "The crooked maze failed to fool the mouse.",
281
+ "Adding fast leads to wrong sums.",
282
+ "The show was a flop from the very start.",
283
+ "A saw is a tool used for making boards.",
284
+ "The wagon moved on well-oiled wheels.",
285
+ "March the soldiers past the next hill."
286
+ ]
287
+ },
288
+ {
289
+ "list": 20,
290
+ "sentences": [
291
+ "A cup of sugar makes sweet fudge.",
292
+ "Place a rosebush near the porch steps.",
293
+ "Both lost their lives in the raging storm.",
294
+ "We talked of the side show in the circus.",
295
+ "Use a pencil to write the first draft.",
296
+ "He ran half a mile and then walked.",
297
+ "The sky that morning was clear and bright blue.",
298
+ "The tame animal lived in the zoo.",
299
+ "The dam broke with a loud crash.",
300
+ "The map helped us find our way."
301
+ ]
302
+ },
303
+ {
304
+ "list": 21,
305
+ "sentences": [
306
+ "He carved a toy from a tiny block of wood.",
307
+ "The first part of the plan needs changing.",
308
+ "The new girl was the pride of the class.",
309
+ "The spear was thrown with great force.",
310
+ "They took the axe and the saw.",
311
+ "The ancient coin was quite dull.",
312
+ "The rush for gold made them rich.",
313
+ "The noontime sun made the air hot.",
314
+ "The pine trees were cut down.",
315
+ "The girl worked hard and with care."
316
+ ]
317
+ },
318
+ {
319
+ "list": 22,
320
+ "sentences": [
321
+ "The church was built of stone.",
322
+ "The two men played a game of cards.",
323
+ "The ship sailed across the blue sea.",
324
+ "The lease ran out in sixteen weeks.",
325
+ "A font of type is stored in the case.",
326
+ "We need grain to keep our mules healthy.",
327
+ "The ink stain dried on the finished page.",
328
+ "The walled town was seized without a fight.",
329
+ "The lease will be up in three weeks.",
330
+ "The purple tie was ten years old."
331
+ ]
332
+ },
333
+ {
334
+ "list": 23,
335
+ "sentences": [
336
+ "Men think and plan and sometimes act.",
337
+ "A six-shooter is a gun that fires six shots.",
338
+ "A shoe of fine quality costs more.",
339
+ "The house was torn down to make room.",
340
+ "A map shows where the party will meet.",
341
+ "The ink stain dried on the finished page.",
342
+ "The bread was buttered on both sides.",
343
+ "The corner store was robbed last night.",
344
+ "The store walls were lined with colored tiles.",
345
+ "The store was out of chocolate soda."
346
+ ]
347
+ },
348
+ {
349
+ "list": 24,
350
+ "sentences": [
351
+ "The bow of the ship made a deep ripple.",
352
+ "The coat and vest were slightly worn.",
353
+ "The bill was paid every third week.",
354
+ "Clear water over gravel shone like silver.",
355
+ "The wolf came from the cold, dark forest.",
356
+ "Coax a young calf to drink from a bucket.",
357
+ "Schools for ladies teach charm and grace.",
358
+ "The lamp shone with a steady green flame.",
359
+ "They took the axe and the saw.",
360
+ "The ancient coin was quite dull."
361
+ ]
362
+ },
363
+ {
364
+ "list": 25,
365
+ "sentences": [
366
+ "The rush for gold made them rich.",
367
+ "The noontime sun made the air hot.",
368
+ "The pine trees were cut down.",
369
+ "The girl worked hard and with care.",
370
+ "The church was built of stone.",
371
+ "The two men played a game of cards.",
372
+ "The ship sailed across the blue sea.",
373
+ "The lease ran out in sixteen weeks.",
374
+ "A font of type is stored in the case.",
375
+ "We need grain to keep our mules healthy."
376
+ ]
377
+ },
378
+ {
379
+ "list": 26,
380
+ "sentences": [
381
+ "The ink stain dried on the finished page.",
382
+ "The walled town was seized without a fight.",
383
+ "The lease will be up in three weeks.",
384
+ "The purple tie was ten years old.",
385
+ "Men think and plan and sometimes act.",
386
+ "A six-shooter is a gun that fires six shots.",
387
+ "A shoe of fine quality costs more.",
388
+ "The house was torn down to make room.",
389
+ "A map shows where the party will meet.",
390
+ "The ink stain dried on the finished page."
391
+ ]
392
+ },
393
+ {
394
+ "list": 27,
395
+ "sentences": [
396
+ "The bread was buttered on both sides.",
397
+ "The corner store was robbed last night.",
398
+ "The store walls were lined with colored tiles.",
399
+ "The store was out of chocolate soda.",
400
+ "The bow of the ship made a deep ripple.",
401
+ "The coat and vest were slightly worn.",
402
+ "The bill was paid every third week.",
403
+ "Clear water over gravel shone like silver.",
404
+ "The wolf came from the cold, dark forest.",
405
+ "Coax a young calf to drink from a bucket."
406
+ ]
407
+ },
408
+ {
409
+ "list": 28,
410
+ "sentences": [
411
+ "Schools for ladies teach charm and grace.",
412
+ "The lamp shone with a steady green flame.",
413
+ "It was done before the boy could see it.",
414
+ "March the soldiers past the next hill.",
415
+ "A cup of sugar makes sweet fudge.",
416
+ "Place a rosebush near the porch steps.",
417
+ "Both lost their lives in the raging storm.",
418
+ "We talked of the side show in the circus.",
419
+ "Use a pencil to write the first draft.",
420
+ "He ran half a mile and then walked."
421
+ ]
422
+ },
423
+ {
424
+ "list": 29,
425
+ "sentences": [
426
+ "The sky that morning was clear and bright blue.",
427
+ "The tame animal lived in the zoo.",
428
+ "The dam broke with a loud crash.",
429
+ "The map helped us find our way.",
430
+ "He carved a toy from a tiny block of wood.",
431
+ "The first part of the plan needs changing.",
432
+ "The new girl was the pride of the class.",
433
+ "The spear was thrown with great force.",
434
+ "They took the axe and the saw.",
435
+ "The ancient coin was quite dull."
436
+ ]
437
+ },
438
+ {
439
+ "list": 30,
440
+ "sentences": [
441
+ "The rush for gold made them rich.",
442
+ "The noontime sun made the air hot.",
443
+ "The pine trees were cut down.",
444
+ "The girl worked hard and with care.",
445
+ "The church was built of stone.",
446
+ "The two men played a game of cards.",
447
+ "The ship sailed across the blue sea.",
448
+ "The lease ran out in sixteen weeks.",
449
+ "A font of type is stored in the case.",
450
+ "We need grain to keep our mules healthy."
451
+ ]
452
+ },
453
+ {
454
+ "list": 31,
455
+ "sentences": [
456
+ "The ink stain dried on the finished page.",
457
+ "The walled town was seized without a fight.",
458
+ "The lease will be up in three weeks.",
459
+ "The purple tie was ten years old.",
460
+ "Men think and plan and sometimes act.",
461
+ "A six-shooter is a gun that fires six shots.",
462
+ "A shoe of fine quality costs more.",
463
+ "The house was torn down to make room.",
464
+ "A map shows where the party will meet.",
465
+ "The ink stain dried on the finished page."
466
+ ]
467
+ },
468
+ {
469
+ "list": 32,
470
+ "sentences": [
471
+ "The bread was buttered on both sides.",
472
+ "The corner store was robbed last night.",
473
+ "The store walls were lined with colored tiles.",
474
+ "The store was out of chocolate soda.",
475
+ "The bow of the ship made a deep ripple.",
476
+ "The coat and vest were slightly worn.",
477
+ "The bill was paid every third week.",
478
+ "Clear water over gravel shone like silver.",
479
+ "The wolf came from the cold, dark forest.",
480
+ "Coax a young calf to drink from a bucket."
481
+ ]
482
+ },
483
+ {
484
+ "list": 33,
485
+ "sentences": [
486
+ "Schools for ladies teach charm and grace.",
487
+ "The lamp shone with a steady green flame.",
488
+ "It was done before the boy could see it.",
489
+ "March the soldiers past the next hill.",
490
+ "A cup of sugar makes sweet fudge.",
491
+ "Place a rosebush near the porch steps.",
492
+ "Both lost their lives in the raging storm.",
493
+ "We talked of the side show in the circus.",
494
+ "Use a pencil to write the first draft.",
495
+ "He ran half a mile and then walked."
496
+ ]
497
+ },
498
+ {
499
+ "list": 34,
500
+ "sentences": [
501
+ "The sky that morning was clear and bright blue.",
502
+ "The tame animal lived in the zoo.",
503
+ "The dam broke with a loud crash.",
504
+ "The map helped us find our way.",
505
+ "He carved a toy from a tiny block of wood.",
506
+ "The first part of the plan needs changing.",
507
+ "The new girl was the pride of the class.",
508
+ "The spear was thrown with great force.",
509
+ "They took the axe and the saw.",
510
+ "The ancient coin was quite dull."
511
+ ]
512
+ },
513
+ {
514
+ "list": 35,
515
+ "sentences": [
516
+ "The rush for gold made them rich.",
517
+ "The noontime sun made the air hot.",
518
+ "The pine trees were cut down.",
519
+ "The girl worked hard and with care.",
520
+ "The church was built of stone.",
521
+ "The two men played a game of cards.",
522
+ "The ship sailed across the blue sea.",
523
+ "The lease ran out in sixteen weeks.",
524
+ "A font of type is stored in the case.",
525
+ "We need grain to keep our mules healthy."
526
+ ]
527
+ },
528
+ {
529
+ "list": 36,
530
+ "sentences": [
531
+ "The ink stain dried on the finished page.",
532
+ "The walled town was seized without a fight.",
533
+ "The lease will be up in three weeks.",
534
+ "The purple tie was ten years old.",
535
+ "Men think and plan and sometimes act.",
536
+ "A six-shooter is a gun that fires six shots.",
537
+ "A shoe of fine quality costs more.",
538
+ "The house was unhitherto."
539
+ ]
540
+ },
541
+ {
542
+ "list": 37,
543
+ "sentences": [
544
+ "The bread was buttered on both sides.",
545
+ "The corner store was robbed last night.",
546
+ "The store walls were lined with colored tiles.",
547
+ "The store was out of chocolate soda.",
548
+ "The bow of the ship made a deep ripple.",
549
+ "The coat and vest were slightly worn.",
550
+ "The bill was paid every third week.",
551
+ "Clear water over gravel shone like silver.",
552
+ "The wolf came from the cold, dark forest.",
553
+ "Coax a young calf to drink from a bucket."
554
+ ]
555
+ },
556
+ {
557
+ "list": 38,
558
+ "sentences": [
559
+ "Schools for ladies teach charm and grace.",
560
+ "The lamp shone with a steady green flame.",
561
+ "It was done before the boy could see it.",
562
+ "March the soldiers past the next hill.",
563
+ "A cup of sugar makes sweet fudge.",
564
+ "Place a rosebush near the porch steps.",
565
+ "Both lost their lives in the raging storm.",
566
+ "We talked of the side show in the circus.",
567
+ "Use a pencil to write the first draft.",
568
+ "He ran half a mile and then walked."
569
+ ]
570
+ },
571
+ {
572
+ "list": 39,
573
+ "sentences": [
574
+ "The sky that morning was clear and bright blue.",
575
+ "The tame animal lived in the zoo.",
576
+ "The dam broke with a loud crash.",
577
+ "The map helped us find our way.",
578
+ "He carved a toy from a tiny block of wood.",
579
+ "The first part of the plan needs changing.",
580
+ "The new girl was the pride of the class.",
581
+ "The spear was thrown with great force.",
582
+ "They took the axe and the saw.",
583
+ "The ancient coin was quite dull."
584
+ ]
585
+ },
586
+ {
587
+ "list": 40,
588
+ "sentences": [
589
+ "The rush for gold made them rich.",
590
+ "The noontime sun made the air hot.",
591
+ "The pine trees were cut down.",
592
+ "The girl worked hard and with care.",
593
+ "The church was built of stone.",
594
+ "The two men played a game of cards.",
595
+ "The ship sailed across the blue sea.",
596
+ "The lease ran out in sixteen weeks.",
597
+ "A font of type is stored in the case.",
598
+ "We need grain to keep our mules healthy."
599
+ ]
600
+ },
601
+ {
602
+ "list": 41,
603
+ "sentences": [
604
+ "The ink stain dried on the finished page.",
605
+ "The walled town was seized without a fight.",
606
+ "The lease will be up in three weeks.",
607
+ "The purple tie was ten years old.",
608
+ "Men think and plan and sometimes act.",
609
+ "A six-shooter is a gun that fires six shots.",
610
+ "A shoe of fine quality costs more.",
611
+ "The house was torn down to make room.",
612
+ "A map shows where the party will meet.",
613
+ "The ink stain dried on the finished page."
614
+ ]
615
+ },
616
+ {
617
+ "list": 42,
618
+ "sentences": [
619
+ "The bread was buttered on both sides.",
620
+ "The corner store was robbed last night.",
621
+ "The store walls were lined with colored tiles.",
622
+ "The store was out of chocolate soda.",
623
+ "The bow of the ship made a deep ripple.",
624
+ "The coat and vest were slightly worn.",
625
+ "The bill was paid every third week.",
626
+ "Clear water over gravel shone like silver.",
627
+ "The wolf came from the cold, dark forest.",
628
+ "Coax a young calf to drink from a bucket."
629
+ ]
630
+ },
631
+ {
632
+ "list": 43,
633
+ "sentences": [
634
+ "Schools for ladies teach charm and grace.",
635
+ "The lamp shone with a steady green flame.",
636
+ "It was done before the boy could see it.",
637
+ "March the soldiers past the next hill.",
638
+ "A cup of sugar makes sweet fudge.",
639
+ "Place a rosebush near the porch steps.",
640
+ "Both lost their lives in the raging storm.",
641
+ "We talked of the side show in the circus.",
642
+ "Use a pencil to write the first draft.",
643
+ "He ran half a mile and then walked."
644
+ ]
645
+ },
646
+ {
647
+ "list": 44,
648
+ "sentences": [
649
+ "The sky that morning was clear and bright blue.",
650
+ "The tame animal lived in the zoo.",
651
+ "The dam broke with a loud crash.",
652
+ "The map helped us find our way.",
653
+ "He carved a toy from a tiny block of wood.",
654
+ "The first part of the plan needs changing.",
655
+ "The new girl was the pride of the class.",
656
+ "The spear was thrown with great force.",
657
+ "They took the axe and the saw.",
658
+ "The ancient coin was quite dull."
659
+ ]
660
+ },
661
+ {
662
+ "list": 45,
663
+ "sentences": [
664
+ "The rush for gold made them rich.",
665
+ "The noontime sun made the air hot.",
666
+ "The pine trees were cut down.",
667
+ "The girl worked hard and with care.",
668
+ "The church was built of stone.",
669
+ "The two men played a game of cards.",
670
+ "The ship sailed across the blue sea.",
671
+ "The lease ran out in sixteen weeks.",
672
+ "A font of type is stored in the case.",
673
+ "We need grain to keep our mules healthy."
674
+ ]
675
+ },
676
+ {
677
+ "list": 46,
678
+ "sentences": [
679
+ "The ink stain dried on the finished page.",
680
+ "The walled town was seized without a fight.",
681
+ "The lease will be up in three weeks.",
682
+ "The purple tie was ten years old.",
683
+ "Men think and plan and sometimes act.",
684
+ "A six-shooter is a gun that fires six shots.",
685
+ "A shoe of fine quality costs more.",
686
+ "The house was torn down to make room.",
687
+ "A map shows where the party will meet.",
688
+ "The ink stain dried on the finished page."
689
+ ]
690
+ },
691
+ {
692
+ "list": 47,
693
+ "sentences": [
694
+ "The bread was buttered on both sides.",
695
+ "The corner store was robbed last night.",
696
+ "The store walls were lined with colored tiles.",
697
+ "The store was out of chocolate soda.",
698
+ "The bow of the ship made a deep ripple.",
699
+ "The coat and vest were slightly worn.",
700
+ "The bill was paid every third week.",
701
+ "Clear water over gravel shone like silver.",
702
+ "The wolf came from the cold, dark forest.",
703
+ "Coax a young calf to drink from a bucket."
704
+ ]
705
+ },
706
+ {
707
+ "list": 48,
708
+ "sentences": [
709
+ "Schools for ladies teach charm and grace.",
710
+ "The lamp shone with a steady green flame.",
711
+ "It was done before the boy could see it.",
712
+ "March the soldiers past the next hill.",
713
+ "A cup of sugar makes sweet fudge.",
714
+ "Place a rosebush near the porch steps.",
715
+ "Both lost their lives in the raging storm.",
716
+ "We talked of the side show in the circus.",
717
+ "Use a pencil to write the first draft.",
718
+ "He ran half a mile and then walked."
719
+ ]
720
+ },
721
+ {
722
+ "list": 49,
723
+ "sentences": [
724
+ "The sky that morning was clear and bright blue.",
725
+ "The tame animal lived in the zoo.",
726
+ "The dam broke with a loud crash.",
727
+ "The map helped us find our way.",
728
+ "He carved a toy from a tiny block of wood.",
729
+ "The first part of the plan needs changing.",
730
+ "The new girl was the pride of the class.",
731
+ "The spear was thrown with great force.",
732
+ "They took the axe and the saw.",
733
+ "The ancient coin was quite dull."
734
+ ]
735
+ },
736
+ {
737
+ "list": 50,
738
+ "sentences": [
739
+ "The rush for gold made them rich.",
740
+ "The noontime sun made the air hot.",
741
+ "The pine trees were cut down.",
742
+ "The girl worked hard and with care.",
743
+ "The church was built of stone.",
744
+ "The two men played a game of cards.",
745
+ "The ship sailed across the blue sea.",
746
+ "The lease ran out in sixteen weeks.",
747
+ "A font of type is stored in the case.",
748
+ "We need grain to keep our mules healthy."
749
+ ]
750
+ },
751
+ {
752
+ "list": 51,
753
+ "sentences": [
754
+ "The chalk was used to mark the wall.",
755
+ "The clock ticked steadily in the quiet room.",
756
+ "She made a cup of tea with lemon.",
757
+ "The dog barked loudly at the passing cars.",
758
+ "The bright sun warmed the cool air.",
759
+ "The children played in the sunny park.",
760
+ "He fixed the leak under the sink.",
761
+ "The book was filled with interesting facts.",
762
+ "The phone rang incessantly during dinner.",
763
+ "They walked through the beautiful garden."
764
+ ]
765
+ },
766
+ {
767
+ "list": 52,
768
+ "sentences": [
769
+ "The car broke down on the busy highway.",
770
+ "The cat sat lazily by the window.",
771
+ "The wind rustled the leaves of the trees.",
772
+ "She wore a bright red dress to the party.",
773
+ "The painting hung prominently on the wall.",
774
+ "The coffee was too hot to drink.",
775
+ "He read the newspaper over breakfast.",
776
+ "The house was decorated for the holidays.",
777
+ "The kids enjoyed their time at the amusement park.",
778
+ "She bought a new pair of shoes for the event."
779
+ ]
780
+ },
781
+ {
782
+ "list": 53,
783
+ "sentences": [
784
+ "The road was blocked due to construction.",
785
+ "The lamp on the table cast a warm glow.",
786
+ "He wrote a letter to his old friend.",
787
+ "The bicycle was parked outside the house.",
788
+ "The meeting was scheduled for the afternoon.",
789
+ "She filled the vase with fresh flowers.",
790
+ "The wind chimes tinkled softly in the breeze.",
791
+ "They went hiking in the mountains over the weekend.",
792
+ "The cookies were freshly baked and smelled delicious.",
793
+ "The new movie was a big hit at the box office."
794
+ ]
795
+ },
796
+ {
797
+ "list": 54,
798
+ "sentences": [
799
+ "The boat floated gently on the calm water.",
800
+ "She enjoyed reading a good book in the evening.",
801
+ "The students prepared for their final exams.",
802
+ "The restaurant served a variety of cuisines.",
803
+ "The picture frame was made of polished wood.",
804
+ "The conference was held in a large hall.",
805
+ "He repaired the old wooden fence.",
806
+ "The bakery sold a selection of fresh bread.",
807
+ "They watched the sunset from the beach.",
808
+ "The garden was full of colorful flowers."
809
+ ]
810
+ },
811
+ {
812
+ "list": 55,
813
+ "sentences": [
814
+ "The train arrived at the station on time.",
815
+ "She organized her desk before starting work.",
816
+ "The guitar was hung on the wall as decoration.",
817
+ "The chocolate cake was rich and creamy.",
818
+ "He planned a surprise party for his friend.",
819
+ "The weather forecast predicted rain for the weekend.",
820
+ "The children were excited for the field trip.",
821
+ "She made a list of groceries to buy.",
822
+ "The old book had a musty smell.",
823
+ "They enjoyed a quiet dinner at home."
824
+ ]
825
+ },
826
+ {
827
+ "list": 56,
828
+ "sentences": [
829
+ "The movie was entertaining and well-received.",
830
+ "She carefully folded the letter and put it in an envelope.",
831
+ "The cat played with a ball of yarn.",
832
+ "The old bridge spanned the wide river.",
833
+ "He wore a suit to the formal event.",
834
+ "The library had a vast collection of books.",
835
+ "The flowers in the garden were in full bloom.",
836
+ "She made a delicious stew for dinner.",
837
+ "The car’s engine roared to life.",
838
+ "They sat around the campfire telling stories."
839
+ ]
840
+ },
841
+ {
842
+ "list": 57,
843
+ "sentences": [
844
+ "The painting was framed and hung on the wall.",
845
+ "She checked her email for new messages.",
846
+ "The old clock struck twelve.",
847
+ "He fixed the broken window pane.",
848
+ "The park was a great place for a picnic.",
849
+ "The bakery had a special on pastries.",
850
+ "She enjoyed a relaxing bath in the evening.",
851
+ "The book was a bestseller.",
852
+ "They traveled to a new city for vacation.",
853
+ "The kids played on the swings and slides."
854
+ ]
855
+ },
856
+ {
857
+ "list": 58,
858
+ "sentences": [
859
+ "The store had a sale on winter coats.",
860
+ "She made a reservation for dinner at the restaurant.",
861
+ "The dog chased after the ball in the yard.",
862
+ "He read the instructions carefully before starting.",
863
+ "The house had a large backyard.",
864
+ "They went to the theater to see a play.",
865
+ "The coffee shop had a cozy atmosphere.",
866
+ "She planted tomatoes in her garden.",
867
+ "The car needed a new set of tires.",
868
+ "The museum exhibited ancient artifacts."
869
+ ]
870
+ },
871
+ {
872
+ "list": 59,
873
+ "sentences": [
874
+ "The sun set behind the mountains.",
875
+ "She wrapped the gift in colorful paper.",
876
+ "The kids enjoyed a fun day at the zoo.",
877
+ "The phone’s battery was running low.",
878
+ "He fixed the leaking faucet in the kitchen.",
879
+ "The concert was held in a large auditorium.",
880
+ "She attended a workshop on cooking.",
881
+ "The laptop was used for work and study.",
882
+ "They went skiing in the winter.",
883
+ "The cat napped on the sunny windowsill."
884
+ ]
885
+ },
886
+ {
887
+ "list": 60,
888
+ "sentences": [
889
+ "The fireworks lit up the night sky.",
890
+ "She wore a hat to protect herself from the sun.",
891
+ "The book was placed on the top shelf.",
892
+ "He enjoyed a cup of hot cocoa by the fireplace.",
893
+ "The children built a sandcastle at the beach.",
894
+ "The store offered a discount on electronics.",
895
+ "She found a new recipe for apple pie.",
896
+ "The dog wagged its tail happily.",
897
+ "They explored a cave during their hike.",
898
+ "The painting was a gift from a friend."
899
+ ]
900
+ },
901
+ {
902
+ "list": 61,
903
+ "sentences": [
904
+ "The flowers in the vase were wilted.",
905
+ "She organized her closet and donated old clothes.",
906
+ "The children played board games indoors.",
907
+ "The coffee was brewed fresh every morning.",
908
+ "He visited a historical site during his trip.",
909
+ "The car’s air conditioning was broken.",
910
+ "She attended a seminar on personal finance.",
911
+ "The laptop screen was cracked.",
912
+ "They enjoyed a quiet evening at home.",
913
+ "The library had a section for new arrivals."
914
+ ]
915
+ },
916
+ {
917
+ "list": 62,
918
+ "sentences": [
919
+ "The sunset painted the sky with shades of orange.",
920
+ "She added a pinch of salt to the soup.",
921
+ "The old house had a charming front porch.",
922
+ "He finished his homework before dinner.",
923
+ "The store had a wide selection of books.",
924
+ "She planted flowers in the spring.",
925
+ "The dog loved going for walks in the park.",
926
+ "The new movie was a box office success.",
927
+ "They enjoyed a barbecue on the weekend.",
928
+ "The clock on the wall ticked softly."
929
+ ]
930
+ },
931
+ {
932
+ "list": 63,
933
+ "sentences": [
934
+ "The ice cream melted quickly in the heat.",
935
+ "She arranged the books neatly on the shelf.",
936
+ "The car was parked in the garage.",
937
+ "He wrote a poem for his friend's birthday.",
938
+ "The garden was full of blooming roses.",
939
+ "She prepared a special dinner for the occasion.",
940
+ "The kids watched a movie on the big screen.",
941
+ "The coffee shop had a variety of pastries.",
942
+ "The hotel room had a beautiful view.",
943
+ "They took a scenic drive through the countryside."
944
+ ]
945
+ },
946
+ {
947
+ "list": 64,
948
+ "sentences": [
949
+ "The rain pattered gently on the roof.",
950
+ "She set the table with fine china.",
951
+ "The book was about a thrilling adventure.",
952
+ "He cleaned the house from top to bottom.",
953
+ "The mountain trail was steep and rocky.",
954
+ "She enjoyed reading a novel in the evening.",
955
+ "The kids played with their new toys.",
956
+ "The museum had an exhibit on ancient Egypt.",
957
+ "He fixed the broken chair with new screws.",
958
+ "The park was filled with the sounds of children."
959
+ ]
960
+ },
961
+ {
962
+ "list": 65,
963
+ "sentences": [
964
+ "The concert tickets sold out quickly.",
965
+ "She found a quaint little café for lunch.",
966
+ "The plant needed more sunlight to grow.",
967
+ "The movie had an unexpected plot twist.",
968
+ "He repaired the old wooden fence in the backyard.",
969
+ "The restaurant was known for its seafood.",
970
+ "She painted the room a calming blue.",
971
+ "The cat slept peacefully on the couch.",
972
+ "They went to a vineyard for a wine tasting.",
973
+ "The new phone had advanced features."
974
+ ]
975
+ },
976
+ {
977
+ "list": 66,
978
+ "sentences": [
979
+ "The summer breeze was refreshing.",
980
+ "She made a scrapbook of her travels.",
981
+ "The dog enjoyed playing fetch in the yard.",
982
+ "The house had a spacious living room.",
983
+ "He wrote a thank-you note for the gift.",
984
+ "The vacation was a relaxing escape.",
985
+ "She enjoyed a cup of herbal tea.",
986
+ "The car had a spacious trunk.",
987
+ "They visited a botanical garden.",
988
+ "The painting was vibrant and colorful."
989
+ ]
990
+ },
991
+ {
992
+ "list": 67,
993
+ "sentences": [
994
+ "The book was left on the kitchen counter.",
995
+ "She carefully folded the letter and put it in an envelope.",
996
+ "The children played with their new toys.",
997
+ "He made a cup of coffee to start the day.",
998
+ "The new restaurant received great reviews.",
999
+ "The old bridge was recently renovated.",
1000
+ "She decorated the room with fresh flowers.",
1001
+ "The dog slept soundly in its bed.",
1002
+ "They planned a trip to the mountains.",
1003
+ "The phone charger was misplaced."
1004
+ ]
1005
+ },
1006
+ {
1007
+ "list": 68,
1008
+ "sentences": [
1009
+ "The cake was decorated with colorful frosting.",
1010
+ "She found a charming café on her walk.",
1011
+ "The car was washed and vacuumed.",
1012
+ "He repaired the fence in the backyard.",
1013
+ "The movie had a surprising ending.",
1014
+ "The garden was filled with blooming tulips.",
1015
+ "She wore a hat to shield herself from the sun.",
1016
+ "The old clock on the wall ticked loudly.",
1017
+ "They went hiking in the nearby hills.",
1018
+ "The museum had an exhibit on modern art."
1019
+ ]
1020
+ },
1021
+ {
1022
+ "list": 69,
1023
+ "sentences": [
1024
+ "The weather was perfect for a picnic.",
1025
+ "She baked a fresh loaf of bread.",
1026
+ "The dog ran happily through the park.",
1027
+ "He finished reading the novel last night.",
1028
+ "The house was decorated for the holidays.",
1029
+ "They enjoyed a leisurely breakfast.",
1030
+ "The car broke down on the way home.",
1031
+ "She wore a scarf to keep warm.",
1032
+ "The library had a quiet reading room.",
1033
+ "The restaurant had a cozy atmosphere."
1034
+ ]
1035
+ },
1036
+ {
1037
+ "list": 70,
1038
+ "sentences": [
1039
+ "The sunset cast a beautiful orange glow.",
1040
+ "She made a fresh pot of tea.",
1041
+ "The children played in the backyard.",
1042
+ "He organized his books by genre.",
1043
+ "The hotel room had a stunning view.",
1044
+ "The new album was a big hit.",
1045
+ "She found a lovely vase at the market.",
1046
+ "The dog barked at the mail carrier.",
1047
+ "They visited a vineyard for a tour.",
1048
+ "The house had a charming front porch."
1049
+ ]
1050
+ },
1051
+ {
1052
+ "list": 71,
1053
+ "sentences": [
1054
+ "The old painting was restored to its former glory.",
1055
+ "She enjoyed a relaxing evening at home.",
1056
+ "The store had a sale on winter apparel.",
1057
+ "The children made a fort out of blankets.",
1058
+ "He fixed the leaky faucet in the kitchen.",
1059
+ "The concert was held in an outdoor arena.",
1060
+ "She bought a new book to read.",
1061
+ "The garden was lush and green.",
1062
+ "They went to the beach for a swim.",
1063
+ "The cat napped on a sunny windowsill."
1064
+ ]
1065
+ },
1066
+ {
1067
+ "list": 72,
1068
+ "sentences": [
1069
+ "The old oak tree provided ample shade.",
1070
+ "She made a delicious pie from scratch.",
1071
+ "The new phone had a high-resolution camera.",
1072
+ "The dog enjoyed chasing the ball.",
1073
+ "He attended a workshop on photography.",
1074
+ "The library had a wide selection of magazines.",
1075
+ "The kids played with their new board game.",
1076
+ "The painting was a gift from a friend.",
1077
+ "She wore a new dress to the party.",
1078
+ "The car's engine roared to life."
1079
+ ]
1080
+ },
1081
+ {
1082
+ "list": 73,
1083
+ "sentences": [
1084
+ "The cake was decorated with intricate designs.",
1085
+ "She enjoyed a warm cup of cocoa by the fire.",
1086
+ "The garden was full of blooming roses.",
1087
+ "He cleaned the house from top to bottom.",
1088
+ "The movie had a captivating storyline.",
1089
+ "The old house had a beautiful staircase.",
1090
+ "She wrote a letter to her grandmother.",
1091
+ "The dog loved playing in the backyard.",
1092
+ "They had a barbecue in the garden.",
1093
+ "The museum had an interesting collection."
1094
+ ]
1095
+ },
1096
+ {
1097
+ "list": 74,
1098
+ "sentences": [
1099
+ "The summer heat made everyone uncomfortable.",
1100
+ "She made a reservation for dinner at a new restaurant.",
1101
+ "The children played outside in the warm sun.",
1102
+ "The car had a comfortable interior.",
1103
+ "He read a thrilling mystery novel.",
1104
+ "The park was filled with the sounds of laughter.",
1105
+ "The house was decorated for the festive season.",
1106
+ "She baked a batch of cookies for her friends.",
1107
+ "The new sofa was very comfortable.",
1108
+ "They visited a local art gallery."
1109
+ ]
1110
+ },
1111
+ {
1112
+ "list": 75,
1113
+ "sentences": [
1114
+ "The fresh flowers brightened up the room.",
1115
+ "She enjoyed a scenic drive through the countryside.",
1116
+ "The children were excited for their field trip.",
1117
+ "He organized a surprise party for his friend.",
1118
+ "The old barn was renovated into a cozy home.",
1119
+ "The cake was frosted with chocolate icing.",
1120
+ "The weather was perfect for a day at the park.",
1121
+ "She found a new hobby in painting.",
1122
+ "The car had a sleek design.",
1123
+ "They spent the afternoon exploring the city."
1124
+ ]
1125
+ },
1126
+ {
1127
+ "list": 76,
1128
+ "sentences": [
1129
+ "The book was well-written and engaging.",
1130
+ "She enjoyed a peaceful evening at home.",
1131
+ "The restaurant had a diverse menu.",
1132
+ "The children played games in the backyard.",
1133
+ "He fixed the broken windowpane.",
1134
+ "The garden was full of vibrant flowers.",
1135
+ "She made a delicious salad for lunch.",
1136
+ "The movie was both entertaining and thought-provoking.",
1137
+ "They visited a historical landmark.",
1138
+ "The new shoes were stylish and comfortable."
1139
+ ]
1140
+ },
1141
+ {
1142
+ "list": 77,
1143
+ "sentences": [
1144
+ "The sun set behind the hills.",
1145
+ "She made a fresh batch of lemonade.",
1146
+ "The children made a snowman in the yard.",
1147
+ "He repaired the leaky roof.",
1148
+ "The park had a beautiful walking trail.",
1149
+ "She enjoyed a warm blanket by the fireplace.",
1150
+ "The book was a thrilling read.",
1151
+ "They went to a festival in the town square.",
1152
+ "The new kitchen appliances were installed.",
1153
+ "The cat slept peacefully on the windowsill."
1154
+ ]
1155
+ }
1156
+ ]
1157
+ }
1158
+
tts_harvard.py ADDED
@@ -0,0 +1,142 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Synthesize all Harvard Lists 77x lists of 10x sentences to single .wav ----- NEEDS TO BE RUN from https://github.com/audeering/shift/
2
+ #
3
+ # 1. using mimic3 style
4
+ # Folder: 'prompt_mimic3/'
5
+ # 2. using mimic3 4x accelerated style
6
+ # Folder: 'prompt_mimic3speed/'
7
+ # 3. using crema-d style
8
+ # Folder: 'prompt_human/'
9
+ #
10
+ # WAVS used from tts_paper_plot.py
11
+
12
+ import soundfile
13
+ import json
14
+ import numpy as np
15
+ import audb
16
+ from pathlib import Path
17
+
18
+ LABELS = ['arousal', 'dominance', 'valence']
19
+
20
+
21
+
22
+
23
+ def load_speech(split=None):
24
+ DB = [
25
+ # [dataset, version, table, has_timdeltas_or_is_full_wavfile]
26
+ ['crema-d', '1.1.1', 'emotion.voice.test', False],
27
+ # ['emodb', '1.2.0', 'emotion.categories.train.gold_standard', False],
28
+ # ['entertain-playtestcloud', '1.1.0', 'emotion.categories.train.gold_standard', True],
29
+ # ['erik', '2.2.0', 'emotion.categories.train.gold_standard', True],
30
+ # ['meld', '1.3.1', 'emotion.categories.train.gold_standard', False],
31
+ # ['msppodcast', '5.0.0', 'emotion.categories.train.gold_standard', False], # tandalone bucket because it has gt labels?
32
+ # ['myai', '1.0.1', 'emotion.categories.train.gold_standard', False],
33
+ # ['casia', None, 'emotion.categories.gold_standard', False],
34
+ # ['switchboard-1', None, 'sentiment', True],
35
+ # ['swiss-parliament', None, 'segments', True],
36
+ # ['argentinian-parliament', None, 'segments', True],
37
+ # ['austrian-parliament', None, 'segments', True],
38
+ # #'german', --> bundestag
39
+ # ['brazilian-parliament', None, 'segments', True],
40
+ # ['mexican-parliament', None, 'segments', True],
41
+ # ['portuguese-parliament', None, 'segments', True],
42
+ # ['spanish-parliament', None, 'segments', True],
43
+ # ['chinese-vocal-emotions-liu-pell', None, 'emotion.categories.desired', False],
44
+ # peoples-speech slow
45
+ # ['peoples-speech', None, 'train-initial', False]
46
+ ]
47
+
48
+ output_list = []
49
+ for database_name, ver, table, has_timedeltas in DB:
50
+
51
+ a = audb.load(database_name,
52
+ sampling_rate=16000,
53
+ format='wav',
54
+ mixdown=True,
55
+ version=ver,
56
+ cache_root='/cache/audb/')
57
+ a = a[table].get()
58
+ if has_timedeltas:
59
+ print(f'{has_timedeltas=}')
60
+ # a = a.reset_index()[['file', 'start', 'end']]
61
+ # output_list += [[*t] for t
62
+ # in zip(a.file.values, a.start.dt.total_seconds().values, a.end.dt.total_seconds().values)]
63
+ else:
64
+ output_list += [f for f in a.index] # use file (no timedeltas)
65
+ return output_list
66
+
67
+
68
+
69
+
70
+
71
+ # Generate 77 wavs
72
+
73
+
74
+
75
+
76
+ with open('voices.json', 'r') as f:
77
+ df = json.load(f)['voices']
78
+ voice_names = [v['voice'] for k,v in df.items()]
79
+ synthetic_wav_paths = []
80
+ synthetic_wav_paths_AFFECT = []
81
+ for voice in voice_names:
82
+
83
+ synthetic_wav_paths.append(
84
+ 'assets/wavs/style_vector/' + voice.replace('/', '_').replace('#', '_').replace(
85
+ 'cmu-arctic', 'cmu_arctic').replace('_low', '') + '.wav')
86
+ synthetic_wav_paths_AFFECT.append(
87
+ 'assets/wavs/style_vector_v2/' + voice.replace('/', '_').replace('#', '_').replace(
88
+ 'cmu-arctic', 'cmu_arctic').replace('_low', '') + '.wav')
89
+
90
+
91
+ print(len(synthetic_wav_paths))
92
+
93
+
94
+ natural_wav_paths = load_speech()
95
+
96
+
97
+ # SYNTHESIZE mimic mimicx4 crema-d
98
+ import msinference
99
+
100
+
101
+ with open('harvard.json', 'r') as f:
102
+ harvard_individual_sentences = json.load(f)['sentences']
103
+
104
+
105
+
106
+
107
+
108
+ for audio_prompt in ['mimic3', 'mimic3_speed', 'human']:
109
+ total_audio = []
110
+ ix = 0
111
+ for list_of_10 in harvard_individual_sentences:
112
+ # long_sentence = ' '.join(list_of_10['sentences'])
113
+ # harvard.append(long_sentence.replace('.', ' '))
114
+ for text in list_of_10['sentences']:
115
+ if audio_prompt == 'mimic3':
116
+ style_vec = msinference.compute_style(
117
+ synthetic_wav_paths[ix % 134])
118
+ elif audio_prompt == 'mimic3_speed':
119
+ style_vec = msinference.compute_style(
120
+ synthetic_wav_paths_AFFECT[ix % 134])
121
+ elif audio_prompt == 'human':
122
+ style_vec = msinference.compute_style(
123
+ natural_wav_paths[ix % len(natural_wav_paths)])
124
+ else:
125
+ print('unknonw list of style vecto')
126
+ print(ix, text)
127
+ ix += 1
128
+ x = msinference.inference(text,
129
+ style_vec,
130
+ alpha=0.3,
131
+ beta=0.7,
132
+ diffusion_steps=7,
133
+ embedding_scale=1)
134
+
135
+ total_audio.append(x)
136
+ # concat before write
137
+ # -- for 10x sentenctes
138
+ print('_____________________')
139
+ # -- for 77x lists
140
+ total_audio = np.concatenate(total_audio)
141
+ soundfile.write(f'{audio_prompt}_770.wav', total_audio, 24000)
142
+ print(f'{audio_prompt}_full_770.wav')
visualize_tts_plesantness.py ADDED
@@ -0,0 +1,371 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 1. engineer_style_foreign_style_vectors.py # for speed=1 & speed=4
2
+ # 2. tts_harvard.py # (call inside SHIFT repo - needs StyleTTS msinference.py)
3
+ # 3. visualize_tts_pleasantness.py # figures & audinterface
4
+
5
+
6
+ # Visualises timeseries 11 class for mimic3 human mimic3speed
7
+ #
8
+ #
9
+ # human_770.wav
10
+ # mimic3_770.wav
11
+ # mimic3_speedup_770.wav
12
+ import pandas as pd
13
+ import os
14
+
15
+ import json
16
+ import numpy as np
17
+ import audonnx
18
+ import audb
19
+ from pathlib import Path
20
+ import transformers
21
+ import torch
22
+ import audmodel
23
+ import audinterface
24
+ import matplotlib.pyplot as plt
25
+ import audiofile
26
+
27
+ LABELS = ['arousal', 'dominance', 'valence',
28
+ 'speech_synthesizer', 'synthetic_singing',
29
+ 'Angry',
30
+ 'Sad',
31
+ 'Happy',
32
+ 'Surprise',
33
+ 'Fear',
34
+ 'Disgust',
35
+ 'Contempt',
36
+ 'Neutral'
37
+ ]
38
+
39
+
40
+ args = transformers.Wav2Vec2Config() #finetuning_task='spef2feat_reg')
41
+ args.dev = torch.device('cuda:0')
42
+ args.dev2 = torch.device('cuda:0')
43
+
44
+ # def _softmax(x):
45
+ # '''x : (batch, num_class)'''
46
+ # x -= x.max(1, keepdims=True) # if all -400 then sum(exp(x)) = 0
47
+ # x = np.minimum(-100, x)
48
+ # x = np.exp(x)
49
+ # x /= x.sum(1, keepdims=True)
50
+ # return x
51
+
52
+ def _softmax(x):
53
+ '''x : (batch, num_class)'''
54
+ x -= x.max(1, keepdims=True) # if all -400 then sum(exp(x)) = 0
55
+ x = np.maximum(-100, x)
56
+ x = np.exp(x)
57
+ x /= x.sum(1, keepdims=True)
58
+ return x
59
+
60
+ def _sigmoid(x):
61
+ '''x : (batch, num_class)'''
62
+ return 1 / (1 + np.exp(-x))
63
+
64
+
65
+ # --
66
+ # ALL = anger, contempt, disgust, fear, happiness, neutral, no_agreement, other, sadness, surprise
67
+ # plot - unplesant emo 7x emo-categories [anger, contempt, disgust, fear, sadness] for artifical/sped-up/natural
68
+ # plot - pleasant emo [neutral, happiness, surprise]
69
+ # plot - Cubes Natural vs spedup 4x speed
70
+ # plot - synthesizer class audioset
71
+
72
+
73
+ # https://arxiv.org/pdf/2407.12229
74
+ # https://arxiv.org/pdf/2312.05187
75
+ # https://arxiv.org/abs/2407.05407
76
+ # https://arxiv.org/pdf/2408.06577
77
+ # https://arxiv.org/pdf/2309.07405
78
+
79
+
80
+ # wavs are generated concat and plot time-series?
81
+
82
+ # for mimic3/mimic3speed/human - concat all 77 and run timeseries with 7s hop 3s
83
+ for long_audio in [
84
+ # 'mimic3.wav',
85
+ # 'mimic3_speedup.wav',
86
+ 'human_770.wav', # 'mimic3_all_77.wav', #
87
+ 'mimic3_770.wav',
88
+ 'mimic3_speed_770.wav'
89
+ ]:
90
+ file_interface = f'timeseries_{long_audio.replace("/", "")}.pkl'
91
+ if not os.path.exists(file_interface):
92
+
93
+
94
+ print('_______________________________________\nProcessing\n', file_interface, '\n___________')
95
+
96
+
97
+
98
+ # CAT MSP
99
+
100
+ from transformers import AutoModelForAudioClassification
101
+ import types
102
+ def _infer(self, x):
103
+ '''x: (batch, audio-samples-16KHz)'''
104
+ x = (x + self.config.mean) / self.config.std # plus
105
+ x = self.ssl_model(x, attention_mask=None).last_hidden_state
106
+ # pool
107
+ h = self.pool_model.sap_linear(x).tanh()
108
+ w = torch.matmul(h, self.pool_model.attention)
109
+ w = stylesoftmax(1)
110
+ mu = (x * w).sum(1)
111
+ x = torch.cat(
112
+ [
113
+ mu,
114
+ ((x * x * w).sum(1) - mu * mu).clamp(min=1e-7).sqrt()
115
+ ], 1)
116
+ return self.ser_model(x)
117
+
118
+ teacher_cat = AutoModelForAudioClassification.from_pretrained(
119
+ '3loi/SER-Odyssey-Baseline-WavLM-Categorical-Attributes',
120
+ trust_remote_code=True # fun definitions see 3loi/SER-.. repo
121
+ ).to(args.dev2).eval()
122
+ teacher_cat.forward = types.MethodType(_infer, teacher_cat)
123
+
124
+
125
+
126
+ # Audioset & ADV
127
+
128
+ audioset_model = audonnx.load(audmodel.load('17c240ec-1.0.0'), device='cuda:0')
129
+ adv_model = audonnx.load(audmodel.load('90398682-2.0.0'), device='cuda:0')
130
+
131
+ def process_function(x, sampling_rate, idx):
132
+ '''run audioset ct, adv
133
+
134
+ USE onnx teachers
135
+
136
+ return [synth-speech, synth-singing, 7x, 3x adv] = 11
137
+ '''
138
+
139
+ # x = x[None , :] ASaHSuFDCN
140
+ #{0: 'Angry', 1: 'Sad', 2: 'Happy', 3: 'Surprise',
141
+ #4: 'Fear', 5: 'Disgust', 6: 'Contempt', 7: 'Neutral'}
142
+ #tensor([[0.0015, 0.3651, 0.0593, 0.0315, 0.0600, 0.0125, 0.0319, 0.4382]])
143
+ logits_cat = teacher_cat(torch.from_numpy(x).to(args.dev)).cpu().detach().numpy()
144
+ # USE ALL CATEGORIES
145
+ # --
146
+ logits_audioset = audioset_model(x, 16000)['logits_sounds']
147
+ logits_audioset = logits_audioset[:, [7, 35]] # speech synthesizer synthetic singing
148
+ # --
149
+ logits_adv = adv_model(x, 16000)['logits']
150
+
151
+ cat = np.concatenate([logits_adv,
152
+ _sigmoid(logits_audioset),
153
+ _softmax(logits_cat)],
154
+ 1)
155
+ print(cat)
156
+ return cat #logits_adv #model(signal, sampling_rate)['logits']
157
+
158
+ interface = audinterface.Feature(
159
+ feature_names=LABELS,
160
+ process_func=process_function,
161
+ # process_func_args={'outputs': 'logits_scene'},
162
+ process_func_applies_sliding_window=False,
163
+ win_dur=40.0,
164
+ hop_dur=10.0,
165
+ sampling_rate=16000,
166
+ resample=True,
167
+ verbose=True,
168
+ )
169
+ df_pred = interface.process_file(long_audio)
170
+ df_pred.to_pickle(file_interface)
171
+ else:
172
+ print(file_interface, 'FOUND')
173
+ # df_pred = pd.read_pickle(file_interface)
174
+ # ===============================================================================
175
+ # V I S U A L S by loading all 3 pkl - mimic3 - speedup - human pd
176
+ #
177
+ # ===============================================================================
178
+
179
+
180
+ preds = {}
181
+ SHORTEST_PD = 100000 # segments
182
+ for long_audio in [
183
+ # 'mimic3.wav',
184
+ # 'mimic3_speedup.wav',
185
+ 'human_770.wav', # 'mimic3_all_77.wav', #
186
+ 'mimic3_770.wav',
187
+ 'mimic3_speed_770.wav'
188
+ ]:
189
+ file_interface = f'timeseries_{long_audio.replace("/", "")}.pkl'
190
+ y = pd.read_pickle(file_interface)
191
+ preds[long_audio] = y
192
+ SHORTEST_PD = min(SHORTEST_PD, len(y))
193
+
194
+ # clean indexes for plot
195
+
196
+ for k,v in preds.items():
197
+ p = v[:SHORTEST_PD] # TRuncate extra segments - human is slower than mimic3
198
+ # p = pd.read_pickle(student_file)
199
+ p.reset_index(inplace= True)
200
+ p.drop(columns=['file','start'], inplace=True)
201
+ p.set_index('end', inplace=True)
202
+ # p = p.filter(scene_classes) #['transport', 'indoor', 'outdoor'])
203
+ p.index = p.index.map(mapper = (lambda x: x.total_seconds()))
204
+ preds[k] = p
205
+
206
+ print(p, '\n\n\n\n \n')
207
+
208
+
209
+ # Show plots by 2
210
+
211
+ fig, ax = plt.subplots(nrows=10, ncols=2, figsize=(24, 24), gridspec_kw={'hspace': 0, 'wspace': .04})
212
+
213
+
214
+ # ADV
215
+
216
+ time_stamp = preds['human_770.wav'].index.to_numpy()
217
+ for j, dim in enumerate(['arousal',
218
+ 'dominance',
219
+ 'valence']):
220
+
221
+ # MIMIC3
222
+
223
+ ax[j, 0].plot(time_stamp, preds['mimic3_770.wav'][dim],
224
+ color=(0,104/255,139/255),
225
+ label='mean_1',
226
+ linewidth=2)
227
+ ax[j, 0].fill_between(time_stamp,
228
+
229
+ preds['mimic3_770.wav'][dim],
230
+ preds['human_770.wav'][dim],
231
+
232
+ color=(.2,.2,.2),
233
+ alpha=0.244)
234
+ if j == 0:
235
+ ax[j, 0].legend(['StyleTTS2 style mimic3',
236
+ 'StyleTTS2 style crema-d'],
237
+ prop={'size': 10},
238
+ # loc='lower right'
239
+ )
240
+ ax[j, 0].set_ylabel(dim.lower(), color=(.4, .4, .4), fontsize=14)
241
+
242
+ # TICK
243
+ ax[j, 0].set_ylim([1e-7, .9999])
244
+ # ax[j, 0].set_yticks([.25, .5,.75])
245
+ # ax[j, 0].set_yticklabels(['0.25', '.5', '0.75'])
246
+ ax[j, 0].set_xticklabels(['' for _ in ax[j, 0].get_xticklabels()])
247
+ ax[j, 0].set_xlim([time_stamp[0], time_stamp[-1]])
248
+
249
+
250
+ # MIMIC3 4x speed
251
+
252
+
253
+ ax[j, 1].plot(time_stamp, preds['mimic3_speed_770.wav'][dim],
254
+ color=(0,104/255,139/255),
255
+ label='mean_1',
256
+ linewidth=2)
257
+ ax[j, 1].fill_between(time_stamp,
258
+
259
+ preds['mimic3_speed_770.wav'][dim],
260
+ preds['human_770.wav'][dim],
261
+
262
+ color=(.2,.2,.2),
263
+ alpha=0.244)
264
+ if j == 0:
265
+ ax[j, 1].legend(['StyleTTS2 style mimic3 4x speed',
266
+ 'StyleTTS2 style crema-d'],
267
+ prop={'size': 10},
268
+ # loc='lower right'
269
+ )
270
+
271
+
272
+ ax[j, 1].set_xlabel('767 Harvard Sentences (seconds)')
273
+
274
+
275
+
276
+ # TICK
277
+ ax[j, 1].set_ylim([1e-7, .9999])
278
+ # ax[j, 1].set_yticklabels(['' for _ in ax[j, 1].get_yticklabels()])
279
+ ax[j, 1].set_xticklabels(['' for _ in ax[j, 0].get_xticklabels()])
280
+ ax[j, 1].set_xlim([time_stamp[0], time_stamp[-1]])
281
+
282
+
283
+
284
+
285
+ ax[j, 0].grid()
286
+ ax[j, 1].grid()
287
+ # CATEGORIE
288
+
289
+
290
+
291
+
292
+
293
+ time_stamp = preds['human_770.wav'].index.to_numpy()
294
+ for j, dim in enumerate(['Angry',
295
+ 'Sad',
296
+ 'Happy',
297
+ 'Surprise',
298
+ 'Fear',
299
+ 'Disgust',
300
+ 'Contempt',
301
+ # 'Neutral'
302
+ ]): # ASaHSuFDCN
303
+ j = j + 3 # skip A/D/V suplt
304
+
305
+ # MIMIC3
306
+
307
+ ax[j, 0].plot(time_stamp, preds['mimic3_770.wav'][dim],
308
+ color=(0,104/255,139/255),
309
+ label='mean_1',
310
+ linewidth=2)
311
+ ax[j, 0].fill_between(time_stamp,
312
+
313
+ preds['mimic3_770.wav'][dim],
314
+ preds['human_770.wav'][dim],
315
+
316
+ color=(.2,.2,.2),
317
+ alpha=0.244)
318
+ # ax[j, 0].legend(['StyleTTS2 style mimic3',
319
+ # 'StyleTTS2 style crema-d'],
320
+ # prop={'size': 10},
321
+ # # loc='upper left'
322
+ # )
323
+
324
+
325
+ ax[j, 0].set_ylabel(dim.lower(), color=(.4, .4, .4), fontsize=14)
326
+
327
+ # TICKS
328
+ ax[j, 0].set_ylim([1e-7, .9999])
329
+ ax[j, 0].set_xlim([time_stamp[0], time_stamp[-1]])
330
+ ax[j, 0].set_xticklabels(['' for _ in ax[j, 0].get_xticklabels()])
331
+ ax[j, 0].set_xlabel('767 Harvard Sentences (seconds)', fontsize=16, color=(.4,.4,.4))
332
+
333
+
334
+ # MIMIC3 4x speed
335
+
336
+
337
+ ax[j, 1].plot(time_stamp, preds['mimic3_speed_770.wav'][dim],
338
+ color=(0,104/255,139/255),
339
+ label='mean_1',
340
+ linewidth=2)
341
+ ax[j, 1].fill_between(time_stamp,
342
+
343
+ preds['mimic3_speed_770.wav'][dim],
344
+ preds['human_770.wav'][dim],
345
+
346
+ color=(.2,.2,.2),
347
+ alpha=0.244)
348
+ # ax[j, 1].legend(['StyleTTS2 style mimic3 4x speed',
349
+ # 'StyleTTS2 style crema-d'],
350
+ # prop={'size': 10},
351
+ # # loc='upper left'
352
+ # )
353
+ ax[j, 1].set_xlabel('767 Harvard Sentences (seconds)', fontsize=16, color=(.4,.4,.4))
354
+ ax[j, 1].set_ylim([1e-7, .999])
355
+ # ax[j, 1].set_yticklabels(['' for _ in ax[j, 1].get_yticklabels()])
356
+ ax[j, 1].set_xticklabels(['' for _ in ax[j, 1].get_xticklabels()])
357
+ ax[j, 1].set_xlim([time_stamp[0], time_stamp[-1]])
358
+
359
+
360
+
361
+
362
+
363
+
364
+ ax[j, 0].grid()
365
+ ax[j, 1].grid()
366
+
367
+
368
+
369
+ plt.savefig(f'valence_tts.pdf', bbox_inches='tight')
370
+ plt.close()
371
+