diff --git a/README.md b/README.md index fb08e80..3a24550 100644 --- a/README.md +++ b/README.md @@ -100,7 +100,7 @@ https://user-images.githubusercontent.com/36994049/207743923-b4f0d537-29ae-4be2- The phoneme ASR alignment model is *language-specific*, for tested languages these models are [automatically picked from torchaudio pipelines or huggingface](https://github.com/m-bain/whisperX/blob/e909f2f766b23b2000f2d95df41f9b844ac53e49/whisperx/transcribe.py#L22). Just pass in the `--language` code, and use the whisper `--model large`. -Currently default models provided for `{en, fr, de, es, it, ja, zh, nl, uk}`. If the detected language is not in this list, you need to find a phoneme-based ASR model from [huggingface model hub](https://huggingface.co/models) and test it on your data. +Currently default models provided for `{en, fr, de, es, it, ja, zh, nl, uk, pt}`. If the detected language is not in this list, you need to find a phoneme-based ASR model from [huggingface model hub](https://huggingface.co/models) and test it on your data. #### E.g. German diff --git a/examples/whisperx/sample_fr_01.wav.ass b/examples/whisperx/sample_fr_01.wav.ass index 434bb77..64a4b9e 100644 --- a/examples/whisperx/sample_fr_01.wav.ass +++ b/examples/whisperx/sample_fr_01.wav.ass @@ -16,137 +16,129 @@ Dialogue: 0,0:00:1.07,0:00:1.11,Default,,0,0,0,,Lâchez, c'est bon. Dialogue: 0,0:00:1.11,0:00:1.21,Default,,0,0,0,,Lâchez, {\1c&HFF00&\u1}c'est{\r} bon. Dialogue: 0,0:00:1.21,0:00:1.23,Default,,0,0,0,,Lâchez, c'est bon. Dialogue: 0,0:00:1.23,0:00:1.31,Default,,0,0,0,,Lâchez, c'est {\1c&HFF00&\u1}bon.{\r} -Dialogue: 0,0:00:1.31,0:00:1.83,Default,,0,0,0,,{\1c&HFF00&\u1}Ça{\r} va? -Dialogue: 0,0:00:1.83,0:00:1.87,Default,,0,0,0,,Ça va? -Dialogue: 0,0:00:1.87,0:00:1.93,Default,,0,0,0,,Ça {\1c&HFF00&\u1}va?{\r} -Dialogue: 0,0:00:1.97,0:00:2.03,Default,,0,0,0,,{\1c&HFF00&\u1}Oui.{\r} -Dialogue: 0,0:00:2.96,0:00:3.29,Default,,0,0,0,,{\1c&HFF00&\u1}Merci{\r} beaucoup. -Dialogue: 0,0:00:3.29,0:00:3.31,Default,,0,0,0,,Merci beaucoup. -Dialogue: 0,0:00:3.31,0:00:3.51,Default,,0,0,0,,Merci {\1c&HFF00&\u1}beaucoup.{\r} -Dialogue: 0,0:00:4.35,0:00:4.53,Default,,0,0,0,,{\1c&HFF00&\u1}Chèque{\r} ou espèce? -Dialogue: 0,0:00:4.53,0:00:4.63,Default,,0,0,0,,Chèque ou espèce? -Dialogue: 0,0:00:4.63,0:00:4.71,Default,,0,0,0,,Chèque {\1c&HFF00&\u1}ou{\r} espèce? -Dialogue: 0,0:00:4.71,0:00:4.77,Default,,0,0,0,,Chèque ou espèce? -Dialogue: 0,0:00:4.77,0:00:5.03,Default,,0,0,0,,Chèque ou {\1c&HFF00&\u1}espèce?{\r} -Dialogue: 0,0:00:6.54,0:00:7.00,Default,,0,0,0,,{\1c&HFF00&\u1}J'ai{\r} un chèque sur la commode, il est signé. -Dialogue: 0,0:00:7.00,0:00:7.02,Default,,0,0,0,,J'ai un chèque sur la commode, il est signé. -Dialogue: 0,0:00:7.02,0:00:7.08,Default,,0,0,0,,J'ai {\1c&HFF00&\u1}un{\r} chèque sur la commode, il est signé. -Dialogue: 0,0:00:7.08,0:00:7.12,Default,,0,0,0,,J'ai un chèque sur la commode, il est signé. -Dialogue: 0,0:00:7.12,0:00:7.34,Default,,0,0,0,,J'ai un {\1c&HFF00&\u1}chèque{\r} sur la commode, il est signé. -Dialogue: 0,0:00:7.34,0:00:7.36,Default,,0,0,0,,J'ai un chèque sur la commode, il est signé. -Dialogue: 0,0:00:7.36,0:00:7.48,Default,,0,0,0,,J'ai un chèque {\1c&HFF00&\u1}sur{\r} la commode, il est signé. -Dialogue: 0,0:00:7.48,0:00:7.52,Default,,0,0,0,,J'ai un chèque sur la commode, il est signé. -Dialogue: 0,0:00:7.52,0:00:7.58,Default,,0,0,0,,J'ai un chèque sur {\1c&HFF00&\u1}la{\r} commode, il est signé. -Dialogue: 0,0:00:7.58,0:00:7.62,Default,,0,0,0,,J'ai un chèque sur la commode, il est signé. -Dialogue: 0,0:00:7.62,0:00:7.90,Default,,0,0,0,,J'ai un chèque sur la {\1c&HFF00&\u1}commode,{\r} il est signé. -Dialogue: 0,0:00:7.90,0:00:7.98,Default,,0,0,0,,J'ai un chèque sur la commode, il est signé. -Dialogue: 0,0:00:7.98,0:00:8.04,Default,,0,0,0,,J'ai un chèque sur la commode, {\1c&HFF00&\u1}il{\r} est signé. -Dialogue: 0,0:00:8.04,0:00:8.08,Default,,0,0,0,,J'ai un chèque sur la commode, il est signé. -Dialogue: 0,0:00:8.08,0:00:8.18,Default,,0,0,0,,J'ai un chèque sur la commode, il {\1c&HFF00&\u1}est{\r} signé. -Dialogue: 0,0:00:8.18,0:00:8.22,Default,,0,0,0,,J'ai un chèque sur la commode, il est signé. -Dialogue: 0,0:00:8.22,0:00:8.38,Default,,0,0,0,,J'ai un chèque sur la commode, il est {\1c&HFF00&\u1}signé.{\r} -Dialogue: 0,0:00:8.38,0:00:8.50,Default,,0,0,0,,{\1c&HFF00&\u1}Je{\r} vais le repirer. -Dialogue: 0,0:00:8.50,0:00:8.52,Default,,0,0,0,,Je vais le repirer. -Dialogue: 0,0:00:8.52,0:00:8.82,Default,,0,0,0,,Je {\1c&HFF00&\u1}vais{\r} le repirer. -Dialogue: 0,0:00:8.82,0:00:8.84,Default,,0,0,0,,Je vais le repirer. -Dialogue: 0,0:00:8.84,0:00:8.92,Default,,0,0,0,,Je vais {\1c&HFF00&\u1}le{\r} repirer. -Dialogue: 0,0:00:8.92,0:00:8.96,Default,,0,0,0,,Je vais le repirer. -Dialogue: 0,0:00:8.96,0:00:9.19,Default,,0,0,0,,Je vais le {\1c&HFF00&\u1}repirer.{\r} -Dialogue: 0,0:00:9.21,0:00:9.25,Default,,0,0,0,,{\1c&HFF00&\u1}Ok.{\r} -Dialogue: 0,0:00:9.66,0:00:9.72,Default,,0,0,0,,{\1c&HFF00&\u1}Ouh{\r} là! -Dialogue: 0,0:00:9.72,0:00:9.74,Default,,0,0,0,,Ouh là! -Dialogue: 0,0:00:9.74,0:00:9.78,Default,,0,0,0,,Ouh {\1c&HFF00&\u1}là!{\r} -Dialogue: 0,0:00:10.64,0:00:10.76,Default,,0,0,0,,{\1c&HFF00&\u1}Venez.{\r} -Dialogue: 0,0:00:11.96,0:00:12.45,Default,,0,0,0,,{\1c&HFF00&\u1}Merci.{\r} -Dialogue: 0,0:00:12.66,0:00:13.95,Default,,0,0,0,,{\1c&HFF00&\u1}Ah!{\r} C'est qui? -Dialogue: 0,0:00:13.95,0:00:13.97,Default,,0,0,0,,Ah! C'est qui? -Dialogue: 0,0:00:13.97,0:00:14.09,Default,,0,0,0,,Ah! {\1c&HFF00&\u1}C'est{\r} qui? -Dialogue: 0,0:00:14.09,0:00:14.11,Default,,0,0,0,,Ah! C'est qui? -Dialogue: 0,0:00:14.11,0:00:14.19,Default,,0,0,0,,Ah! C'est {\1c&HFF00&\u1}qui?{\r} -Dialogue: 0,0:00:14.19,0:00:14.59,Default,,0,0,0,,{\1c&HFF00&\u1}C'est{\r} pas vrai, qu'est-ce qu'il fout ici, ce con? -Dialogue: 0,0:00:14.59,0:00:14.61,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout ici, ce con? -Dialogue: 0,0:00:14.61,0:00:16.29,Default,,0,0,0,,C'est {\1c&HFF00&\u1}pas{\r} vrai, qu'est-ce qu'il fout ici, ce con? -Dialogue: 0,0:00:16.29,0:00:16.33,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout ici, ce con? -Dialogue: 0,0:00:16.33,0:00:16.49,Default,,0,0,0,,C'est pas {\1c&HFF00&\u1}vrai,{\r} qu'est-ce qu'il fout ici, ce con? -Dialogue: 0,0:00:16.49,0:00:16.51,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout ici, ce con? -Dialogue: 0,0:00:16.51,0:00:20.92,Default,,0,0,0,,C'est pas vrai, {\1c&HFF00&\u1}qu'est-ce{\r} qu'il fout ici, ce con? -Dialogue: 0,0:00:20.92,0:00:20.94,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout ici, ce con? -Dialogue: 0,0:00:20.94,0:00:21.10,Default,,0,0,0,,C'est pas vrai, qu'est-ce {\1c&HFF00&\u1}qu'il{\r} fout ici, ce con? -Dialogue: 0,0:00:21.10,0:00:21.14,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout ici, ce con? -Dialogue: 0,0:00:21.14,0:00:21.36,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il {\1c&HFF00&\u1}fout{\r} ici, ce con? -Dialogue: 0,0:00:21.36,0:00:21.68,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout ici, ce con? -Dialogue: 0,0:00:21.68,0:00:22.30,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout {\1c&HFF00&\u1}ici,{\r} ce con? -Dialogue: 0,0:00:22.30,0:00:22.32,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout ici, ce con? -Dialogue: 0,0:00:22.32,0:00:22.42,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout ici, {\1c&HFF00&\u1}ce{\r} con? -Dialogue: 0,0:00:22.42,0:00:22.44,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout ici, ce con? -Dialogue: 0,0:00:22.44,0:00:22.50,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout ici, ce {\1c&HFF00&\u1}con?{\r} -Dialogue: 0,0:00:22.90,0:00:23.50,Default,,0,0,0,,{\1c&HFF00&\u1}Excusez-moi,{\r} mais je crois que j'ai oublié mon sac chez vous. -Dialogue: 0,0:00:23.50,0:00:23.52,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. -Dialogue: 0,0:00:23.52,0:00:25.05,Default,,0,0,0,,Excusez-moi, {\1c&HFF00&\u1}mais{\r} je crois que j'ai oublié mon sac chez vous. -Dialogue: 0,0:00:25.05,0:00:25.07,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. -Dialogue: 0,0:00:25.07,0:00:25.13,Default,,0,0,0,,Excusez-moi, mais {\1c&HFF00&\u1}je{\r} crois que j'ai oublié mon sac chez vous. -Dialogue: 0,0:00:25.13,0:00:25.15,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. -Dialogue: 0,0:00:25.15,0:00:25.27,Default,,0,0,0,,Excusez-moi, mais je {\1c&HFF00&\u1}crois{\r} que j'ai oublié mon sac chez vous. -Dialogue: 0,0:00:25.27,0:00:25.29,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. -Dialogue: 0,0:00:25.29,0:00:25.35,Default,,0,0,0,,Excusez-moi, mais je crois {\1c&HFF00&\u1}que{\r} j'ai oublié mon sac chez vous. -Dialogue: 0,0:00:25.35,0:00:25.37,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. -Dialogue: 0,0:00:25.37,0:00:25.43,Default,,0,0,0,,Excusez-moi, mais je crois que {\1c&HFF00&\u1}j'ai{\r} oublié mon sac chez vous. -Dialogue: 0,0:00:25.43,0:00:25.45,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. -Dialogue: 0,0:00:25.45,0:00:25.59,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai {\1c&HFF00&\u1}oublié{\r} mon sac chez vous. -Dialogue: 0,0:00:25.59,0:00:25.61,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. -Dialogue: 0,0:00:25.61,0:00:25.77,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié {\1c&HFF00&\u1}mon{\r} sac chez vous. -Dialogue: 0,0:00:25.77,0:00:25.79,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. -Dialogue: 0,0:00:25.79,0:00:25.95,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon {\1c&HFF00&\u1}sac{\r} chez vous. -Dialogue: 0,0:00:25.95,0:00:25.97,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. -Dialogue: 0,0:00:25.97,0:00:26.05,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac {\1c&HFF00&\u1}chez{\r} vous. -Dialogue: 0,0:00:26.05,0:00:26.07,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. -Dialogue: 0,0:00:26.07,0:00:26.19,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez {\1c&HFF00&\u1}vous.{\r} -Dialogue: 0,0:00:26.19,0:00:26.33,Default,,0,0,0,,{\1c&HFF00&\u1}Ça{\r} va? -Dialogue: 0,0:00:26.33,0:00:26.41,Default,,0,0,0,,Ça va? -Dialogue: 0,0:00:26.41,0:00:26.45,Default,,0,0,0,,Ça {\1c&HFF00&\u1}va?{\r} -Dialogue: 0,0:00:27.55,0:00:27.67,Default,,0,0,0,,{\1c&HFF00&\u1}Ça{\r} va? -Dialogue: 0,0:00:27.67,0:00:27.69,Default,,0,0,0,,Ça va? -Dialogue: 0,0:00:27.69,0:00:27.73,Default,,0,0,0,,Ça {\1c&HFF00&\u1}va?{\r} -Dialogue: 0,0:00:33.68,0:00:33.84,Default,,0,0,0,,{\1c&HFF00&\u1}Attendez.{\r} -Dialogue: 0,0:00:36.80,0:00:36.97,Default,,0,0,0,,{\1c&HFF00&\u1}Tout{\r} à l'heure, là, c'était vous. -Dialogue: 0,0:00:36.97,0:00:37.01,Default,,0,0,0,,Tout à l'heure, là, c'était vous. -Dialogue: 0,0:00:37.01,0:00:37.05,Default,,0,0,0,,Tout {\1c&HFF00&\u1}à{\r} l'heure, là, c'était vous. -Dialogue: 0,0:00:37.05,0:00:37.09,Default,,0,0,0,,Tout à l'heure, là, c'était vous. -Dialogue: 0,0:00:37.09,0:00:37.35,Default,,0,0,0,,Tout à {\1c&HFF00&\u1}l'heure,{\r} là, c'était vous. -Dialogue: 0,0:00:37.35,0:00:37.39,Default,,0,0,0,,Tout à l'heure, là, c'était vous. -Dialogue: 0,0:00:37.39,0:00:37.97,Default,,0,0,0,,Tout à l'heure, {\1c&HFF00&\u1}là,{\r} c'était vous. -Dialogue: 0,0:00:37.97,0:00:38.01,Default,,0,0,0,,Tout à l'heure, là, c'était vous. -Dialogue: 0,0:00:38.01,0:00:39.07,Default,,0,0,0,,Tout à l'heure, là, {\1c&HFF00&\u1}c'était{\r} vous. -Dialogue: 0,0:00:39.07,0:00:39.11,Default,,0,0,0,,Tout à l'heure, là, c'était vous. -Dialogue: 0,0:00:39.11,0:00:39.21,Default,,0,0,0,,Tout à l'heure, là, c'était {\1c&HFF00&\u1}vous.{\r} -Dialogue: 0,0:00:40.95,0:00:41.03,Default,,0,0,0,,{\1c&HFF00&\u1}Vous,{\r} pas... pas lui. Vous... -Dialogue: 0,0:00:41.03,0:00:41.07,Default,,0,0,0,,Vous, pas... pas lui. Vous... -Dialogue: 0,0:00:41.07,0:00:41.15,Default,,0,0,0,,Vous, {\1c&HFF00&\u1}pas...{\r} pas lui. Vous... -Dialogue: 0,0:00:41.15,0:00:41.17,Default,,0,0,0,,Vous, pas... pas lui. Vous... -Dialogue: 0,0:00:41.17,0:00:41.27,Default,,0,0,0,,Vous, pas... {\1c&HFF00&\u1}pas{\r} lui. Vous... -Dialogue: 0,0:00:41.27,0:00:41.29,Default,,0,0,0,,Vous, pas... pas lui. Vous... -Dialogue: 0,0:00:41.29,0:00:41.39,Default,,0,0,0,,Vous, pas... pas {\1c&HFF00&\u1}lui.{\r} Vous... -Dialogue: 0,0:00:41.39,0:00:41.43,Default,,0,0,0,,Vous, pas... pas lui. Vous... -Dialogue: 0,0:00:41.43,0:00:41.51,Default,,0,0,0,,Vous, pas... pas lui. {\1c&HFF00&\u1}Vous...{\r} -Dialogue: 0,0:00:44.19,0:00:44.35,Default,,0,0,0,,{\1c&HFF00&\u1}Vous{\r} avez tout à faire raison, M. Xanaquis. -Dialogue: 0,0:00:44.35,0:00:44.39,Default,,0,0,0,,Vous avez tout à faire raison, M. Xanaquis. -Dialogue: 0,0:00:44.39,0:00:44.59,Default,,0,0,0,,Vous {\1c&HFF00&\u1}avez{\r} tout à faire raison, M. Xanaquis. -Dialogue: 0,0:00:44.59,0:00:44.63,Default,,0,0,0,,Vous avez tout à faire raison, M. Xanaquis. -Dialogue: 0,0:00:44.63,0:00:44.79,Default,,0,0,0,,Vous avez {\1c&HFF00&\u1}tout{\r} à faire raison, M. Xanaquis. -Dialogue: 0,0:00:44.79,0:00:44.81,Default,,0,0,0,,Vous avez tout à faire raison, M. Xanaquis. -Dialogue: 0,0:00:44.81,0:00:44.83,Default,,0,0,0,,Vous avez tout {\1c&HFF00&\u1}à{\r} faire raison, M. Xanaquis. -Dialogue: 0,0:00:44.83,0:00:44.87,Default,,0,0,0,,Vous avez tout à faire raison, M. Xanaquis. -Dialogue: 0,0:00:44.87,0:00:45.03,Default,,0,0,0,,Vous avez tout à {\1c&HFF00&\u1}faire{\r} raison, M. Xanaquis. -Dialogue: 0,0:00:45.03,0:00:45.05,Default,,0,0,0,,Vous avez tout à faire raison, M. Xanaquis. -Dialogue: 0,0:00:45.05,0:00:45.37,Default,,0,0,0,,Vous avez tout à faire {\1c&HFF00&\u1}raison,{\r} M. Xanaquis. -Dialogue: 0,0:00:45.37,0:00:45.39,Default,,0,0,0,,Vous avez tout à faire raison, M. Xanaquis. -Dialogue: 0,0:00:45.39,0:00:45.61,Default,,0,0,0,,Vous avez tout à faire raison, {\1c&HFF00&\u1}M.{\r} Xanaquis. -Dialogue: 0,0:00:45.61,0:00:45.66,Default,,0,0,0,,Vous avez tout à faire raison, M. Xanaquis. -Dialogue: 0,0:00:45.66,0:00:46.12,Default,,0,0,0,,Vous avez tout à faire raison, M. {\1c&HFF00&\u1}Xanaquis.{\r} -Dialogue: 0,0:00:46.14,0:00:46.50,Default,,0,0,0,,{\1c&HFF00&\u1}Ah{\r} oui? -Dialogue: 0,0:00:46.50,0:00:46.54,Default,,0,0,0,,Ah oui? -Dialogue: 0,0:00:46.54,0:00:46.60,Default,,0,0,0,,Ah {\1c&HFF00&\u1}oui?{\r} -Dialogue: 0,0:00:46.81,0:00:47.13,Default,,0,0,0,,{\1c&HFF00&\u1}Malek{\r} est à l'interne brillant, qui apprend le métier avec moi. +Dialogue: 0,0:00:1.31,0:00:1.81,Default,,0,0,0,,{\1c&HFF00&\u1}Ça{\r} va? +Dialogue: 0,0:00:1.81,0:00:1.83,Default,,0,0,0,,Ça va? +Dialogue: 0,0:00:1.83,0:00:1.89,Default,,0,0,0,,Ça {\1c&HFF00&\u1}va?{\r} +Dialogue: 0,0:00:1.91,0:00:1.97,Default,,0,0,0,,{\1c&HFF00&\u1}Oui.{\r} +Dialogue: 0,0:00:1.97,0:00:3.27,Default,,0,0,0,,{\1c&HFF00&\u1}Merci{\r} beaucoup. +Dialogue: 0,0:00:3.27,0:00:3.29,Default,,0,0,0,,Merci beaucoup. +Dialogue: 0,0:00:3.29,0:00:3.49,Default,,0,0,0,,Merci {\1c&HFF00&\u1}beaucoup.{\r} +Dialogue: 0,0:00:4.36,0:00:4.58,Default,,0,0,0,,{\1c&HFF00&\u1}Chèque{\r} ou espèce? +Dialogue: 0,0:00:4.58,0:00:4.64,Default,,0,0,0,,Chèque ou espèce? +Dialogue: 0,0:00:4.64,0:00:4.72,Default,,0,0,0,,Chèque {\1c&HFF00&\u1}ou{\r} espèce? +Dialogue: 0,0:00:4.72,0:00:4.78,Default,,0,0,0,,Chèque ou espèce? +Dialogue: 0,0:00:4.78,0:00:5.04,Default,,0,0,0,,Chèque ou {\1c&HFF00&\u1}espèce?{\r} +Dialogue: 0,0:00:6.54,0:00:6.70,Default,,0,0,0,,{\1c&HFF00&\u1}J'ai{\r} laissé un chèque sur la commode, il est signé. +Dialogue: 0,0:00:6.70,0:00:6.74,Default,,0,0,0,,J'ai laissé un chèque sur la commode, il est signé. +Dialogue: 0,0:00:6.74,0:00:6.99,Default,,0,0,0,,J'ai {\1c&HFF00&\u1}laissé{\r} un chèque sur la commode, il est signé. +Dialogue: 0,0:00:6.99,0:00:7.03,Default,,0,0,0,,J'ai laissé un chèque sur la commode, il est signé. +Dialogue: 0,0:00:7.03,0:00:7.09,Default,,0,0,0,,J'ai laissé {\1c&HFF00&\u1}un{\r} chèque sur la commode, il est signé. +Dialogue: 0,0:00:7.09,0:00:7.13,Default,,0,0,0,,J'ai laissé un chèque sur la commode, il est signé. +Dialogue: 0,0:00:7.13,0:00:7.33,Default,,0,0,0,,J'ai laissé un {\1c&HFF00&\u1}chèque{\r} sur la commode, il est signé. +Dialogue: 0,0:00:7.33,0:00:7.35,Default,,0,0,0,,J'ai laissé un chèque sur la commode, il est signé. +Dialogue: 0,0:00:7.35,0:00:7.49,Default,,0,0,0,,J'ai laissé un chèque {\1c&HFF00&\u1}sur{\r} la commode, il est signé. +Dialogue: 0,0:00:7.49,0:00:7.51,Default,,0,0,0,,J'ai laissé un chèque sur la commode, il est signé. +Dialogue: 0,0:00:7.51,0:00:7.59,Default,,0,0,0,,J'ai laissé un chèque sur {\1c&HFF00&\u1}la{\r} commode, il est signé. +Dialogue: 0,0:00:7.59,0:00:7.63,Default,,0,0,0,,J'ai laissé un chèque sur la commode, il est signé. +Dialogue: 0,0:00:7.63,0:00:7.91,Default,,0,0,0,,J'ai laissé un chèque sur la {\1c&HFF00&\u1}commode,{\r} il est signé. +Dialogue: 0,0:00:7.91,0:00:7.99,Default,,0,0,0,,J'ai laissé un chèque sur la commode, il est signé. +Dialogue: 0,0:00:7.99,0:00:8.03,Default,,0,0,0,,J'ai laissé un chèque sur la commode, {\1c&HFF00&\u1}il{\r} est signé. +Dialogue: 0,0:00:8.03,0:00:8.09,Default,,0,0,0,,J'ai laissé un chèque sur la commode, il est signé. +Dialogue: 0,0:00:8.09,0:00:8.19,Default,,0,0,0,,J'ai laissé un chèque sur la commode, il {\1c&HFF00&\u1}est{\r} signé. +Dialogue: 0,0:00:8.19,0:00:8.21,Default,,0,0,0,,J'ai laissé un chèque sur la commode, il est signé. +Dialogue: 0,0:00:8.21,0:00:8.39,Default,,0,0,0,,J'ai laissé un chèque sur la commode, il est {\1c&HFF00&\u1}signé.{\r} +Dialogue: 0,0:00:8.39,0:00:8.81,Default,,0,0,0,,{\1c&HFF00&\u1}Vous{\r} le remplirez. +Dialogue: 0,0:00:8.81,0:00:8.83,Default,,0,0,0,,Vous le remplirez. +Dialogue: 0,0:00:8.83,0:00:8.95,Default,,0,0,0,,Vous {\1c&HFF00&\u1}le{\r} remplirez. +Dialogue: 0,0:00:8.95,0:00:8.97,Default,,0,0,0,,Vous le remplirez. +Dialogue: 0,0:00:8.97,0:00:9.26,Default,,0,0,0,,Vous le {\1c&HFF00&\u1}remplirez.{\r} +Dialogue: 0,0:00:9.28,0:00:9.34,Default,,0,0,0,,{\1c&HFF00&\u1}OK.{\r} +Dialogue: 0,0:00:9.36,0:00:9.40,Default,,0,0,0,,{\1c&HFF00&\u1}Oh!{\r} +Dialogue: 0,0:00:12.41,0:00:12.51,Default,,0,0,0,,{\1c&HFF00&\u1}Ouh{\r} là! +Dialogue: 0,0:00:12.51,0:00:12.53,Default,,0,0,0,,Ouh là! +Dialogue: 0,0:00:12.53,0:00:12.59,Default,,0,0,0,,Ouh {\1c&HFF00&\u1}là!{\r} +Dialogue: 0,0:00:12.59,0:00:12.73,Default,,0,0,0,,{\1c&HFF00&\u1}Venez.{\r} +Dialogue: 0,0:00:14.45,0:00:14.63,Default,,0,0,0,,{\1c&HFF00&\u1}Merci.{\r} +Dialogue: 0,0:00:14.65,0:00:14.76,Default,,0,0,0,,{\1c&HFF00&\u1}Ah!{\r} +Dialogue: 0,0:00:15.64,0:00:16.51,Default,,0,0,0,,{\1c&HFF00&\u1}C'est{\r} qui? +Dialogue: 0,0:00:16.51,0:00:16.53,Default,,0,0,0,,C'est qui? +Dialogue: 0,0:00:16.53,0:00:16.63,Default,,0,0,0,,C'est {\1c&HFF00&\u1}qui?{\r} +Dialogue: 0,0:00:20.00,0:00:22.85,Default,,0,0,0,,{\1c&HFF00&\u1}C'est{\r} pas vrai, qu'est-ce qu'il fout ici, ce con? +Dialogue: 0,0:00:22.85,0:00:22.87,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout ici, ce con? +Dialogue: 0,0:00:22.87,0:00:22.93,Default,,0,0,0,,C'est {\1c&HFF00&\u1}pas{\r} vrai, qu'est-ce qu'il fout ici, ce con? +Dialogue: 0,0:00:22.93,0:00:22.95,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout ici, ce con? +Dialogue: 0,0:00:22.95,0:00:23.15,Default,,0,0,0,,C'est pas {\1c&HFF00&\u1}vrai,{\r} qu'est-ce qu'il fout ici, ce con? +Dialogue: 0,0:00:23.15,0:00:23.17,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout ici, ce con? +Dialogue: 0,0:00:23.17,0:00:23.35,Default,,0,0,0,,C'est pas vrai, {\1c&HFF00&\u1}qu'est-ce{\r} qu'il fout ici, ce con? +Dialogue: 0,0:00:23.35,0:00:23.37,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout ici, ce con? +Dialogue: 0,0:00:23.37,0:00:23.51,Default,,0,0,0,,C'est pas vrai, qu'est-ce {\1c&HFF00&\u1}qu'il{\r} fout ici, ce con? +Dialogue: 0,0:00:23.51,0:00:23.53,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout ici, ce con? +Dialogue: 0,0:00:23.53,0:00:23.67,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il {\1c&HFF00&\u1}fout{\r} ici, ce con? +Dialogue: 0,0:00:23.67,0:00:23.73,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout ici, ce con? +Dialogue: 0,0:00:23.73,0:00:23.95,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout {\1c&HFF00&\u1}ici,{\r} ce con? +Dialogue: 0,0:00:23.95,0:00:23.99,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout ici, ce con? +Dialogue: 0,0:00:23.99,0:00:24.11,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout ici, {\1c&HFF00&\u1}ce{\r} con? +Dialogue: 0,0:00:24.11,0:00:24.15,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout ici, ce con? +Dialogue: 0,0:00:24.15,0:00:24.23,Default,,0,0,0,,C'est pas vrai, qu'est-ce qu'il fout ici, ce {\1c&HFF00&\u1}con?{\r} +Dialogue: 0,0:00:24.51,0:00:24.96,Default,,0,0,0,,{\1c&HFF00&\u1}Excusez-moi,{\r} mais je crois que j'ai oublié mon sac chez vous. +Dialogue: 0,0:00:24.96,0:00:24.98,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. +Dialogue: 0,0:00:24.98,0:00:25.06,Default,,0,0,0,,Excusez-moi, {\1c&HFF00&\u1}mais{\r} je crois que j'ai oublié mon sac chez vous. +Dialogue: 0,0:00:25.06,0:00:25.08,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. +Dialogue: 0,0:00:25.08,0:00:25.12,Default,,0,0,0,,Excusez-moi, mais {\1c&HFF00&\u1}je{\r} crois que j'ai oublié mon sac chez vous. +Dialogue: 0,0:00:25.12,0:00:25.14,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. +Dialogue: 0,0:00:25.14,0:00:25.26,Default,,0,0,0,,Excusez-moi, mais je {\1c&HFF00&\u1}crois{\r} que j'ai oublié mon sac chez vous. +Dialogue: 0,0:00:25.26,0:00:25.28,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. +Dialogue: 0,0:00:25.28,0:00:25.34,Default,,0,0,0,,Excusez-moi, mais je crois {\1c&HFF00&\u1}que{\r} j'ai oublié mon sac chez vous. +Dialogue: 0,0:00:25.34,0:00:25.36,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. +Dialogue: 0,0:00:25.36,0:00:25.42,Default,,0,0,0,,Excusez-moi, mais je crois que {\1c&HFF00&\u1}j'ai{\r} oublié mon sac chez vous. +Dialogue: 0,0:00:25.42,0:00:25.44,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. +Dialogue: 0,0:00:25.44,0:00:25.60,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai {\1c&HFF00&\u1}oublié{\r} mon sac chez vous. +Dialogue: 0,0:00:25.60,0:00:25.62,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. +Dialogue: 0,0:00:25.62,0:00:25.76,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié {\1c&HFF00&\u1}mon{\r} sac chez vous. +Dialogue: 0,0:00:25.76,0:00:25.78,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. +Dialogue: 0,0:00:25.78,0:00:25.94,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon {\1c&HFF00&\u1}sac{\r} chez vous. +Dialogue: 0,0:00:25.94,0:00:25.96,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. +Dialogue: 0,0:00:25.96,0:00:26.04,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac {\1c&HFF00&\u1}chez{\r} vous. +Dialogue: 0,0:00:26.04,0:00:26.06,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. +Dialogue: 0,0:00:26.06,0:00:26.18,Default,,0,0,0,,Excusez-moi, mais je crois que j'ai oublié mon sac chez {\1c&HFF00&\u1}vous.{\r} +Dialogue: 0,0:00:26.18,0:00:26.30,Default,,0,0,0,,{\1c&HFF00&\u1}Ça{\r} va? +Dialogue: 0,0:00:26.30,0:00:26.32,Default,,0,0,0,,Ça va? +Dialogue: 0,0:00:26.32,0:00:26.36,Default,,0,0,0,,Ça {\1c&HFF00&\u1}va?{\r} +Dialogue: 0,0:00:31.04,0:00:31.24,Default,,0,0,0,,{\1c&HFF00&\u1}Attendez.{\r} +Dialogue: 0,0:00:36.81,0:00:36.97,Default,,0,0,0,,{\1c&HFF00&\u1}Tout{\r} à l'heure, là, c'était... +Dialogue: 0,0:00:36.97,0:00:37.01,Default,,0,0,0,,Tout à l'heure, là, c'était... +Dialogue: 0,0:00:37.01,0:00:37.05,Default,,0,0,0,,Tout {\1c&HFF00&\u1}à{\r} l'heure, là, c'était... +Dialogue: 0,0:00:37.05,0:00:37.09,Default,,0,0,0,,Tout à l'heure, là, c'était... +Dialogue: 0,0:00:37.09,0:00:37.35,Default,,0,0,0,,Tout à {\1c&HFF00&\u1}l'heure,{\r} là, c'était... +Dialogue: 0,0:00:37.35,0:00:37.39,Default,,0,0,0,,Tout à l'heure, là, c'était... +Dialogue: 0,0:00:37.39,0:00:37.98,Default,,0,0,0,,Tout à l'heure, {\1c&HFF00&\u1}là,{\r} c'était... +Dialogue: 0,0:00:37.98,0:00:38.02,Default,,0,0,0,,Tout à l'heure, là, c'était... +Dialogue: 0,0:00:38.02,0:00:38.28,Default,,0,0,0,,Tout à l'heure, là, {\1c&HFF00&\u1}c'était...{\r} +Dialogue: 0,0:00:38.28,0:00:38.36,Default,,0,0,0,,{\1c&HFF00&\u1}Vous?{\r} +Dialogue: 0,0:00:39.12,0:00:39.24,Default,,0,0,0,,{\1c&HFF00&\u1}Vous?{\r} Pas... +Dialogue: 0,0:00:39.24,0:00:39.30,Default,,0,0,0,,Vous? Pas... +Dialogue: 0,0:00:39.30,0:00:39.42,Default,,0,0,0,,Vous? {\1c&HFF00&\u1}Pas...{\r} +Dialogue: 0,0:00:39.42,0:00:39.53,Default,,0,0,0,,{\1c&HFF00&\u1}Pas{\r} lui? Vous? +Dialogue: 0,0:00:39.53,0:00:39.55,Default,,0,0,0,,Pas lui? Vous? +Dialogue: 0,0:00:39.55,0:00:39.61,Default,,0,0,0,,Pas {\1c&HFF00&\u1}lui?{\r} Vous? +Dialogue: 0,0:00:39.61,0:00:39.63,Default,,0,0,0,,Pas lui? Vous? +Dialogue: 0,0:00:39.63,0:00:39.71,Default,,0,0,0,,Pas lui? {\1c&HFF00&\u1}Vous?{\r} +Dialogue: 0,0:00:44.19,0:00:44.35,Default,,0,0,0,,{\1c&HFF00&\u1}Vous{\r} avez tout à fait raison, M. Xenakis. +Dialogue: 0,0:00:44.35,0:00:44.39,Default,,0,0,0,,Vous avez tout à fait raison, M. Xenakis. +Dialogue: 0,0:00:44.39,0:00:44.62,Default,,0,0,0,,Vous {\1c&HFF00&\u1}avez{\r} tout à fait raison, M. Xenakis. +Dialogue: 0,0:00:44.62,0:00:44.64,Default,,0,0,0,,Vous avez tout à fait raison, M. Xenakis. +Dialogue: 0,0:00:44.64,0:00:44.80,Default,,0,0,0,,Vous avez {\1c&HFF00&\u1}tout{\r} à fait raison, M. Xenakis. +Dialogue: 0,0:00:44.80,0:00:44.82,Default,,0,0,0,,Vous avez tout à fait raison, M. Xenakis. +Dialogue: 0,0:00:44.82,0:00:44.84,Default,,0,0,0,,Vous avez tout {\1c&HFF00&\u1}à{\r} fait raison, M. Xenakis. +Dialogue: 0,0:00:44.84,0:00:44.90,Default,,0,0,0,,Vous avez tout à fait raison, M. Xenakis. +Dialogue: 0,0:00:44.90,0:00:45.04,Default,,0,0,0,,Vous avez tout à {\1c&HFF00&\u1}fait{\r} raison, M. Xenakis. +Dialogue: 0,0:00:45.04,0:00:45.08,Default,,0,0,0,,Vous avez tout à fait raison, M. Xenakis. +Dialogue: 0,0:00:45.08,0:00:45.38,Default,,0,0,0,,Vous avez tout à fait {\1c&HFF00&\u1}raison,{\r} M. Xenakis. +Dialogue: 0,0:00:45.38,0:00:45.42,Default,,0,0,0,,Vous avez tout à fait raison, M. Xenakis. +Dialogue: 0,0:00:45.42,0:00:45.62,Default,,0,0,0,,Vous avez tout à fait raison, {\1c&HFF00&\u1}M.{\r} Xenakis. +Dialogue: 0,0:00:45.62,0:00:45.68,Default,,0,0,0,,Vous avez tout à fait raison, M. Xenakis. +Dialogue: 0,0:00:45.68,0:00:45.98,Default,,0,0,0,,Vous avez tout à fait raison, M. {\1c&HFF00&\u1}Xenakis.{\r} +Dialogue: 0,0:00:46.75,0:00:47.13,Default,,0,0,0,,{\1c&HFF00&\u1}Malek{\r} est à l'interne brillant, qui apprend le métier avec moi. Dialogue: 0,0:00:47.13,0:00:47.15,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend le métier avec moi. Dialogue: 0,0:00:47.15,0:00:47.27,Default,,0,0,0,,Malek {\1c&HFF00&\u1}est{\r} à l'interne brillant, qui apprend le métier avec moi. Dialogue: 0,0:00:47.27,0:00:47.31,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend le métier avec moi. @@ -155,52 +147,53 @@ Dialogue: 0,0:00:47.37,0:00:47.39,Default,,0,0,0,,Malek est à l'interne brillan Dialogue: 0,0:00:47.39,0:00:47.75,Default,,0,0,0,,Malek est à {\1c&HFF00&\u1}l'interne{\r} brillant, qui apprend le métier avec moi. Dialogue: 0,0:00:47.75,0:00:47.79,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend le métier avec moi. Dialogue: 0,0:00:47.79,0:00:48.07,Default,,0,0,0,,Malek est à l'interne {\1c&HFF00&\u1}brillant,{\r} qui apprend le métier avec moi. -Dialogue: 0,0:00:48.07,0:00:48.09,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend le métier avec moi. -Dialogue: 0,0:00:48.09,0:00:48.19,Default,,0,0,0,,Malek est à l'interne brillant, {\1c&HFF00&\u1}qui{\r} apprend le métier avec moi. +Dialogue: 0,0:00:48.07,0:00:48.11,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend le métier avec moi. +Dialogue: 0,0:00:48.11,0:00:48.19,Default,,0,0,0,,Malek est à l'interne brillant, {\1c&HFF00&\u1}qui{\r} apprend le métier avec moi. Dialogue: 0,0:00:48.19,0:00:48.23,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend le métier avec moi. -Dialogue: 0,0:00:48.23,0:00:48.41,Default,,0,0,0,,Malek est à l'interne brillant, qui {\1c&HFF00&\u1}apprend{\r} le métier avec moi. -Dialogue: 0,0:00:48.41,0:00:48.45,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend le métier avec moi. -Dialogue: 0,0:00:48.45,0:00:48.49,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend {\1c&HFF00&\u1}le{\r} métier avec moi. -Dialogue: 0,0:00:48.49,0:00:48.53,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend le métier avec moi. -Dialogue: 0,0:00:48.53,0:00:48.75,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend le {\1c&HFF00&\u1}métier{\r} avec moi. -Dialogue: 0,0:00:48.75,0:00:48.77,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend le métier avec moi. -Dialogue: 0,0:00:48.77,0:00:48.97,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend le métier {\1c&HFF00&\u1}avec{\r} moi. -Dialogue: 0,0:00:48.97,0:00:49.01,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend le métier avec moi. -Dialogue: 0,0:00:49.01,0:00:49.09,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend le métier avec {\1c&HFF00&\u1}moi.{\r} -Dialogue: 0,0:00:49.13,0:00:49.19,Default,,0,0,0,,{\1c&HFF00&\u1}Ah!{\r} -Dialogue: 0,0:00:50.64,0:00:50.76,Default,,0,0,0,,{\1c&HFF00&\u1}Bien.{\r} -Dialogue: 0,0:00:52.93,0:00:53.33,Default,,0,0,0,,{\1c&HFF00&\u1}Justement,{\r} y a la famille Boboune qui m'attend pour une consultation. -Dialogue: 0,0:00:53.33,0:00:53.35,Default,,0,0,0,,Justement, y a la famille Boboune qui m'attend pour une consultation. -Dialogue: 0,0:00:53.35,0:00:53.37,Default,,0,0,0,,Justement, {\1c&HFF00&\u1}y{\r} a la famille Boboune qui m'attend pour une consultation. -Dialogue: 0,0:00:53.37,0:00:53.39,Default,,0,0,0,,Justement, y a la famille Boboune qui m'attend pour une consultation. -Dialogue: 0,0:00:53.39,0:00:53.41,Default,,0,0,0,,Justement, y {\1c&HFF00&\u1}a{\r} la famille Boboune qui m'attend pour une consultation. -Dialogue: 0,0:00:53.41,0:00:53.43,Default,,0,0,0,,Justement, y a la famille Boboune qui m'attend pour une consultation. -Dialogue: 0,0:00:53.43,0:00:53.49,Default,,0,0,0,,Justement, y a {\1c&HFF00&\u1}la{\r} famille Boboune qui m'attend pour une consultation. -Dialogue: 0,0:00:53.49,0:00:53.53,Default,,0,0,0,,Justement, y a la famille Boboune qui m'attend pour une consultation. -Dialogue: 0,0:00:53.53,0:00:53.85,Default,,0,0,0,,Justement, y a la {\1c&HFF00&\u1}famille{\r} Boboune qui m'attend pour une consultation. -Dialogue: 0,0:00:53.85,0:00:53.89,Default,,0,0,0,,Justement, y a la famille Boboune qui m'attend pour une consultation. -Dialogue: 0,0:00:53.89,0:00:54.15,Default,,0,0,0,,Justement, y a la famille {\1c&HFF00&\u1}Boboune{\r} qui m'attend pour une consultation. -Dialogue: 0,0:00:54.15,0:00:54.17,Default,,0,0,0,,Justement, y a la famille Boboune qui m'attend pour une consultation. -Dialogue: 0,0:00:54.17,0:00:54.27,Default,,0,0,0,,Justement, y a la famille Boboune {\1c&HFF00&\u1}qui{\r} m'attend pour une consultation. -Dialogue: 0,0:00:54.27,0:00:54.29,Default,,0,0,0,,Justement, y a la famille Boboune qui m'attend pour une consultation. -Dialogue: 0,0:00:54.29,0:00:54.51,Default,,0,0,0,,Justement, y a la famille Boboune qui {\1c&HFF00&\u1}m'attend{\r} pour une consultation. -Dialogue: 0,0:00:54.51,0:00:54.53,Default,,0,0,0,,Justement, y a la famille Boboune qui m'attend pour une consultation. -Dialogue: 0,0:00:54.53,0:00:54.65,Default,,0,0,0,,Justement, y a la famille Boboune qui m'attend {\1c&HFF00&\u1}pour{\r} une consultation. -Dialogue: 0,0:00:54.65,0:00:54.67,Default,,0,0,0,,Justement, y a la famille Boboune qui m'attend pour une consultation. -Dialogue: 0,0:00:54.67,0:00:54.89,Default,,0,0,0,,Justement, y a la famille Boboune qui m'attend pour {\1c&HFF00&\u1}une{\r} consultation. -Dialogue: 0,0:00:54.89,0:00:54.93,Default,,0,0,0,,Justement, y a la famille Boboune qui m'attend pour une consultation. -Dialogue: 0,0:00:54.93,0:00:55.33,Default,,0,0,0,,Justement, y a la famille Boboune qui m'attend pour une {\1c&HFF00&\u1}consultation.{\r} +Dialogue: 0,0:00:48.23,0:00:48.44,Default,,0,0,0,,Malek est à l'interne brillant, qui {\1c&HFF00&\u1}apprend{\r} le métier avec moi. +Dialogue: 0,0:00:48.44,0:00:48.46,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend le métier avec moi. +Dialogue: 0,0:00:48.46,0:00:48.52,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend {\1c&HFF00&\u1}le{\r} métier avec moi. +Dialogue: 0,0:00:48.52,0:00:48.54,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend le métier avec moi. +Dialogue: 0,0:00:48.54,0:00:48.74,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend le {\1c&HFF00&\u1}métier{\r} avec moi. +Dialogue: 0,0:00:48.74,0:00:48.76,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend le métier avec moi. +Dialogue: 0,0:00:48.76,0:00:48.88,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend le métier {\1c&HFF00&\u1}avec{\r} moi. +Dialogue: 0,0:00:48.88,0:00:48.90,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend le métier avec moi. +Dialogue: 0,0:00:48.90,0:00:49.00,Default,,0,0,0,,Malek est à l'interne brillant, qui apprend le métier avec {\1c&HFF00&\u1}moi.{\r} +Dialogue: 0,0:00:49.02,0:00:49.06,Default,,0,0,0,,{\1c&HFF00&\u1}Ah!{\r} +Dialogue: 0,0:00:49.06,0:00:49.20,Default,,0,0,0,,{\1c&HFF00&\u1}C'est{\r} vrai. +Dialogue: 0,0:00:49.20,0:00:49.22,Default,,0,0,0,,C'est vrai. +Dialogue: 0,0:00:49.22,0:00:49.30,Default,,0,0,0,,C'est {\1c&HFF00&\u1}vrai.{\r} +Dialogue: 0,0:00:49.30,0:00:49.44,Default,,0,0,0,,{\1c&HFF00&\u1}Bien.{\r} +Dialogue: 0,0:00:52.93,0:00:53.21,Default,,0,0,0,,{\1c&HFF00&\u1}Justement,{\r} y a la famille Boboun qui m'attend pour une consultation. +Dialogue: 0,0:00:53.21,0:00:53.33,Default,,0,0,0,,Justement, y a la famille Boboun qui m'attend pour une consultation. +Dialogue: 0,0:00:53.33,0:00:53.35,Default,,0,0,0,,Justement, {\1c&HFF00&\u1}y{\r} a la famille Boboun qui m'attend pour une consultation. +Dialogue: 0,0:00:53.35,0:00:53.37,Default,,0,0,0,,Justement, y a la famille Boboun qui m'attend pour une consultation. +Dialogue: 0,0:00:53.37,0:00:53.39,Default,,0,0,0,,Justement, y {\1c&HFF00&\u1}a{\r} la famille Boboun qui m'attend pour une consultation. +Dialogue: 0,0:00:53.39,0:00:53.43,Default,,0,0,0,,Justement, y a la famille Boboun qui m'attend pour une consultation. +Dialogue: 0,0:00:53.43,0:00:53.49,Default,,0,0,0,,Justement, y a {\1c&HFF00&\u1}la{\r} famille Boboun qui m'attend pour une consultation. +Dialogue: 0,0:00:53.49,0:00:53.51,Default,,0,0,0,,Justement, y a la famille Boboun qui m'attend pour une consultation. +Dialogue: 0,0:00:53.51,0:00:53.85,Default,,0,0,0,,Justement, y a la {\1c&HFF00&\u1}famille{\r} Boboun qui m'attend pour une consultation. +Dialogue: 0,0:00:53.85,0:00:53.89,Default,,0,0,0,,Justement, y a la famille Boboun qui m'attend pour une consultation. +Dialogue: 0,0:00:53.89,0:00:54.16,Default,,0,0,0,,Justement, y a la famille {\1c&HFF00&\u1}Boboun{\r} qui m'attend pour une consultation. +Dialogue: 0,0:00:54.16,0:00:54.18,Default,,0,0,0,,Justement, y a la famille Boboun qui m'attend pour une consultation. +Dialogue: 0,0:00:54.18,0:00:54.26,Default,,0,0,0,,Justement, y a la famille Boboun {\1c&HFF00&\u1}qui{\r} m'attend pour une consultation. +Dialogue: 0,0:00:54.26,0:00:54.30,Default,,0,0,0,,Justement, y a la famille Boboun qui m'attend pour une consultation. +Dialogue: 0,0:00:54.30,0:00:54.52,Default,,0,0,0,,Justement, y a la famille Boboun qui {\1c&HFF00&\u1}m'attend{\r} pour une consultation. +Dialogue: 0,0:00:54.52,0:00:54.54,Default,,0,0,0,,Justement, y a la famille Boboun qui m'attend pour une consultation. +Dialogue: 0,0:00:54.54,0:00:54.64,Default,,0,0,0,,Justement, y a la famille Boboun qui m'attend {\1c&HFF00&\u1}pour{\r} une consultation. +Dialogue: 0,0:00:54.64,0:00:54.68,Default,,0,0,0,,Justement, y a la famille Boboun qui m'attend pour une consultation. +Dialogue: 0,0:00:54.68,0:00:54.90,Default,,0,0,0,,Justement, y a la famille Boboun qui m'attend pour {\1c&HFF00&\u1}une{\r} consultation. +Dialogue: 0,0:00:54.90,0:00:54.94,Default,,0,0,0,,Justement, y a la famille Boboun qui m'attend pour une consultation. +Dialogue: 0,0:00:54.94,0:00:55.34,Default,,0,0,0,,Justement, y a la famille Boboun qui m'attend pour une {\1c&HFF00&\u1}consultation.{\r} Dialogue: 0,0:00:55.58,0:00:55.64,Default,,0,0,0,,{\1c&HFF00&\u1}Qui?{\r} -Dialogue: 0,0:00:56.02,0:00:56.48,Default,,0,0,0,,{\1c&HFF00&\u1}Ne{\r} faisons pas attendre les baubounes, allez! -Dialogue: 0,0:00:56.48,0:00:56.52,Default,,0,0,0,,Ne faisons pas attendre les baubounes, allez! -Dialogue: 0,0:00:56.52,0:00:56.78,Default,,0,0,0,,Ne {\1c&HFF00&\u1}faisons{\r} pas attendre les baubounes, allez! -Dialogue: 0,0:00:56.78,0:00:56.82,Default,,0,0,0,,Ne faisons pas attendre les baubounes, allez! -Dialogue: 0,0:00:56.82,0:00:56.90,Default,,0,0,0,,Ne faisons {\1c&HFF00&\u1}pas{\r} attendre les baubounes, allez! -Dialogue: 0,0:00:56.90,0:00:56.92,Default,,0,0,0,,Ne faisons pas attendre les baubounes, allez! -Dialogue: 0,0:00:56.92,0:00:57.17,Default,,0,0,0,,Ne faisons pas {\1c&HFF00&\u1}attendre{\r} les baubounes, allez! -Dialogue: 0,0:00:57.17,0:00:57.19,Default,,0,0,0,,Ne faisons pas attendre les baubounes, allez! -Dialogue: 0,0:00:57.19,0:00:57.25,Default,,0,0,0,,Ne faisons pas attendre {\1c&HFF00&\u1}les{\r} baubounes, allez! -Dialogue: 0,0:00:57.25,0:00:57.27,Default,,0,0,0,,Ne faisons pas attendre les baubounes, allez! -Dialogue: 0,0:00:57.27,0:00:57.59,Default,,0,0,0,,Ne faisons pas attendre les {\1c&HFF00&\u1}baubounes,{\r} allez! -Dialogue: 0,0:00:57.59,0:00:57.61,Default,,0,0,0,,Ne faisons pas attendre les baubounes, allez! -Dialogue: 0,0:00:57.61,0:00:57.77,Default,,0,0,0,,Ne faisons pas attendre les baubounes, {\1c&HFF00&\u1}allez!{\r} \ No newline at end of file +Dialogue: 0,0:00:56.53,0:00:56.79,Default,,0,0,0,,{\1c&HFF00&\u1}Faisons{\r} pas attendre les bobounes, allez. +Dialogue: 0,0:00:56.79,0:00:56.81,Default,,0,0,0,,Faisons pas attendre les bobounes, allez. +Dialogue: 0,0:00:56.81,0:00:56.91,Default,,0,0,0,,Faisons {\1c&HFF00&\u1}pas{\r} attendre les bobounes, allez. +Dialogue: 0,0:00:56.91,0:00:56.93,Default,,0,0,0,,Faisons pas attendre les bobounes, allez. +Dialogue: 0,0:00:56.93,0:00:57.15,Default,,0,0,0,,Faisons pas {\1c&HFF00&\u1}attendre{\r} les bobounes, allez. +Dialogue: 0,0:00:57.15,0:00:57.19,Default,,0,0,0,,Faisons pas attendre les bobounes, allez. +Dialogue: 0,0:00:57.19,0:00:57.25,Default,,0,0,0,,Faisons pas attendre {\1c&HFF00&\u1}les{\r} bobounes, allez. +Dialogue: 0,0:00:57.25,0:00:57.27,Default,,0,0,0,,Faisons pas attendre les bobounes, allez. +Dialogue: 0,0:00:57.27,0:00:57.59,Default,,0,0,0,,Faisons pas attendre les {\1c&HFF00&\u1}bobounes,{\r} allez. +Dialogue: 0,0:00:57.59,0:00:57.61,Default,,0,0,0,,Faisons pas attendre les bobounes, allez. +Dialogue: 0,0:00:57.61,0:00:57.75,Default,,0,0,0,,Faisons pas attendre les bobounes, {\1c&HFF00&\u1}allez.{\r} \ No newline at end of file diff --git a/examples/whisperx/sample_fr_01.wav.srt b/examples/whisperx/sample_fr_01.wav.srt index 5ddfec6..6a345c1 100644 --- a/examples/whisperx/sample_fr_01.wav.srt +++ b/examples/whisperx/sample_fr_01.wav.srt @@ -1,108 +1,120 @@ 1 -00:00:00,767 --> 00:00:01,312 +00:00:00,765 --> 00:00:01,309 Lâchez, c'est bon. 2 -00:00:01,312 --> 00:00:01,934 +00:00:01,309 --> 00:00:01,891 Ça va? 3 -00:00:01,974 --> 00:00:02,035 +00:00:01,911 --> 00:00:01,971 Oui. 4 -00:00:02,965 --> 00:00:03,508 +00:00:01,971 --> 00:00:03,495 Merci beaucoup. 5 -00:00:04,352 --> 00:00:05,035 +00:00:04,356 --> 00:00:05,037 Chèque ou espèce? 6 -00:00:06,537 --> 00:00:08,379 -J'ai un chèque sur la commode, il est signé. +00:00:06,544 --> 00:00:08,393 +J'ai laissé un chèque sur la commode, il est signé. 7 -00:00:08,379 --> 00:00:09,186 -Je vais le repirer. +00:00:08,393 --> 00:00:09,255 +Vous le remplirez. 8 -00:00:09,206 --> 00:00:09,247 -Ok. +00:00:09,275 --> 00:00:09,335 +OK. 9 -00:00:09,660 --> 00:00:09,781 -Ouh là! +00:00:09,355 --> 00:00:09,395 +Oh! 10 -00:00:10,640 --> 00:00:10,761 -Venez. +00:00:12,410 --> 00:00:12,590 +Ouh là! 11 -00:00:11,962 --> 00:00:12,445 -Merci. +00:00:12,590 --> 00:00:12,731 +Venez. 12 -00:00:12,660 --> 00:00:14,190 -Ah! C'est qui? +00:00:14,454 --> 00:00:14,635 +Merci. 13 -00:00:14,190 --> 00:00:22,500 -C'est pas vrai, qu'est-ce qu'il fout ici, ce con? - -14 -00:00:22,901 --> 00:00:26,194 -Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. - -15 -00:00:26,194 --> 00:00:26,455 -Ça va? - -16 -00:00:27,546 --> 00:00:27,727 -Ça va? - -17 -00:00:33,680 --> 00:00:33,841 -Attendez. - -18 -00:00:36,805 --> 00:00:39,214 -Tout à l'heure, là, c'était vous. - -19 -00:00:40,945 --> 00:00:41,507 -Vous, pas... pas lui. Vous... - -20 -00:00:44,188 --> 00:00:46,117 -Vous avez tout à faire raison, M. Xanaquis. - -21 -00:00:46,138 --> 00:00:46,605 -Ah oui? - -22 -00:00:46,805 --> 00:00:49,094 -Malek est à l'interne brillant, qui apprend le métier avec moi. - -23 -00:00:49,134 --> 00:00:49,194 +00:00:14,655 --> 00:00:14,755 Ah! +14 +00:00:15,640 --> 00:00:16,626 +C'est qui? + +15 +00:00:20,000 --> 00:00:24,234 +C'est pas vrai, qu'est-ce qu'il fout ici, ce con? + +16 +00:00:24,515 --> 00:00:26,177 +Excusez-moi, mais je crois que j'ai oublié mon sac chez vous. + +17 +00:00:26,177 --> 00:00:26,359 +Ça va? + +18 +00:00:31,040 --> 00:00:31,241 +Attendez. + +19 +00:00:36,813 --> 00:00:38,278 +Tout à l'heure, là, c'était... + +20 +00:00:38,278 --> 00:00:38,359 +Vous? + +21 +00:00:39,123 --> 00:00:39,425 +Vous? Pas... + +22 +00:00:39,425 --> 00:00:39,706 +Pas lui? Vous? + +23 +00:00:44,194 --> 00:00:45,980 +Vous avez tout à fait raison, M. Xenakis. + 24 -00:00:50,640 --> 00:00:50,761 -Bien. +00:00:46,745 --> 00:00:49,000 +Malek est à l'interne brillant, qui apprend le métier avec moi. 25 -00:00:52,925 --> 00:00:55,335 -Justement, y a la famille Boboune qui m'attend pour une consultation. +00:00:49,020 --> 00:00:49,061 +Ah! 26 -00:00:55,575 --> 00:00:55,635 -Qui? +00:00:49,061 --> 00:00:49,303 +C'est vrai. 27 -00:00:56,021 --> 00:00:57,767 -Ne faisons pas attendre les baubounes, allez! +00:00:49,303 --> 00:00:49,443 +Bien. + +28 +00:00:52,932 --> 00:00:55,338 +Justement, y a la famille Boboun qui m'attend pour une consultation. + +29 +00:00:55,581 --> 00:00:55,642 +Qui? + +30 +00:00:56,527 --> 00:00:57,753 +Faisons pas attendre les bobounes, allez. diff --git a/whisperx/transcribe.py b/whisperx/transcribe.py index ba92d3d..f9382dd 100644 --- a/whisperx/transcribe.py +++ b/whisperx/transcribe.py @@ -33,6 +33,7 @@ DEFAULT_ALIGN_MODELS_HF = { "zh": "jonatasgrosman/wav2vec2-large-xlsr-53-chinese-zh-cn", "nl": "jonatasgrosman/wav2vec2-large-xlsr-53-dutch", "uk": "Yehor/wav2vec2-xls-r-300m-uk-with-small-lm", + "pt": "jonatasgrosman/wav2vec2-large-xlsr-53-portuguese", } @@ -920,6 +921,5 @@ def cli(): with open(os.path.join(output_dir, audio_basename + ".char.ass"), "w", encoding="utf-8") as ass: write_ass(result_aligned["segments"], file=ass, resolution="char") - if __name__ == "__main__": cli() diff --git a/whisperx/utils.py b/whisperx/utils.py index 590eaab..79aba53 100644 --- a/whisperx/utils.py +++ b/whisperx/utils.py @@ -4,7 +4,7 @@ from typing import Callable, TextIO, Iterator, Tuple import pandas as pd def exact_div(x, y): - assert x % y == 0 + ***ert x % y == 0 return x // y @@ -30,7 +30,7 @@ def compression_ratio(text) -> float: def format_timestamp(seconds: float, always_include_hours: bool = False, decimal_marker: str = '.'): - assert seconds >= 0, "non-negative timestamp expected" + ***ert seconds >= 0, "non-negative timestamp expected" milliseconds = round(seconds * 1000.0) hours = milliseconds // 3_600_000 @@ -105,11 +105,11 @@ def write_ass(transcript: Iterator[dict], strip=True, **kwargs): """ Credit: https://github.com/jianfch/stable-ts/blob/ff79549bd01f764427879f07ecd626c46a9a430a/stable_whisper/text_output.py - Generate Advanced SubStation Alpha (ASS) file from results to + Generate Advanced SubStation Alpha (***) file from results to display both phrase-level & word-level timestamp simultaneously by: -using segment-level timestamps display phrases as usual -using word-level timestamps change formats (e.g. color/underline) of the word in the displayed segment - Note: ass file is used in the same way as srt, vtt, etc. + Note: *** file is used in the same way as srt, vtt, etc. Parameters ---------- transcript: dict @@ -125,14 +125,14 @@ def write_ass(transcript: Iterator[dict], whether to underline a word at its corresponding timestamp prefmt: str used to specify format for word-level timestamps (must be use with 'suffmt' and overrides 'color'&'underline') - appears as such in the .ass file: + appears as such in the .*** file: Hi, {}how{} are you? - reference [Appendix A: Style override codes] in http://www.tcax.org/docs/ass-specs.htm + reference [Appendix A: Style override codes] in http://www.tcax.org/docs/***-specs.htm suffmt: str used to specify format for word-level timestamps (must be use with 'prefmt' and overrides 'color'&'underline') - appears as such in the .ass file: + appears as such in the .*** file: Hi, {}how{} are you? - reference [Appendix A: Style override codes] in http://www.tcax.org/docs/ass-specs.htm + reference [Appendix A: Style override codes] in http://www.tcax.org/docs/***-specs.htm font: str word font (default: Arial) font_size: int @@ -165,13 +165,13 @@ def write_ass(transcript: Iterator[dict], styles = f'Style: {",".join(map(str, fmt_style_dict.values()))}' - ass_str = f'[Script Info]\nScriptType: v4.00+\nPlayResX: 384\nPlayResY: 288\nScaledBorderAndShadow: yes\n\n' \ + ***_str = f'[Script Info]\nScriptType: v4.00+\nPlayResX: 384\nPlayResY: 288\nScaledBorderAndShadow: yes\n\n' \ f'[V4+ Styles]\n{fmts}\n{styles}\n\n' \ f'[Events]\nFormat: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text\n\n' if prefmt or suffmt: if suffmt: - assert prefmt, 'prefmt must be used along with suffmt' + ***ert prefmt, 'prefmt must be used along with suffmt' else: suffmt = r'\r' else: @@ -201,9 +201,9 @@ def write_ass(transcript: Iterator[dict], elif resolution == "char": resolution_key = "char-segments" else: - raise ValueError(".ass resolution should be 'word' or 'char', not ", resolution) + raise ValueError(".*** resolution should be 'word' or 'char', not ", resolution) - ass_arr = [] + ***_arr = [] for segment in transcript: if resolution_key in segment: @@ -231,7 +231,7 @@ def write_ass(transcript: Iterator[dict], "idx_1": -1 } - ass_arr.append(filler_ts) + ***_arr.append(filler_ts) # highlight current word f_word_ts = { "chars": speaker_str + segment['text'], @@ -240,12 +240,12 @@ def write_ass(transcript: Iterator[dict], "idx_0": idx_0 + len(speaker_str), "idx_1": idx_1 + len(speaker_str) } - ass_arr.append(f_word_ts) + ***_arr.append(f_word_ts) prev = crow['end'] - ass_str += '\n'.join(map(lambda x: dialogue(**x), ass_arr)) + ***_str += '\n'.join(map(lambda x: dialogue(**x), ***_arr)) - file.write(ass_str) + file.write(***_str) def interpolate_nans(x, method='nearest'): if x.notnull().sum() > 1: