diff --git a/enhanced_direct_s2st_units/audios/en-es/metadata.txt b/enhanced_direct_s2st_units/audios/en-es/metadata.txt new file mode 100644 index 0000000..d73be2d --- /dev/null +++ b/enhanced_direct_s2st_units/audios/en-es/metadata.txt @@ -0,0 +1,17 @@ +TARGET +EPST +1149 /large_experiments/ust/annl/datasets/st/europarl-st/en/es/test/flac_16k/en.20110324.5.4-041-000_8.flac this should also be an important part of our approach to the twenty twelve budget +476 /large_experiments/ust/annl/datasets/st/europarl-st/en/es/test/flac_16k/en.20090914.23.1-076_1.flac his family who are my constituents are convinced of his innocence +651 /large_experiments/ust/annl/datasets/st/europarl-st/en/es/test/flac_16k/en.20100210.25.3-177_3.flac of the directive on all taxes including social security contributions the automatic exchange of information and improved cooperation between the member states in matters of taxation +890 /large_experiments/ust/annl/datasets/st/europarl-st/en/es/test/flac_16k/en.20100907.33.2-567_1.flac information encourages citizens interest in public matters and their participation +37 /large_experiments/ust/annl/datasets/st/europarl-st/en/es/test/flac_16k/en.20080924.32.3-289_4.flac we want to see energy poverty as a part of this debate +923 /large_experiments/ust/annl/datasets/st/europarl-st/en/es/test/flac_16k/en.20101018.14.1-115_4.flac in my view one of the most important elements is the follow up of legislative initiative requests from parliament +970 /large_experiments/ust/annl/datasets/st/europarl-st/en/es/test/flac_16k/en.20101123.37.2-432_15.flac we must find an open and constructive procedure on the next financial framework +45 /large_experiments/ust/annl/datasets/st/europarl-st/en/es/test/flac_16k/en.20080924.33.3-319_2.flac i agree that we should act and react but we should not overdo it because we need a balanced approach +651 /large_experiments/ust/annl/datasets/st/europarl-st/en/es/test/flac_16k/en.20100210.25.3-177_3.flac of the directive on all taxes including social security contributions the automatic exchange of information and improved cooperation between the member states in matters of taxation + + +MUSTC +632 /large_experiments/ust/annl/datasets/st/must-c/must-c/en-es/tst-COMMON/flac_16k/ted_1144_39.flac and apparently it was quite popular +519 /large_experiments/ust/annl/datasets/st/must-c/must-c/en-es/tst-COMMON/flac_16k/ted_1137_56.flac we can actually do the same thing with much less energy +1015 /large_experiments/ust/annl/datasets/st/must-c/must-c/en-es/tst-COMMON/flac_16k/ted_1171_1.flac through my work im trying to articulate that humans are not separate from nature and that everything is interconnected \ No newline at end of file diff --git a/enhanced_direct_s2st_units/audios/en-es/reference.txt b/enhanced_direct_s2st_units/audios/en-es/reference.txt new file mode 100644 index 0000000..e2a0f73 --- /dev/null +++ b/enhanced_direct_s2st_units/audios/en-es/reference.txt @@ -0,0 +1,12 @@ +1149_epst esto también debería ser una parte importante de nuestro enfoque del presupuesto dos mil doce +476_epst su familia que son mis electores está convencida de su inocencia +651_epst de la directiva a todos los impuestos incluidas las contribuciones a la seguridad social el intercambio automático de información y la mejora de la cooperación fiscal entre los estados miembros +890_epst la información fomenta el interés de los ciudadanos por los asuntos públicos y su participación +632_mustc y al parecer era muy popular +519_mustc podemos hacer lo mismo con mucha menos energía +37_epst queremos ver la pobreza energética como parte de este debate +923_epst en mi opinión uno de los elementos más importantes es el seguimiento de las solicitudes de iniciativa legislativa del parlamento +970_epst debemos encontrar un procedimiento abierto y constructivo en el próximo marco financiero +45_epst estoy de acuerdo en que deberíamos actuar y reaccionar pero no deberíamos excedernos porque necesitamos un enfoque equilibrado +651_epst de la directiva a todos los impuestos incluidas las contribuciones a la seguridad social el intercambio automático de información y la mejora de la cooperación fiscal entre los estados miembros +1015_mustc a través de mi trabajo estoy tratando de expresar que los humanos no están separados de la naturaleza y que todo está interconectado diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/asr.txt b/enhanced_direct_s2st_units/audios/en-es/set1/asr.txt new file mode 100644 index 0000000..764b5a7 --- /dev/null +++ b/enhanced_direct_s2st_units/audios/en-es/set1/asr.txt @@ -0,0 +1,47 @@ +LND +1149_epst esto también debería ser una parte importante de nuestro enfoque al presupuesto dos mil doce +476_epst su familia que son mis electores está convencida de su inocencia +651_epst de la directiva a todos los impuestos incluidas las contribuciones a la seguridad social el intercambio automático de información y la mejor cooperación entre los estados miembros en las cuestiones de impuestos +890_epst la información fomenta el interés de los ciudadanos en asuntos públicos y su participación +37_epst queremos ver la pobreza energética como parte de este deate +923_epst en mi opinión uno de los elementos más importantes es el seguimiento de las peticiones de la iniciativa legislativa por parte del pagamento +970_epst debemos encontrar un procedimiento abierto y constructivo sobre el próximo marco financiero +45_epst estoy de acuerdo en que debemos actuar y reaccionar pero no debemos hacerlo porque necesitamos un enfoque equilibrado +632_mustc y al parecer era muy popular +519_mustc podemos hacer lo mismo con mucha menos energía +1015_mustc a través de mi trabajo trato de articular que los humanos no somos separados de la naturaleza y que todo está interconectado + + + +MT +1149_epst también debería ser una parte importante de nuestro enfoque al presupuesto dos mil doce +476_epst su familia que son mí circunscripciones están convencidas de estos inocentes +651_epst de la directiva a todos los impuestos impluyendo las contribuciones de seguridad social el intercambio automático de la información y mejorar la cooperación entre los estados miembros y las cuestiones de impuestos +890_epst la información y el interés de los ciudadanos alientan los intereses de las cuestiones públicas y su participación +632_mustc y un líder era bastante popular +519_mustc podemos hacer lo mismo que mucha menos energía + + + + + + +S2T_TTS +1149_epst esto también debería ser una parte importante de nuestro enfoque al presupuesto de dos mildos mil dos mil doce +476_epst su familia que son mis electores están convencidos de su inocencia +651_epst de la directiva para todos los impuestos incluidos las contribuciones de seguridad social el intercambio automático de información y la mejor cooperación entre los estados miembros en la cuestión de la fiscalidad +890_epst la información alienta el interés de los ciudadanos en asuntos públicos y en su participación +632_mustc y aparentemente era bastante popular +519_mustc en realidad podemos hacerlo mismo con menos energía + + + + +LND + + + + + + + diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/reference.txt b/enhanced_direct_s2st_units/audios/en-es/set1/reference.txt new file mode 100644 index 0000000..e42c024 --- /dev/null +++ b/enhanced_direct_s2st_units/audios/en-es/set1/reference.txt @@ -0,0 +1,6 @@ +1149_epst esto también debería ser una parte importante de nuestro enfoque del presupuesto dos mil doce +476_epst su familia que son mis electores está convencida de su inocencia +651_epst de la directiva a todos los impuestos incluidas las contribuciones a la seguridad social el intercambio automático de información y la mejora de la cooperación fiscal entre los estados miembros +890_epst la información fomenta el interés de los ciudadanos por los asuntos públicos y su participación +632_mustc y al parecer era muy popular +519_mustc podemos hacer lo mismo con mucha menos energía diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/s2t_tts/1149_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set1/s2t_tts/1149_epst.wav new file mode 100644 index 0000000..770b9a3 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/s2t_tts/1149_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/s2t_tts/476_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set1/s2t_tts/476_epst.wav new file mode 100644 index 0000000..42d3b3f Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/s2t_tts/476_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/s2t_tts/519_mustc.wav b/enhanced_direct_s2st_units/audios/en-es/set1/s2t_tts/519_mustc.wav new file mode 100644 index 0000000..c2f5612 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/s2t_tts/519_mustc.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/s2t_tts/632_mustc.wav b/enhanced_direct_s2st_units/audios/en-es/set1/s2t_tts/632_mustc.wav new file mode 100644 index 0000000..b7e7d55 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/s2t_tts/632_mustc.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/s2t_tts/651_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set1/s2t_tts/651_epst.wav new file mode 100644 index 0000000..8a8359c Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/s2t_tts/651_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/s2t_tts/890_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set1/s2t_tts/890_epst.wav new file mode 100644 index 0000000..b11937d Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/s2t_tts/890_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_lnd/1149_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_lnd/1149_epst.wav new file mode 100644 index 0000000..8d8734c Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_lnd/1149_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_lnd/476_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_lnd/476_epst.wav new file mode 100644 index 0000000..89f0651 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_lnd/476_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_lnd/519_mustc.wav b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_lnd/519_mustc.wav new file mode 100644 index 0000000..8d82533 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_lnd/519_mustc.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_lnd/632_mustc.wav b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_lnd/632_mustc.wav new file mode 100644 index 0000000..251276e Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_lnd/632_mustc.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_lnd/651_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_lnd/651_epst.wav new file mode 100644 index 0000000..465b5c8 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_lnd/651_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_lnd/890_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_lnd/890_epst.wav new file mode 100644 index 0000000..ad46a7c Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_lnd/890_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_mt/1149_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_mt/1149_epst.wav new file mode 100644 index 0000000..11d7641 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_mt/1149_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_mt/476_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_mt/476_epst.wav new file mode 100644 index 0000000..069c912 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_mt/476_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_mt/519_mustc.wav b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_mt/519_mustc.wav new file mode 100644 index 0000000..3f2b21c Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_mt/519_mustc.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_mt/632_mustc.wav b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_mt/632_mustc.wav new file mode 100644 index 0000000..a889ff4 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_mt/632_mustc.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_mt/651_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_mt/651_epst.wav new file mode 100644 index 0000000..2c542db Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_mt/651_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_mt/890_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_mt/890_epst.wav new file mode 100644 index 0000000..889a3f9 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/s2ut_mt/890_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/source/1149_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set1/source/1149_epst.wav new file mode 100644 index 0000000..c79bff9 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/source/1149_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/source/476_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set1/source/476_epst.wav new file mode 100644 index 0000000..be1e9e9 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/source/476_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/source/519_mustc.wav b/enhanced_direct_s2st_units/audios/en-es/set1/source/519_mustc.wav new file mode 100644 index 0000000..ff681b6 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/source/519_mustc.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/source/632_mustc.wav b/enhanced_direct_s2st_units/audios/en-es/set1/source/632_mustc.wav new file mode 100644 index 0000000..02f5a08 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/source/632_mustc.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/source/651_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set1/source/651_epst.wav new file mode 100644 index 0000000..2c90daf Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/source/651_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/source/890_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set1/source/890_epst.wav new file mode 100644 index 0000000..cc93099 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/source/890_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/target/1149_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set1/target/1149_epst.wav new file mode 100644 index 0000000..f886903 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/target/1149_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/target/476_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set1/target/476_epst.wav new file mode 100644 index 0000000..31334bf Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/target/476_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/target/519_mustc.wav b/enhanced_direct_s2st_units/audios/en-es/set1/target/519_mustc.wav new file mode 100644 index 0000000..94d0a84 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/target/519_mustc.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/target/632_mustc.wav b/enhanced_direct_s2st_units/audios/en-es/set1/target/632_mustc.wav new file mode 100644 index 0000000..333eec1 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/target/632_mustc.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/target/651_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set1/target/651_epst.wav new file mode 100644 index 0000000..d1f8eec Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/target/651_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set1/target/890_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set1/target/890_epst.wav new file mode 100644 index 0000000..6825387 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set1/target/890_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/asr.txt b/enhanced_direct_s2st_units/audios/en-es/set2/asr.txt new file mode 100644 index 0000000..994a4da --- /dev/null +++ b/enhanced_direct_s2st_units/audios/en-es/set2/asr.txt @@ -0,0 +1,31 @@ +LND +37_epst queremos ver la pobreza energética como parte de este deate +923_epst en mi opinión uno de los elementos más importantes es el seguimiento de las peticiones de la iniciativa legislativa por parte del pagamento +970_epst debemos encontrar un procedimiento abierto y constructivo sobre el próximo marco financiero +45_epst estoy de acuerdo en que debemos actuar y reaccionar pero no debemos hacerlo porque necesitamos un enfoque equilibrado +651_epst de la directiva a todos los impuestos incluidas las contribuciones a la seguridad social el intercambio automático de información y la mejor cooperación entre los estados miembros en las cuestiones de impuestos +1015_mustc a través de mi trabajo trato de articular que los humanos no somos separados de la naturaleza y que todo está interconectado + + + +LR50 +37_epst queremos ver la pobreza energética como parte de este date +923_epst en mi opinión uno de los elementos más importantes es el seguimiento de las emiendas de iniciativas legislativas de ley +970_epst debemos encontrar un procedimiento abierto y constructivo en el sistema financiero financiero financiero financiero +45_epst estoy considerando que actuamos y reaccionamos pero no deberíamos hacerlo porque necesitamos un enfoque realmente valioso +651_epst la directiva sobre el impuesto de todos los contribuyentes inpluyendo las contribuciones sociales la introducción automática y mejorada de los estados miembros y mejorar la cooperación entre los estados miembros +1015_mustc a través de mi trabajo estoy tratando de articular que los humanos no están separados de la naturaleza y que todo está interconectado + + + + +LND-ASR +37_epst queremos ver la pobreza energética como parte de este deate +923_epst en mi opinión uno de los elementos más importantes es el seguimiento de las solicitudes de iniciativa legislativa del pagamento +970_epst debemos encontrar un procedimiento abierto y constructivo en el próximo marco financiero +45_epst estoy de acuerdo en que deberíamos actuar y reaccionar pero no deberíamos exagerarlo porque necesitamos un enfoque equilibrado +651_epst de la directiva a todos los impuestos incluidas las contribuciones a la seguridad social el intercambio automático de información y la mejor cooperación entre los estados miembros en materia de impuestos +1015_mustc a través de mi trabajo trato de articular que los humanos no estamos separados de la naturaleza y que todo está interconectado + + + diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/reference.txt b/enhanced_direct_s2st_units/audios/en-es/set2/reference.txt new file mode 100644 index 0000000..5c6c423 --- /dev/null +++ b/enhanced_direct_s2st_units/audios/en-es/set2/reference.txt @@ -0,0 +1,6 @@ +37_epst queremos ver la pobreza energética como parte de este debate +923_epst en mi opinión uno de los elementos más importantes es el seguimiento de las solicitudes de iniciativa legislativa del parlamento +970_epst debemos encontrar un procedimiento abierto y constructivo en el próximo marco financiero +45_epst estoy de acuerdo en que deberíamos actuar y reaccionar pero no deberíamos excedernos porque necesitamos un enfoque equilibrado +651_epst de la directiva a todos los impuestos incluidas las contribuciones a la seguridad social el intercambio automático de información y la mejora de la cooperación fiscal entre los estados miembros +1015_mustc a través de mi trabajo estoy tratando de expresar que los humanos no están separados de la naturaleza y que todo está interconectado diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd/1015_mustc.wav b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd/1015_mustc.wav new file mode 100644 index 0000000..6157254 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd/1015_mustc.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd/37_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd/37_epst.wav new file mode 100644 index 0000000..2175457 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd/37_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd/45_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd/45_epst.wav new file mode 100644 index 0000000..1708801 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd/45_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd/651_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd/651_epst.wav new file mode 100644 index 0000000..465b5c8 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd/651_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd/923_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd/923_epst.wav new file mode 100644 index 0000000..adb0ba8 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd/923_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd/970_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd/970_epst.wav new file mode 100644 index 0000000..ae3de4e Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd/970_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd_w_asr/1015_mustc.wav b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd_w_asr/1015_mustc.wav new file mode 100644 index 0000000..006e1bc Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd_w_asr/1015_mustc.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd_w_asr/37_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd_w_asr/37_epst.wav new file mode 100644 index 0000000..ab9d0ac Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd_w_asr/37_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd_w_asr/45_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd_w_asr/45_epst.wav new file mode 100644 index 0000000..8553284 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd_w_asr/45_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd_w_asr/651_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd_w_asr/651_epst.wav new file mode 100644 index 0000000..5a517f5 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd_w_asr/651_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd_w_asr/923_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd_w_asr/923_epst.wav new file mode 100644 index 0000000..cc9c277 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd_w_asr/923_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd_w_asr/970_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd_w_asr/970_epst.wav new file mode 100644 index 0000000..7074169 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lnd_w_asr/970_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lr50/1015_mustc.wav b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lr50/1015_mustc.wav new file mode 100644 index 0000000..d8c7c28 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lr50/1015_mustc.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lr50/37_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lr50/37_epst.wav new file mode 100644 index 0000000..59dd9c3 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lr50/37_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lr50/45_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lr50/45_epst.wav new file mode 100644 index 0000000..f5bd251 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lr50/45_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lr50/651_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lr50/651_epst.wav new file mode 100644 index 0000000..6901a47 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lr50/651_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lr50/923_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lr50/923_epst.wav new file mode 100644 index 0000000..2a224c8 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lr50/923_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lr50/970_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lr50/970_epst.wav new file mode 100644 index 0000000..332b71c Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/s2ut_lr50/970_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/source/1015_mustc.wav b/enhanced_direct_s2st_units/audios/en-es/set2/source/1015_mustc.wav new file mode 100644 index 0000000..dd3de56 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/source/1015_mustc.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/source/37_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/source/37_epst.wav new file mode 100644 index 0000000..5cc39ae Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/source/37_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/source/45_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/source/45_epst.wav new file mode 100644 index 0000000..d21b2fc Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/source/45_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/source/651_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/source/651_epst.wav new file mode 100644 index 0000000..2c90daf Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/source/651_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/source/923_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/source/923_epst.wav new file mode 100644 index 0000000..98b461b Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/source/923_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/source/970_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/source/970_epst.wav new file mode 100644 index 0000000..2e64c8f Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/source/970_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/target/1015_mustc.wav b/enhanced_direct_s2st_units/audios/en-es/set2/target/1015_mustc.wav new file mode 100644 index 0000000..20e504f Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/target/1015_mustc.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/target/37_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/target/37_epst.wav new file mode 100644 index 0000000..baf2290 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/target/37_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/target/45_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/target/45_epst.wav new file mode 100644 index 0000000..7d5f7cf Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/target/45_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/target/651_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/target/651_epst.wav new file mode 100644 index 0000000..d1f8eec Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/target/651_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/target/923_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/target/923_epst.wav new file mode 100644 index 0000000..4bbe0d0 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/target/923_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/en-es/set2/target/970_epst.wav b/enhanced_direct_s2st_units/audios/en-es/set2/target/970_epst.wav new file mode 100644 index 0000000..b2e0d54 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/en-es/set2/target/970_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/metadata.txt b/enhanced_direct_s2st_units/audios/es-en/metadata.txt new file mode 100644 index 0000000..1cc3321 --- /dev/null +++ b/enhanced_direct_s2st_units/audios/es-en/metadata.txt @@ -0,0 +1,24 @@ + +EPST +1507 otro aspecto más institucional es el equilibrio de fuerzas entre el parlamento y el consejo /large_experiments/ust/annl/datasets/st/europarl-st/es/en/test/flac_16k/en.20120328.21.3-210-000_4.flac +1700 además su capacidad de regeneración es muy limitada /large_experiments/ust/annl/datasets/st/europarl-st/es/en/test/flac_16k/en.20120911.4.2-035-000_2.flac +1313 señor presidente señorías nos encontramos ante un tema extremadamente sensible /large_experiments/ust/annl/datasets/st/europarl-st/es/en/test/flac_16k/en.20111114.20.1-233-000_0.flac +289 desde un punto de vista presupuestario no parece adecuada la propuesta de financiación procedente de la comisión de desarrollo ya que este dinero no existe al /large_experiments/ust/annl/datasets/st/europarl-st/es/en/test/flac_16k/en.20090218.24.3-251_2.flac + + + +MTEDX +581 pero por qué te pusiste en esta situación /large_experiments/ust/annl/datasets/st/mtedx/es-en/test/flac_16k/a0G1K1A269Y_0024.flac +591 en dos mil dieciseis hubo tres mil quinientos sesenta y nueve suicidios en españa según el instituto nacional de estadística /large_experiments/ust/annl/datasets/st/mtedx/es-en/test/flac_16k/a0G1K1A269Y_0034.flac +100 empezó en asia y de allí pasó a venecia el puerto más cosmopolita de su tiempo /large_experiments/ust/annl/datasets/st/mtedx/es-en/test/flac_16k/9VA26uZPqYA_0008.flac +592 cuando casi diez personas al día una cada dos horas y media /large_experiments/ust/annl/datasets/st/mtedx/es-en/test/flac_16k/a0G1K1A269Y_0035.flac + + +CV +11375 /large_experiments/ust/annl/datasets/st/covost2/es/flac_16k/common_voice_es_19717026.flac autobuses adicionales normalmente proporcionados por go south coast van desde bristol al festival +12411 /large_experiments/ust/annl/datasets/st/covost2/es/flac_16k/common_voice_es_19607691.flac así el principito decidió abandonar su planeta y explorar el resto del universo +2692 /large_experiments/ust/annl/datasets/st/covost2/es/flac_16k/common_voice_es_19980264.flac encontró un país con dos gobiernos en la capital maximiliano era el emperador +9756 /large_experiments/ust/annl/datasets/st/covost2/es/flac_16k/common_voice_es_19599961.flac cada uno de ellos es un derecho exclusivo sujeto a ciertas limitaciones y excepciones +12478 /large_experiments/ust/annl/datasets/st/covost2/es/flac_16k/common_voice_es_19970262.flac esta experiencia representa un paso trascendental en la historia espacial del país +4109 /large_experiments/ust/annl/datasets/st/covost2/es/flac_16k/common_voice_es_19969961.flac desde la perspectiva del balance físico químico y biológico está en una posición clave + diff --git a/enhanced_direct_s2st_units/audios/es-en/reference.txt b/enhanced_direct_s2st_units/audios/es-en/reference.txt new file mode 100644 index 0000000..c28287a --- /dev/null +++ b/enhanced_direct_s2st_units/audios/es-en/reference.txt @@ -0,0 +1,17 @@ +11375_cv ADDITIONAL BUSES USUALLY PROVIDED BY GO SOUTH COAST GO FROM BRISTOL TO THE FESTIVAL + +12411_cv THIS WAY THE LITTLE PRINCE DECIDED TO LEAVE HIS PLANET AND EXPLORE THE REST OF THE UNIVERSE +2692_cv HE FOUND A COUNTRY WITH TWO GOVERNMENTS IN THE CAPITAL MAXIMILIAN WAS THE EMPEROR +1313_epst MR PRESIDENT LADIES AND GENTLEMEN WE ARE DEALING WITH AN EXTREMELY SENSITIVE ISSUE +1507_epst ANOTHER MORE INSTITUTIONAL ASPECT IS THE BALANCE OF POWER BETWEEN PARLIAMENT AND THE COUNCIL +1700_epst MOREOVER THEIR CAPACITY FOR REGENERATION IS VERY LIMITED +581_mtedx BUT WHY DID YOU PUT YOURSELF IN THIS SITUATION +591_mtedx IN TWENTY SIXTEEN THERE WERE THREE THOUSAND FIVE HUNDRED SIXTY NINE SUICIDES IN SPAIN ACCORDING TO THE NATIONAL INSTITUTE OF STATISTICS +9756_cv EACH ONE OF THEM IS AN EXCLUSIVE RIGHT SUBJECT TO CERTAIN LIMITATIONS AND EXCEPTIONS +12478_cv THIS EXPERIENCE REPRESENTS A TRANSCENDENTAL STEP IN THE SPATIAL HISTORY OF THE COUNTRY +4109_cv FROM THE PERSPECTIVE OF PHYSICAL CHEMICAL AND BIOLOGICAL BALANCE IT IS IN A KEY POSITION +289_epst IN ANY CASE GIVEN THAT THE FINANCING OF THIS NEW COOPERATION INSTRUMENT MUST BE COMPATIBLE WITH THE TWO THOUSAND SEVEN TWENTY THIRTEEN FINANCIAL FRAMEWORK IT IS WORTH +1528_epst LADIES AND GENTLEMEN THE SITUATION IN THE MARKETS DOES NOT REFLECT SPAIN'S STRENGTH +100_mtedx IT STARTED IN ASIA AND FROM THERE IT WENT TO VENICE THE MOST COSMOPOLITAN PORT OF ITS TIME +592_mtedx ALMOST TEN PEOPLE A DAY ONE EVERY TWO AND A HALF HOURS + diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/asr.txt b/enhanced_direct_s2st_units/audios/es-en/set1/asr.txt new file mode 100644 index 0000000..8570bbb --- /dev/null +++ b/enhanced_direct_s2st_units/audios/es-en/set1/asr.txt @@ -0,0 +1,51 @@ + +LND +11375_cv ADDITIONAL BUSES USUALLY PROVIDED BY GO SOUTH COAST GO FROM BRISTOL TO THE FESTIVAL +2692_cv HE FOUND A COUNTRY WITH TWO GOVERNMENTS IN THE CAPITAL MAXIMILIAN WAS THE EMPEROR +9756_cv EACH OF THEM IS AN EXCLUSIVE RIGHT SUBJECT TO CERTAIN LIMITATIONS AND EXCEPTIONS +12478_cv THIS EXPERIENCE REPRESENTS A TRANSCENDENT STEP IN THE SPACE HISTORY OF THE COUNTRY +4109_cv FROM A PHYSICAL CHEMICAL AND BIOLOGICAL BALANCE HE IS IN A KEY POSITION + +1507_epst ANOTHER MORE INSTITUTIONAL ASPECT IS THE BALANCE OF FORCES BETWEEN PARLIAMENT AND THE COUNCIL +1700_epst MOREOVER ITS CAPACITY FOR REGENERATION IS VERY LIMITED +289_epst IN ANY CASE GIVEN THAT THE FUNDING OF THIS NEW CORPORATION INSTRUMENT MUST BE COMPATIBLE WITH THE TWO THOUSAND SEVEN TWENTY THIRTEEN FINANCIAL FRAMEWORK IT IS IMPORTANT +1528_epst LADIES AND GENTLEMEN THE SITUATION OF THE MARKETS DOES NOT REFLECT THE STRENGTH OF SPAIN + + +581_mtedx BUT WHY DID YOU PUT YOURSELF IN THIS SITUATION +591_mtedx IN TWENTY SIXTEEN THERE WERE THREE THOUSAND FIVE HUNDRED SIXTY NINE SUICIDES IN SPAIN ACCORDING TO THE NATIONAL INSTITUTE OF STATISTICS +100_mtedx AND IT STARTED IN ASIA AND FROM THERE IT PASSED TO VENUS THE MOST COSMOPOLITAN PORT IN ITS TIME +592_mtedx ALMOST TEN PEOPLE A DAY ONE EVERY TWO HOURS AND A HALF + + + +MT +11375_cv ADDITIONAL UP TO BORSES NORMALLY PROVIDED BY COAST SO CAST BANDS OF BRISTOL ALL FESTIVAL +2692_cv HE FOUND A COUNTRY WITH TWO GOVERNMENTS IN THE CAPITAL THE MOST SIMILIAN CAPITAL WAS THE EMPEROR + +1507_epst ANOTHER MORE INSTITUTIONAL ASPECT IS THE BALANCE OF FORCES BETWEEN PARLIAMENT AND THE COUNCIL +1700_epst IN ADDITION HIS REGENERATION CAPACITY IS VERY LIMITED + + +581_mtedx BUT WHY DID THE SITUATION IN THIS SITUATION +591_mtedx IN TWENTY SIXTEEN THERE WERE THREE THOUSAND FIVE HUNDRED SIXTY NINE SIXTY NINE SUICIDES IN SPAIN ACCORDING TO THE NATIONAL STATISTICS INSTITUTE + + + + + +S2T_TTS +11375_cv ADDITIONAL BUSES USUALLY PROVIDED BY GO SOUTH COAST GO FROM BRUCE TO THE FESTIVAL +2692_cv HE FOUND A COUNTRY WITH TWO GOVERNMENTS AND THE CAPITAL MAXIMILIAN WAS AN EMPEROR + +1507_epst ANOTHER MORE INSTITUTIONAL ASPECT IS THE BALANCE OF POWER BETWEEN PARLIAMENT AND THE COUNCIL +1700_epst MOREOVER ITS RECOVERY IS VERY LIMITED + + +581_mtedx WHY DID YOU PUT YOU THIS SITUATION +591_mtedx IN TWENTY SIXTEEN THERE WERE THREE THOUSAND FIVE HUNDRED SIXTY NINE KILLINGS IN SPAIN ACCORDING TO THE NATIONAL STATISTICS INSTITUTE + + + + + \ No newline at end of file diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/reference.txt b/enhanced_direct_s2st_units/audios/es-en/set1/reference.txt new file mode 100644 index 0000000..3874b90 --- /dev/null +++ b/enhanced_direct_s2st_units/audios/es-en/set1/reference.txt @@ -0,0 +1,8 @@ +11375_cv ADDITIONAL BUSES USUALLY PROVIDED BY GO SOUTH COAST GO FROM BRISTOL TO THE FESTIVAL +12411_cv THIS WAY THE LITTLE PRINCE DECIDED TO LEAVE HIS PLANET AND EXPLORE THE REST OF THE UNIVERSE +2962_cv HE FOUND A COUNTRY WITH TWO GOVERNMENTS IN THE CAPITAL MAXIMILIAN WAS THE EMPEROR +1313_epst MR PRESIDENT LADIES AND GENTLEMEN WE ARE DEALING WITH AN EXTREMELY SENSITIVE ISSUE +1507_epst ANOTHER MORE INSTITUTIONAL ASPECT IS THE BALANCE OF POWER BETWEEN PARLIAMENT AND THE COUNCIL +1700_epst MOREOVER THEIR CAPACITY FOR REGENERATION IS VERY LIMITED +581_mtedx BUT WHY DID YOU PUT YOURSELF IN THIS SITUATION +591_mtedx IN TWENTY SIXTEEN THERE WERE THREE THOUSAND FIVE HUNDRED SIXTY NINE SUICIDES IN SPAIN ACCORDING TO THE NATIONAL INSTITUTE OF STATISTICS diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/11375_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/11375_cv.wav new file mode 100644 index 0000000..3900ffd Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/11375_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/12411_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/12411_cv.wav new file mode 100644 index 0000000..0b64ad1 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/12411_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/1313_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/1313_epst.wav new file mode 100644 index 0000000..28bb3b3 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/1313_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/1507_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/1507_epst.wav new file mode 100644 index 0000000..3efddbe Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/1507_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/1700_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/1700_epst.wav new file mode 100644 index 0000000..b16314e Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/1700_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/2692_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/2692_cv.wav new file mode 100644 index 0000000..8a65a8e Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/2692_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/2962_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/2962_cv.wav new file mode 100644 index 0000000..5d10a84 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/2962_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/581_mtedx.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/581_mtedx.wav new file mode 100644 index 0000000..1d3ce70 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/581_mtedx.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/591_mtedx.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/591_mtedx.wav new file mode 100644 index 0000000..e9a80a7 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2t_tts/591_mtedx.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/11375_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/11375_cv.wav new file mode 100644 index 0000000..f5c6e20 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/11375_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/12411_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/12411_cv.wav new file mode 100644 index 0000000..0ca52df Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/12411_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/1313_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/1313_epst.wav new file mode 100644 index 0000000..021a596 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/1313_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/1507_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/1507_epst.wav new file mode 100644 index 0000000..14dd46e Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/1507_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/1700_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/1700_epst.wav new file mode 100644 index 0000000..c37a68f Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/1700_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/2692_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/2692_cv.wav new file mode 100644 index 0000000..800275f Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/2692_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/2962_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/2962_cv.wav new file mode 100644 index 0000000..2291376 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/2962_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/581_mtedx.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/581_mtedx.wav new file mode 100644 index 0000000..61c3833 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/581_mtedx.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/591_mtedx.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/591_mtedx.wav new file mode 100644 index 0000000..1823e10 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_lnd/591_mtedx.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/11375_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/11375_cv.wav new file mode 100644 index 0000000..2c7c5b0 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/11375_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/12411_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/12411_cv.wav new file mode 100644 index 0000000..0ce1968 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/12411_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/1313_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/1313_epst.wav new file mode 100644 index 0000000..7fe84c8 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/1313_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/1507_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/1507_epst.wav new file mode 100644 index 0000000..606986e Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/1507_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/1700_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/1700_epst.wav new file mode 100644 index 0000000..7fd95ef Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/1700_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/2692_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/2692_cv.wav new file mode 100644 index 0000000..c319977 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/2692_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/2962_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/2962_cv.wav new file mode 100644 index 0000000..869c6e3 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/2962_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/581_mtedx.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/581_mtedx.wav new file mode 100644 index 0000000..ac97ff3 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/581_mtedx.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/591_mtedx.wav b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/591_mtedx.wav new file mode 100644 index 0000000..cec34b3 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/s2ut_mt/591_mtedx.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/source/11375.flac b/enhanced_direct_s2st_units/audios/es-en/set1/source/11375.flac new file mode 100644 index 0000000..7c23ba2 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/source/11375.flac differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/source/11375_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set1/source/11375_cv.wav new file mode 100644 index 0000000..e12cc7b Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/source/11375_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/source/12411_cv.flac b/enhanced_direct_s2st_units/audios/es-en/set1/source/12411_cv.flac new file mode 100644 index 0000000..6bcf1ae Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/source/12411_cv.flac differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/source/12411_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set1/source/12411_cv.wav new file mode 100644 index 0000000..e40d748 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/source/12411_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/source/1313_epst.flac b/enhanced_direct_s2st_units/audios/es-en/set1/source/1313_epst.flac new file mode 100644 index 0000000..29c04a4 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/source/1313_epst.flac differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/source/1507_epst.flac b/enhanced_direct_s2st_units/audios/es-en/set1/source/1507_epst.flac new file mode 100644 index 0000000..46f94f9 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/source/1507_epst.flac differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/source/1507_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set1/source/1507_epst.wav new file mode 100644 index 0000000..ba30788 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/source/1507_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/source/1700_epst.flac b/enhanced_direct_s2st_units/audios/es-en/set1/source/1700_epst.flac new file mode 100644 index 0000000..87fa15b Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/source/1700_epst.flac differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/source/1700_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set1/source/1700_epst.wav new file mode 100644 index 0000000..4a04f0c Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/source/1700_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/source/2692_cv.flac b/enhanced_direct_s2st_units/audios/es-en/set1/source/2692_cv.flac new file mode 100644 index 0000000..ba59c61 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/source/2692_cv.flac differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/source/2692_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set1/source/2692_cv.wav new file mode 100644 index 0000000..3550ffb Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/source/2692_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/source/581_mtedx.flac b/enhanced_direct_s2st_units/audios/es-en/set1/source/581_mtedx.flac new file mode 100644 index 0000000..2e6bae4 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/source/581_mtedx.flac differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/source/581_mtedx.wav b/enhanced_direct_s2st_units/audios/es-en/set1/source/581_mtedx.wav new file mode 100644 index 0000000..e1e4f31 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/source/581_mtedx.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/source/591_mtedx.flac b/enhanced_direct_s2st_units/audios/es-en/set1/source/591_mtedx.flac new file mode 100644 index 0000000..b7528ac Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/source/591_mtedx.flac differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/source/591_mtedx.wav b/enhanced_direct_s2st_units/audios/es-en/set1/source/591_mtedx.wav new file mode 100644 index 0000000..1d461ee Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/source/591_mtedx.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/target/11375_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set1/target/11375_cv.wav new file mode 100644 index 0000000..fd99ddb Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/target/11375_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/target/12411_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set1/target/12411_cv.wav new file mode 100644 index 0000000..6b635a5 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/target/12411_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/target/1313_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set1/target/1313_epst.wav new file mode 100644 index 0000000..2567cea Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/target/1313_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/target/1507_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set1/target/1507_epst.wav new file mode 100644 index 0000000..73f15f3 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/target/1507_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/target/1528_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set1/target/1528_epst.wav new file mode 100644 index 0000000..81dc97a Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/target/1528_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/target/1700_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set1/target/1700_epst.wav new file mode 100644 index 0000000..315ae7f Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/target/1700_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/target/2692_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set1/target/2692_cv.wav new file mode 100644 index 0000000..8b6a34e Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/target/2692_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/target/2962_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set1/target/2962_cv.wav new file mode 100644 index 0000000..8cbcc60 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/target/2962_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/target/581_mtedx.wav b/enhanced_direct_s2st_units/audios/es-en/set1/target/581_mtedx.wav new file mode 100644 index 0000000..854c78c Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/target/581_mtedx.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set1/target/591_mtedx.wav b/enhanced_direct_s2st_units/audios/es-en/set1/target/591_mtedx.wav new file mode 100644 index 0000000..67b458e Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set1/target/591_mtedx.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/asr.txt b/enhanced_direct_s2st_units/audios/es-en/set2/asr.txt new file mode 100644 index 0000000..3833985 --- /dev/null +++ b/enhanced_direct_s2st_units/audios/es-en/set2/asr.txt @@ -0,0 +1,58 @@ +LND +11375_cv ADDITIONAL BUSES USUALLY PROVIDED BY GO SOUTH COAST GO FROM BRISTOL TO THE FESTIVAL +2692_cv HE FOUND A COUNTRY WITH TWO GOVERNMENTS IN THE CAPITAL MAXIMILIAN WAS THE EMPEROR +9756_cv EACH OF THEM IS AN EXCLUSIVE RIGHT SUBJECT TO CERTAIN LIMITATIONS AND EXCEPTIONS +12478_cv THIS EXPERIENCE REPRESENTS A TRANSCENDENT STEP IN THE SPACE HISTORY OF THE COUNTRY +4109_cv FROM A PHYSICAL CHEMICAL AND BIOLOGICAL BALANCE HE IS IN A KEY POSITION + +1507_epst ANOTHER MORE INSTITUTIONAL ASPECT IS THE BALANCE OF FORCES BETWEEN PARLIAMENT AND THE COUNCIL +1700_epst MOREOVER ITS CAPACITY FOR REGENERATION IS VERY LIMITED +289_epst IN ANY CASE GIVEN THAT THE FUNDING OF THIS NEW CORPORATION INSTRUMENT MUST BE COMPATIBLE WITH THE TWO THOUSAND SEVEN TWENTY THIRTEEN FINANCIAL FRAMEWORK IT IS IMPORTANT +1528_epst LADIES AND GENTLEMEN THE SITUATION OF THE MARKETS DOES NOT REFLECT THE STRENGTH OF SPAIN + + +581_mtedx BUT WHY DID YOU PUT YOURSELF IN THIS SITUATION +591_mtedx IN TWENTY SIXTEEN THERE WERE THREE THOUSAND FIVE HUNDRED SIXTY NINE SUICIDES IN SPAIN ACCORDING TO THE NATIONAL INSTITUTE OF STATISTICS +100_mtedx AND IT STARTED IN ASIA AND FROM THERE IT PASSED TO VENUS THE MOST COSMOPOLITAN PORT IN ITS TIME +592_mtedx ALMOST TEN PEOPLE A DAY ONE EVERY TWO HOURS AND A HALF + + +LR50 +9756_cv EACH ONE OF THEM IS AN EXCLUSIVE RIGHT SUBJECT TO CERTAIN LIMITATIONS AND EXCEPTIONS +12478_cv THIS EXPERIENCE REPRESENTS A TRANSCENDENTAL STEP IN THE SPATIAL HISTORY OF THE COUNTRY +4109_cv FROM A PHYSICAL PERSPECTIVE OF PHYSICAL CHEMICAL AND BIOLOGICAL POSITION +289_epst IN ANY CASE SINCE THE FINANCING OF THIS NEW INSTRUMENT OF CORPORATION MUST COMPATIBLE WITH THE FINANCIAL FRAMEWORK FOR TWENTY THIRTEEN +1528_epst LADIES AND GENTLEMEN THE MARKET SITUATION DOES NOT REFLECT THE STRENGTH OF SPAIN +100_mtedx HE BECAME IN ASIA AND FROM THAT TIME THE MOST COSMOPOLITAN IN HIS LIFE +592_mtedx EVEN TEN PEOPLE EVERY DAY ONE EVERY TWO HOURS + + + +ASR + LND +9756_cv EACH OF THEM IS AN EXCLUSIVE RIGHT SUBJECT TO CERTAIN LIMITATIONS AND EXCEPTIONS +12478_cv THIS EXPERIENCE REPRESENTS A MOVEMENT STEP IN THE SPACE HISTORY OF THE COUNTRY +4109_cv FROM THE PERSPECTIVE OF PHYSICAL CHEMICAL AND BIOLOGICAL BALANCE IT IS IN A KEY POSITION +289_epst IN ANY CASE GIVEN THAT THE FINANCING OF THIS NEW CORPORATION INSTRUMENT MUST BE COMPATIBLE WITH THE TWO THOUSAND SEVEN TWENTY THIRTEEN FINANCIAL FRAMEWORK +1528_epst LADIES AND GENTLEMEN THE SITUATION IN THE MARKETS DOES NOT REFLECT SPAIN'S STRENGTH +100_mtedx IT STARTED IN ASIA AND FROM THERE IT WENT TO VENICE THE MOST COSMOPOLITAN PORT OF ITS TIME +592_mtedx ALMOST TEN PEOPLE A DAY ONE EVERY TWO AND A HALF HOURS + + + + + +LND +EACH OF THEM IS AN EXCLUSIVE RIGHT SUBJECT TO CERTAIN LIMITATIONS AND EXCEPTIONS +EACH ONE OF THEM IS AN EXCLUSIVE RIGHT SUBJECT TO CERTAIN LIMITATIONS AND EXCEPTIONS +EACH OF THEM IS AN EXCLUSIVE RIGHT SUBJECT TO CERTAIN LIMITATIONS AND EXCEPTIONS + + + + + + + + + + + diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/reference.txt b/enhanced_direct_s2st_units/audios/es-en/set2/reference.txt new file mode 100644 index 0000000..a748a68 --- /dev/null +++ b/enhanced_direct_s2st_units/audios/es-en/set2/reference.txt @@ -0,0 +1,7 @@ +9756_cv EACH ONE OF THEM IS AN EXCLUSIVE RIGHT SUBJECT TO CERTAIN LIMITATIONS AND EXCEPTIONS +12478_cv THIS EXPERIENCE REPRESENTS A TRANSCENDENTAL STEP IN THE SPATIAL HISTORY OF THE COUNTRY +4109_cv FROM THE PERSPECTIVE OF PHYSICAL CHEMICAL AND BIOLOGICAL BALANCE IT IS IN A KEY POSITION +289_epst IN ANY CASE GIVEN THAT THE FINANCING OF THIS NEW COOPERATION INSTRUMENT MUST BE COMPATIBLE WITH THE TWO THOUSAND SEVEN TWENTY THIRTEEN FINANCIAL FRAMEWORK IT IS WORTH +1528_epst LADIES AND GENTLEMEN THE SITUATION IN THE MARKETS DOES NOT REFLECT SPAIN'S STRENGTH +100_mtedx IT STARTED IN ASIA AND FROM THERE IT WENT TO VENICE THE MOST COSMOPOLITAN PORT OF ITS TIME +592_mtedx ALMOST TEN PEOPLE A DAY ONE EVERY TWO AND A HALF HOURS diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd/100_mtedx.wav b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd/100_mtedx.wav new file mode 100644 index 0000000..590d5d3 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd/100_mtedx.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd/12478_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd/12478_cv.wav new file mode 100644 index 0000000..1275911 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd/12478_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd/1528_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd/1528_epst.wav new file mode 100644 index 0000000..6f9a668 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd/1528_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd/289_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd/289_epst.wav new file mode 100644 index 0000000..3e5423b Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd/289_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd/4109_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd/4109_cv.wav new file mode 100644 index 0000000..6e5a922 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd/4109_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd/592_mtedx.wav b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd/592_mtedx.wav new file mode 100644 index 0000000..40df15e Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd/592_mtedx.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd/9756_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd/9756_cv.wav new file mode 100644 index 0000000..82bb8f8 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd/9756_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd_w_asr/100_mtedx.wav b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd_w_asr/100_mtedx.wav new file mode 100644 index 0000000..7c090e8 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd_w_asr/100_mtedx.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd_w_asr/12478_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd_w_asr/12478_cv.wav new file mode 100644 index 0000000..bd59d71 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd_w_asr/12478_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd_w_asr/1528_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd_w_asr/1528_epst.wav new file mode 100644 index 0000000..d95170c Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd_w_asr/1528_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd_w_asr/289_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd_w_asr/289_epst.wav new file mode 100644 index 0000000..1a3694a Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd_w_asr/289_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd_w_asr/4109_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd_w_asr/4109_cv.wav new file mode 100644 index 0000000..00f226a Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd_w_asr/4109_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd_w_asr/592_mtedx.wav b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd_w_asr/592_mtedx.wav new file mode 100644 index 0000000..10b1af8 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd_w_asr/592_mtedx.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd_w_asr/9756_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd_w_asr/9756_cv.wav new file mode 100644 index 0000000..74ab7c6 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lnd_w_asr/9756_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lr50/100_mtedx.wav b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lr50/100_mtedx.wav new file mode 100644 index 0000000..eca7cc9 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lr50/100_mtedx.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lr50/12478_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lr50/12478_cv.wav new file mode 100644 index 0000000..bed24f6 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lr50/12478_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lr50/289_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lr50/289_epst.wav new file mode 100644 index 0000000..8cdac96 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lr50/289_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lr50/4109_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lr50/4109_cv.wav new file mode 100644 index 0000000..044a1d5 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lr50/4109_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lr50/592_mtedx.wav b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lr50/592_mtedx.wav new file mode 100644 index 0000000..1cc8a4e Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lr50/592_mtedx.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lr50/9756_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lr50/9756_cv.wav new file mode 100644 index 0000000..6406049 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/s2ut_lr50/9756_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/source/100_mtedx.flac b/enhanced_direct_s2st_units/audios/es-en/set2/source/100_mtedx.flac new file mode 100644 index 0000000..6783922 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/source/100_mtedx.flac differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/source/100_mtedx.wav b/enhanced_direct_s2st_units/audios/es-en/set2/source/100_mtedx.wav new file mode 100644 index 0000000..777a485 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/source/100_mtedx.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/source/12478_cv.flac b/enhanced_direct_s2st_units/audios/es-en/set2/source/12478_cv.flac new file mode 100644 index 0000000..efb6d88 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/source/12478_cv.flac differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/source/12478_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set2/source/12478_cv.wav new file mode 100644 index 0000000..095d13b Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/source/12478_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/source/289_epst.flac b/enhanced_direct_s2st_units/audios/es-en/set2/source/289_epst.flac new file mode 100644 index 0000000..31e0e87 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/source/289_epst.flac differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/source/289_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set2/source/289_epst.wav new file mode 100644 index 0000000..0b4202d Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/source/289_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/source/4109_cv.flac b/enhanced_direct_s2st_units/audios/es-en/set2/source/4109_cv.flac new file mode 100644 index 0000000..3a956cf Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/source/4109_cv.flac differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/source/4109_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set2/source/4109_cv.wav new file mode 100644 index 0000000..5a7b684 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/source/4109_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/source/592_mtedx.flac b/enhanced_direct_s2st_units/audios/es-en/set2/source/592_mtedx.flac new file mode 100644 index 0000000..49093ee Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/source/592_mtedx.flac differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/source/592_mtedx.wav b/enhanced_direct_s2st_units/audios/es-en/set2/source/592_mtedx.wav new file mode 100644 index 0000000..d97facf Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/source/592_mtedx.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/source/9756_cv.flac b/enhanced_direct_s2st_units/audios/es-en/set2/source/9756_cv.flac new file mode 100644 index 0000000..2d96b5c Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/source/9756_cv.flac differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/source/9756_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set2/source/9756_cv.wav new file mode 100644 index 0000000..f1eb2e7 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/source/9756_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/target/100_mtedx.wav b/enhanced_direct_s2st_units/audios/es-en/set2/target/100_mtedx.wav new file mode 100644 index 0000000..46d3262 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/target/100_mtedx.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/target/11375_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set2/target/11375_cv.wav new file mode 100644 index 0000000..fd99ddb Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/target/11375_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/target/12411_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set2/target/12411_cv.wav new file mode 100644 index 0000000..6b635a5 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/target/12411_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/target/12478_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set2/target/12478_cv.wav new file mode 100644 index 0000000..adfa6a3 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/target/12478_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/target/1528_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set2/target/1528_epst.wav new file mode 100644 index 0000000..81dc97a Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/target/1528_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/target/289_epst.wav b/enhanced_direct_s2st_units/audios/es-en/set2/target/289_epst.wav new file mode 100644 index 0000000..6861b45 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/target/289_epst.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/target/4109_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set2/target/4109_cv.wav new file mode 100644 index 0000000..25e0eaf Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/target/4109_cv.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/target/592_mtedx.wav b/enhanced_direct_s2st_units/audios/es-en/set2/target/592_mtedx.wav new file mode 100644 index 0000000..cb95d9e Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/target/592_mtedx.wav differ diff --git a/enhanced_direct_s2st_units/audios/es-en/set2/target/9756_cv.wav b/enhanced_direct_s2st_units/audios/es-en/set2/target/9756_cv.wav new file mode 100644 index 0000000..16384f8 Binary files /dev/null and b/enhanced_direct_s2st_units/audios/es-en/set2/target/9756_cv.wav differ diff --git a/enhanced_direct_s2st_units/index.html b/enhanced_direct_s2st_units/index.html new file mode 100644 index 0000000..f9f8414 --- /dev/null +++ b/enhanced_direct_s2st_units/index.html @@ -0,0 +1,1913 @@ + + + + + + Enhanced Direct Speech-to-Speech Translation Using Self-supervised Pre-training and Data Augmentation + + + + + +
+
Enhanced Direct Speech-to-Speech Translation Using Self-supervised Pre-training and Data + Augmentation
+
+
+

+ Sravya Popuri, Peng-Jen Chen, Changhan + Wang, Juan Pino, Yossi Adi, + Jiatao Gu, Wei-Ning Hsu, Ann Lee
+ (☆ = Equal contribution and † = Equal supervision) +

+

+

+

+
+
+
+

+ We explore self-supervised pre-training with unlabeled speech data and data augmentation to improve direct + Speech to speech model training. We take advantage of a recently proposed speech-to-unit translation (S2UT) + framework that encodes + target + speech into discrete representations, and study both speech encoder and discrete unit decoder pre-training + as well as + efficient partial finetuning methods. We conduct experiments under various data setups and show that + self-supervised + pre-training consistently improves model performance compared with multitask learning and is complementary + to data + augmentation techniques that apply ASR and MT models to create weakly supervised training data. + +

+ +
+ + + +
+ +
+ Spanish To English +
+
Comparison with Baselines +
+ +

We provide ground truth source and target audios with the corresponding reference text, + as well as audio samples from three systems:
+ (1) S2UT+LNA-D: the proposed direct speeech-to-unit translation + system initialized with wav2vec 2.0 encoder, unit mBART decoder and finetuned using LNA-D strategy
+ (2) Supervised S2UT: a baseline direct speech-to-unit translation system trained with + source and target text as auxiliary task targets. +
+ (3) S2T+TTS: a baseline cascaded system with a speech-to-text translation model initialized + with wav2vec 2.0 encoder and a random decoder, followed by a text-to-speech synthesis model.
+ Both (1) and (2) use an open sourced HiFi-GAN vocoder to convert units to waveforms. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ground truthPredictions
Source (Spanish)Target (English)S2UT+LNA-DSupervised S2UTS2T+TTS
Sample 1: S2UT+LNAD performs best
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: en dos mil dieciseis hubo tres mil quinientos sesenta y nueve + suicidios en españa según el instituto + nacional de estadística IN TWENTY SIXTEEN THERE WERE THREE THOUSAND FIVE HUNDRED SIXTY + NINE SUICIDES IN SPAIN ACCORDING TO + THE NATIONAL INSTITUTE OF STATISTICS
ASR: IN TWENTY SIXTEEN THERE WERE THREE THOUSAND FIVE HUNDRED SIXTY + NINE SUICIDES IN SPAIN ACCORDING TO + THE NATIONAL + INSTITUTE OF STATISTICS IN TWENTY SIXTEEN THERE WERE THREE THOUSAND FIVE HUNDRED SIXTY + NINE SIXTY NINE SUICIDES IN SPAIN + ACCORDING TO THE + NATIONAL STATISTICS INSTITUTE IN TWENTY SIXTEEN THERE WERE THREE THOUSAND FIVE HUNDRED SIXTY + NINE KILLINGS IN SPAIN ACCORDING TO + THE NATIONAL + STATISTICS INSTITUTE
Sample 2: S2UT+LNAD performs best
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: pero por qué te pusiste en esta situación BUT WHY DID YOU PUT YOURSELF IN THIS SITUATION
ASR: BUT WHY DID YOU PUT YOURSELF IN THIS SITUATION BUT WHY DID THE SITUATION IN THIS SITUATION WHY DID YOU PUT YOU THIS SITUATION
Sample 3: S2UT+LNAD performs best
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: autobuses adicionales normalmente proporcionados por go south coast + van desde bristol al festival + ADDITIONAL BUSES USUALLY PROVIDED BY GO SOUTH COAST GO FROM + BRISTOL TO THE FESTIVAL
ASR: ADDITIONAL BUSES USUALLY PROVIDED BY GO SOUTH COAST GO FROM BRISTOL + TO THE FESTIVAL ADDITIONAL UP TO BORSES NORMALLY PROVIDED BY COAST SO CAST BANDS OF + BRISTOL ALL FESTIVALADDITIONAL BUSES USUALLY PROVIDED BY GO SOUTH COAST GO FROM BRUCE + TO THE FESTIVAL
Sample 4: S2UT+LNAD performs best
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: encontró un país con dos gobiernos en la capital maximiliano era el + emperador HE FOUND A COUNTRY WITH TWO GOVERNMENTS IN THE CAPITAL MAXIMILIAN + WAS THE EMPEROR
ASR: HE FOUND A COUNTRY WITH TWO GOVERNMENTS IN THE CAPITAL MAXIMILIAN + WAS THE EMPEROR HE FOUND A COUNTRY WITH TWO GOVERNMENTS IN THE CAPITAL THE MOST + SIMILIAN CAPITAL WAS THE EMPEROR + HE FOUND A COUNTRY WITH TWO GOVERNMENTS AND THE CAPITAL MAXIMILIAN + WAS AN EMPEROR
Sample 5: S2T+TTS performs best +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: otro aspecto más institucional es el equilibrio de fuerzas entre + el parlamento y el consejo ANOTHER MORE INSTITUTIONAL ASPECT IS THE BALANCE OF POWER BETWEEN + PARLIAMENT AND THE COUNCIL
ASR: ANOTHER MORE INSTITUTIONAL ASPECT IS THE BALANCE OF FORCES BETWEEN + PARLIAMENT AND THE COUNCIL ANOTHER MORE INSTITUTIONAL ASPECT IS THE BALANCE OF FORCES BETWEEN + PARLIAMENT AND THE COUNCIL ANOTHER MORE INSTITUTIONAL ASPECT IS THE BALANCE OF POWER BETWEEN + PARLIAMENT AND THE COUNCIL
Sample 6: All systems make errors
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: además su capacidad de regeneración es muy limitada MOREOVER THEIR CAPACITY FOR REGENERATION IS VERY LIMITED
ASR: MOREOVER ITS CAPACITY FOR REGENERATION IS VERY LIMITED IN ADDITION HIS REGENERATION CAPACITY IS VERY LIMITED MOREOVER ITS RECOVERY IS VERY LIMITED
+
+
+ +
+ Spanish To English +
+
Different Data Setups +
+ +

We provide ground truth source and target audios with the corresponding reference text, + as well as audio samples from three systems. All the three models are initialized with wav2vec 2.0 encoder, + unit + mBART decoder and finetuned using LNA-D strategy but use different datasets for finetuning:
+ (1) S2UT_Base: finetuned on the combination of CoVoST2, Europarl-ST, mTEDx datasets. +
+ (2) S2UT_LR: finetuned on low resource setup with 50hr of data sampled from the the + combination of CoVoST2, Europarl-ST, mTEDx datasets +
+ (3) S2UT_Aug: finetuned on the the combination of CoVoST2, Europarl-ST, mTEDx datasets + datasets plus the ASR data. + with wav2vec 2.0 encoder and a random decoder, followed by a text-to-speech synthesis model.
+ All models use an open sourced HiFi-GAN vocoder to convert units to waveforms. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ground truthPredictions
Source (Spanish)Target (English)S2UT_LRS2UT_BaseS2UT_Aug
Sample 1: All systems do well
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: cada uno de ellos es un derecho exclusivo sujeto a ciertas + limitaciones y excepciones + EACH ONE OF THEM IS AN EXCLUSIVE RIGHT SUBJECT TO CERTAIN + LIMITATIONS AND EXCEPTIONS
ASR: EACH OF THEM IS AN EXCLUSIVE RIGHT SUBJECT TO CERTAIN LIMITATIONS + AND EXCEPTIONSEACH ONE OF THEM IS AN EXCLUSIVE RIGHT SUBJECT TO CERTAIN + LIMITATIONS AND EXCEPTIONSEACH OF THEM IS AN EXCLUSIVE RIGHT SUBJECT TO CERTAIN LIMITATIONS + AND EXCEPTIONS
Sample 2: S2UT_LR performs best
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: esta experiencia representa un paso trascendental en la historia + espacial del país THIS EXPERIENCE REPRESENTS A TRANSCENDENTAL STEP IN THE SPATIAL + HISTORY OF THE COUNTRY
ASR: THIS EXPERIENCE REPRESENTS A TRANSCENDENT STEP IN THE SPACE HISTORY + OF THE COUNTRYTHIS EXPERIENCE REPRESENTS A TRANSCENDENTAL STEP IN THE SPATIAL + HISTORY OF THE COUNTRYTHIS EXPERIENCE REPRESENTS A MOVEMENT STEP IN THE SPACE HISTORY OF + THE COUNTRY
Sample : S2UT_LR has errors but S2UT_Base and S2UT_Aug got + it + right.
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: cuando casi diez personas al día una cada dos horas y media ALMOST TEN PEOPLE A DAY ONE EVERY TWO AND A HALF HOURS
ASR: ALMOST TEN PEOPLE A DAY ONE EVERY TWO HOURS AND A HALFEVEN TEN PEOPLE EVERY DAY ONE EVERY TWO HOURS ALMOST TEN PEOPLE A DAY ONE EVERY TWO AND A HALF HOURS
Sample 4: S2UT_Aug performs best
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: desde la perspectiva del balance físico químico y biológico está + en una posición clave THE PERSPECTIVE OF PHYSICAL CHEMICAL AND BIOLOGICAL BALANCE IT IS + IN A KEY POSITION
ASR: FROM A PHYSICAL CHEMICAL AND BIOLOGICAL BALANCE HE IS IN A KEY + POSITIONFROM A PHYSICAL PERSPECTIVE OF PHYSICAL CHEMICAL AND BIOLOGICAL + POSITIONFROM THE PERSPECTIVE OF PHYSICAL CHEMICAL AND BIOLOGICAL BALANCE IT + IS IN A KEY POSITION
Sample 5: S2UT_Aug performs best
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
ASR: AND IT STARTED IN ASIA AND FROM THERE IT PASSED TO VENUS THE MOST + COSMOPOLITAN PORT IN ITS TIMEHE BECAME IN ASIA AND FROM THAT TIME THE MOST COSMOPOLITAN IN HIS + LIFE IT STARTED IN ASIA AND FROM THERE IT WENT TO VENICE THE MOST + COSMOPOLITAN PORT OF ITS TIME
Reference: empezó en asia y de allí pasó a venecia el puerto más cosmopolita + de su tiempo IT STARTED IN ASIA AND FROM THERE IT WENT TO VENICE THE MOST + COSMOPOLITAN PORT OF ITS TIME
Sample 6: S2UT_Aug performs best
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: desde un punto de vista presupuestario no parece adecuada la + propuesta de financiación procedente de la comisión de + desarrollo ya que este dinero no existe al IN ANY CASE GIVEN THAT THE FINANCING OF THIS NEW COOPERATION + INSTRUMENT MUST BE COMPATIBLE WITH THE + TWO + THOUSAND SEVEN + TWENTY THIRTEEN FINANCIAL FRAMEWORK IT IS WORTH
ASR: IN ANY CASE GIVEN THAT THE FUNDING OF THIS NEW CORPORATION + INSTRUMENT MUST BE COMPATIBLE WITH THE + TWO THOUSAND SEVEN + TWENTY THIRTEEN FINANCIAL FRAMEWORK IT IS IMPORTANTIN ANY CASE SINCE THE FINANCING OF THIS NEW INSTRUMENT OF + CORPORATION MUST COMPATIBLE WITH THE + FINANCIAL FRAMEWORK + FOR TWENTY THIRTEENIN ANY CASE GIVEN THAT THE FINANCING OF THIS NEW CORPORATION + INSTRUMENT MUST BE COMPATIBLE WITH THE + TWO THOUSAND + SEVEN TWENTY THIRTEEN FINANCIAL FRAMEWORK
+
+ +
+ +
+ English to Spanish +
+
Comparison with Baselines +
+ +

We provide ground truth source and target audios with the corresponding reference text, + as well as audio samples from three systems:
+ (1) S2UT+LNA-D: the proposed direct speeech-to-unit translation + system initialized with wav2vec 2.0 encoder, unit mBART decoder and finetuned using LNA-D strategy
+ (2) Supervised S2UT: a baseline direct speech-to-unit translation system trained with + source and target text as auxiliary task targets. +
+ (3) S2T+TTS: a baseline cas2caded system with a speech-to-text translation model + initialized + with wav2vec 2.0 encoder and a random decoder, followed by a text-to-speech synthesis model.
+ Both (1) and (2) use an open sourced HiFi-GAN vocoder to convert units to waveforms. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ground truthPredictions
Source (English)Target (Spanish)S2UT+LNA-DSupervised S2UTS2T+TTS
Sample 1: S2UT+LNAD performs the best.
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: this should also be an important part of our approach to the twenty + twelve budgetesto también debería ser una parte importante de nuestro enfoque + del + presupuesto dos mil doce +
ASR: esto también debería ser una parte importante de nuestro enfoque al + presupuesto dos mil doce también debería ser una parte importante de nuestro enfoque al + presupuesto dos mil doceesto también debería ser una parte importante de nuestro enfoque al + presupuesto de dos mildos mil + dos mil doce
Sample 2: S2UT+LNAD performs the best.
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: information encourages citizens interest in public matters and + their participationla información fomenta el interés de los ciudadanos por los + asuntos + públicos y su participación
ASR: la información fomenta el interés de los ciudadanos en asuntos + públicos y su participaciónla información y el interés de los ciudadanos alientan los + intereses de las cuestiones públicas y su + participación + la información alienta el interés de los ciudadanos en asuntos + públicos y en su participación
Sample 3: S2UT+LNAD performs the best.
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: and apparently it was quite populary al parecer era muy popular
ASR: y al parecer era muy populary un líder era bastante populary aparentemente era bastante popular
Sample 4: S2UT+LNAD performs the best.
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: his family who are my constituents are convinced of his innocence + su familia que son mis electores está convencida de su inocencia +
ASR: su familia que son mis electores está convencida de su inocencia + su familia que son mí circunscripciones están convencidas de estos + inocentessu familia que son mis electores están convencidos de su inocencia +
Sample 5: All systems do reasonably well.
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: we can actually do the same thing with much less energypodemos hacer lo mismo con mucha menos energía
ASR: podemos hacer lo mismo con mucha menos energíapodemos hacer lo mismo que mucha menos energíaen realidad podemos hacerlo mismo con menos energía
Sample 6: All systems make errors.
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: of the directive on all taxes including social security + contributions the automatic exchange of information and improved + cooperation between the member states in matters of taxation de la directiva a todos los impuestos incluidas las + contribuciones a + la seguridad social el intercambio automático de + información y la mejora de la cooperación fiscal entre los estados miembros
ASR: de la directiva a todos los impuestos incluidas las contribuciones + a la seguridad social el + intercambio automático + de información y la mejor cooperación entre los estados miembros en las cuestiones de impuestosde la directiva a todos los impuestos impluyendo las contribuciones + de seguridad social el + intercambio automático de + la información y mejorar la cooperación entre los estados miembros y las cuestiones de impuestos + de la directiva para todos los impuestos incluidos las + contribuciones de seguridad social el + intercambio automático + de información y la mejor cooperación entre los estados miembros en la cuestión de la fiscalidad +
+
+
+ +
+ English To Spanish +
+
Different Data Setups +
+ +

We provide ground truth source and target audios with the corresponding reference text, + as well as audio samples from three systems. All the three models are initialized with wav2vec 2.0 encoder, + unit + mBART decoder and finetuned using LNA-D strategy but use different datasets for finetuning:
+ (1) S2UT_Base: finetuned on the combination of Europarl-ST, MUST-C datasets. +
+ (2) S2UT_LR: finetuned on low resource setup with 50hr of data sampled from the combination + of Europarl-ST, MUST-C datasets +
+ (3) S2UT_Aug: finetuned on the combination of Europarl-ST, MUST-C datasets plus the ASR + data. + with wav2vec 2.0 encoder and a random decoder, followed by a text-to-speech synthesis model.
+ All models use an open sourced HiFi-GAN vocoder to convert units to waveforms. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ground truthPredictions
Source (English)Target (Spanish)S2UT_LRS2UT_BaseS2UT_Aug
Sample Set 1: All systems do well.
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: we want to see energy poverty as a part of this debatequeremos ver la pobreza energética como parte de este debate +
ASR: queremos ver la pobreza energética como parte de este deatequeremos ver la pobreza energética como parte de este datequeremos ver la pobreza energética como parte de este deate
Sample Set 2: S2UT_LR has errors but S2UT_Base and S2UT_Aug got + it + right.
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: in my view one of the most important elements is the follow up of + legislative initiative requests from parliamenten mi opinión uno de los elementos más importantes es el + seguimiento de + las solicitudes de iniciativa legislativa del + parlamento
ASR: n mi opinión uno de los elementos más importantes es el + seguimiento de las peticiones de la + iniciativa legislativa + por parte del pagamentoen mi opinión uno de los elementos más importantes es el + seguimiento de las emiendas de iniciativas + legislativas de + leyen mi opinión uno de los elementos más importantes es el + seguimiento de las solicitudes de + iniciativa legislativa + del pagamento
Sample Set 3: S2UT_Aug performs the best
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: we must find an open and constructive procedure on the next + financial framework debemos encontrar un procedimiento abierto y constructivo en el + próximo marco financiero
ASR: debemos encontrar un procedimiento abierto y constructivo sobre el + próximo marco financierodebemos encontrar un procedimiento abierto y constructivo en el + sistema financiero financiero + financiero financiero + debemos encontrar un procedimiento abierto y constructivo en el + próximo marco financiero
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: i agree that we should act and react but we should not overdo it + because we need a balanced approachestoy de acuerdo en que deberíamos actuar y reaccionar pero no + deberíamos excedernos porque necesitamos un enfoque equilibrado
ASR: estoy de acuerdo en que debemos actuar y reaccionar pero no + debemos hacerlo porque necesitamos un + enfoque + equilibradoestoy considerando que actuamos y reaccionamos pero no deberíamos + hacerlo porque necesitamos un + enfoque realmente + valiosoestoy de acuerdo en que deberíamos actuar y reaccionar pero no + deberíamos exagerarlo porque + necesitamos un enfoque + equilibrado
Sample Set 4: All systems make errors
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: of the directive on all taxes including social security + contributions the automatic exchange of information and improved + cooperation between the member states in matters of taxationde la directiva a todos los impuestos incluidas las contribuciones + a la + seguridad social el intercambio automático de + información y la mejora de la cooperación fiscal entre los estados miembros
ASR: de la directiva a todos los impuestos incluidas las contribuciones + a la seguridad social el + intercambio automático + de información y la mejor cooperación entre los estados miembros en las cuestiones de impuestosla directiva sobre el impuesto de todos los contribuyentes + inpluyendo las contribuciones sociales la + introducción + automática y mejorada de los estados miembros y mejorar la cooperación entre los estados miembros + de la directiva a todos los impuestos incluidas las contribuciones + a la seguridad social el + intercambio automático + de información y la mejor cooperación entre los estados miembros en materia de impuestos
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
Reference: through my work im trying to articulate that humans are not + separate from nature and that everything is interconnecteda través de mi trabajo estoy tratando de expresar que los humanos + no + están separados de la naturaleza y que todo está + interconectado
ASR: a través de mi trabajo estoy tratando de articular que los humanos + no están separados de la + naturaleza y que todo + está interconectadoa través de mi trabajo trato de articular que los humanos no somos + separados de la naturaleza y que + todo está + interconectadoa través de mi trabajo trato de articular que los humanos no + estamos separados de la naturaleza y + que todo está + interconectado
+
+
+ Template based on Textless NLP and HiFi-GAN + pages. +
+ + + \ No newline at end of file diff --git a/enhanced_direct_s2st_units/jquery-3.5.js b/enhanced_direct_s2st_units/jquery-3.5.js new file mode 100644 index 0000000..9fd22ca --- /dev/null +++ b/enhanced_direct_s2st_units/jquery-3.5.js @@ -0,0 +1,2 @@ +/*! jQuery v3.5.0 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 a { + color: transparent; +} + +img { + display: block; + width: 100%; + height: 100%; + margin-left: auto; + margin-right: auto; +} + +hr { + color: rgb(78, 86, 101); + size: 10px; +} + +.option-div{ + font-size: 24px; + color: rgb(78, 86, 101); + font-weight: bold; +} + +.option-div option{ + font-size: 20px; +} + +.fa-play:before { + content: "\f04b" +} + +.fa-pause:before { + content: "\f04c" +} + +.fa-stop:before { + content: "\f04d" +} + +.fa { + display: inline-block; + font: normal normal normal 14px / 1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale +} + +.btn { + display: inline-block; + font-weight: 400; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + border: 1px solid transparent; + padding: .375rem .75rem; + font-size: 1rem; + line-height: 1.5; + border-radius: .25rem; + transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out +} + +@media screen and (prefers-reduced-motion:reduce) { + .btn { + transition: none + } +} + +.btn:focus, .btn:hover { + text-decoration: none +} + +.btn.focus, .btn:focus { + outline: 0; + box-shadow: 0 0 0 .2rem rgba(0, 123, 255, .25) +} + +.btn.disabled, .btn:disabled { + opacity: .65 +} + +.btn:not(:disabled):not(.disabled) { + cursor: pointer +} + +a.btn.disabled, fieldset:disabled a.btn { + pointer-events: none +} + +.btn-primary { + color: #fff; + background-color: rgb(78, 86, 101); + border-color: rgb(78, 86, 101) +} + +.btn-primary:hover { + color: #fff; + background-color: rgb(78, 86, 101); + border-color: rgb(78, 86, 101) +} + +.btn-primary.focus, .btn-primary:focus { + box-shadow: 0 0 0 .2rem rgba(22, 38, 67, .5) +} + +.btn-primary.disabled, .btn-primary:disabled { + color: #fff; + background-color: rgb(78, 86, 101); + border-color: rgb(78, 86, 101) +} + +.btn-primary:not(:disabled):not(.disabled).active, .btn-primary:not(:disabled):not(.disabled):active, +.show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: rgb(78, 86, 101); + border-color: rgb(78, 86, 101) +} + +.btn-primary:not(:disabled):not(.disabled).active:focus, .btn-primary:not(:disabled):not(.disabled):active:focus, +.show > .btn-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(22, 38, 67, .5) +} \ No newline at end of file diff --git a/enhanced_direct_s2st_units/temp.html b/enhanced_direct_s2st_units/temp.html new file mode 100644 index 0000000..e69de29 diff --git a/enhanced_direct_s2st_units/wavesurfer.js b/enhanced_direct_s2st_units/wavesurfer.js new file mode 100644 index 0000000..e0b9bd4 --- /dev/null +++ b/enhanced_direct_s2st_units/wavesurfer.js @@ -0,0 +1,6248 @@ +/*! + * wavesurfer.js 4.1.1 (2020-09-25) + * https://wavesurfer-js.org + * @license BSD-3-Clause + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define("WaveSurfer", [], factory); + else if(typeof exports === 'object') + exports["WaveSurfer"] = factory(); + else + root["WaveSurfer"] = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./src/wavesurfer.js"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./node_modules/debounce/index.js": +/*!****************************************!*\ + !*** ./node_modules/debounce/index.js ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +/** + * Returns a function, that, as long as it continues to be invoked, will not + * be triggered. The function will be called after it stops being called for + * N milliseconds. If `immediate` is passed, trigger the function on the + * leading edge, instead of the trailing. The function also has a property 'clear' + * that is a function which will clear the timer to prevent previously scheduled executions. + * + * @source underscore.js + * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/ + * @param {Function} function to wrap + * @param {Number} timeout in ms (`100`) + * @param {Boolean} whether to execute at the beginning (`false`) + * @api public + */ +function debounce(func, wait, immediate){ + var timeout, args, context, timestamp, result; + if (null == wait) wait = 100; + + function later() { + var last = Date.now() - timestamp; + + if (last < wait && last >= 0) { + timeout = setTimeout(later, wait - last); + } else { + timeout = null; + if (!immediate) { + result = func.apply(context, args); + context = args = null; + } + } + }; + + var debounced = function(){ + context = this; + args = arguments; + timestamp = Date.now(); + var callNow = immediate && !timeout; + if (!timeout) timeout = setTimeout(later, wait); + if (callNow) { + result = func.apply(context, args); + context = args = null; + } + + return result; + }; + + debounced.clear = function() { + if (timeout) { + clearTimeout(timeout); + timeout = null; + } + }; + + debounced.flush = function() { + if (timeout) { + result = func.apply(context, args); + context = args = null; + + clearTimeout(timeout); + timeout = null; + } + }; + + return debounced; +}; + +// Adds compatibility for ES modules +debounce.debounce = debounce; + +module.exports = debounce; + + +/***/ }), + +/***/ "./src/drawer.canvasentry.js": +/*!***********************************!*\ + !*** ./src/drawer.canvasentry.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _style = _interopRequireDefault(__webpack_require__(/*! ./util/style */ "./src/util/style.js")); + +var _getId = _interopRequireDefault(__webpack_require__(/*! ./util/get-id */ "./src/util/get-id.js")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +/** + * The `CanvasEntry` class represents an element consisting of a wave `canvas` + * and an (optional) progress wave `canvas`. + * + * The `MultiCanvas` renderer uses one or more `CanvasEntry` instances to + * render a waveform, depending on the zoom level. + */ +var CanvasEntry = /*#__PURE__*/function () { + function CanvasEntry() { + _classCallCheck(this, CanvasEntry); + + /** + * The wave node + * + * @type {HTMLCanvasElement} + */ + this.wave = null; + /** + * The wave canvas rendering context + * + * @type {CanvasRenderingContext2D} + */ + + this.waveCtx = null; + /** + * The (optional) progress wave node + * + * @type {HTMLCanvasElement} + */ + + this.progress = null; + /** + * The (optional) progress wave canvas rendering context + * + * @type {CanvasRenderingContext2D} + */ + + this.progressCtx = null; + /** + * Start of the area the canvas should render, between 0 and 1 + * + * @type {number} + */ + + this.start = 0; + /** + * End of the area the canvas should render, between 0 and 1 + * + * @type {number} + */ + + this.end = 1; + /** + * Unique identifier for this entry + * + * @type {string} + */ + + this.id = (0, _getId.default)(typeof this.constructor.name !== 'undefined' ? this.constructor.name.toLowerCase() + '_' : 'canvasentry_'); + /** + * Canvas 2d context attributes + * + * @type {object} + */ + + this.canvasContextAttributes = {}; + } + /** + * Store the wave canvas element and create the 2D rendering context + * + * @param {HTMLCanvasElement} element The wave `canvas` element. + */ + + + _createClass(CanvasEntry, [{ + key: "initWave", + value: function initWave(element) { + this.wave = element; + this.waveCtx = this.wave.getContext('2d', this.canvasContextAttributes); + } + /** + * Store the progress wave canvas element and create the 2D rendering + * context + * + * @param {HTMLCanvasElement} element The progress wave `canvas` element. + */ + + }, { + key: "initProgress", + value: function initProgress(element) { + this.progress = element; + this.progressCtx = this.progress.getContext('2d', this.canvasContextAttributes); + } + /** + * Update the dimensions + * + * @param {number} elementWidth Width of the entry + * @param {number} totalWidth Total width of the multi canvas renderer + * @param {number} width The new width of the element + * @param {number} height The new height of the element + */ + + }, { + key: "updateDimensions", + value: function updateDimensions(elementWidth, totalWidth, width, height) { + // where the canvas starts and ends in the waveform, represented as a + // decimal between 0 and 1 + this.start = this.wave.offsetLeft / totalWidth || 0; + this.end = this.start + elementWidth / totalWidth; // set wave canvas dimensions + + this.wave.width = width; + this.wave.height = height; + var elementSize = { + width: elementWidth + 'px' + }; + (0, _style.default)(this.wave, elementSize); + + if (this.hasProgressCanvas) { + // set progress canvas dimensions + this.progress.width = width; + this.progress.height = height; + (0, _style.default)(this.progress, elementSize); + } + } + /** + * Clear the wave and progress rendering contexts + */ + + }, { + key: "clearWave", + value: function clearWave() { + // wave + this.waveCtx.clearRect(0, 0, this.waveCtx.canvas.width, this.waveCtx.canvas.height); // progress + + if (this.hasProgressCanvas) { + this.progressCtx.clearRect(0, 0, this.progressCtx.canvas.width, this.progressCtx.canvas.height); + } + } + /** + * Set the fill styles for wave and progress + * + * @param {string} waveColor Fill color for the wave canvas + * @param {?string} progressColor Fill color for the progress canvas + */ + + }, { + key: "setFillStyles", + value: function setFillStyles(waveColor, progressColor) { + this.waveCtx.fillStyle = waveColor; + + if (this.hasProgressCanvas) { + this.progressCtx.fillStyle = progressColor; + } + } + /** + * Draw a rectangle for wave and progress + * + * @param {number} x X start position + * @param {number} y Y start position + * @param {number} width Width of the rectangle + * @param {number} height Height of the rectangle + * @param {number} radius Radius of the rectangle + */ + + }, { + key: "fillRects", + value: function fillRects(x, y, width, height, radius) { + this.fillRectToContext(this.waveCtx, x, y, width, height, radius); + + if (this.hasProgressCanvas) { + this.fillRectToContext(this.progressCtx, x, y, width, height, radius); + } + } + /** + * Draw the actual rectangle on a `canvas` element + * + * @param {CanvasRenderingContext2D} ctx Rendering context of target canvas + * @param {number} x X start position + * @param {number} y Y start position + * @param {number} width Width of the rectangle + * @param {number} height Height of the rectangle + * @param {number} radius Radius of the rectangle + */ + + }, { + key: "fillRectToContext", + value: function fillRectToContext(ctx, x, y, width, height, radius) { + if (!ctx) { + return; + } + + if (radius) { + this.drawRoundedRect(ctx, x, y, width, height, radius); + } else { + ctx.fillRect(x, y, width, height); + } + } + /** + * Draw a rounded rectangle on Canvas + * + * @param {CanvasRenderingContext2D} ctx Canvas context + * @param {number} x X-position of the rectangle + * @param {number} y Y-position of the rectangle + * @param {number} width Width of the rectangle + * @param {number} height Height of the rectangle + * @param {number} radius Radius of the rectangle + * + * @return {void} + * @example drawRoundedRect(ctx, 50, 50, 5, 10, 3) + */ + + }, { + key: "drawRoundedRect", + value: function drawRoundedRect(ctx, x, y, width, height, radius) { + if (height === 0) { + return; + } // peaks are float values from -1 to 1. Use absolute height values in + // order to correctly calculate rounded rectangle coordinates + + + if (height < 0) { + height *= -1; + y -= height; + } + + ctx.beginPath(); + ctx.moveTo(x + radius, y); + ctx.lineTo(x + width - radius, y); + ctx.quadraticCurveTo(x + width, y, x + width, y + radius); + ctx.lineTo(x + width, y + height - radius); + ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height); + ctx.lineTo(x + radius, y + height); + ctx.quadraticCurveTo(x, y + height, x, y + height - radius); + ctx.lineTo(x, y + radius); + ctx.quadraticCurveTo(x, y, x + radius, y); + ctx.closePath(); + ctx.fill(); + } + /** + * Render the actual wave and progress lines + * + * @param {number[]} peaks Array with peaks data + * @param {number} absmax Maximum peak value (absolute) + * @param {number} halfH Half the height of the waveform + * @param {number} offsetY Offset to the top + * @param {number} start The x-offset of the beginning of the area that + * should be rendered + * @param {number} end The x-offset of the end of the area that + * should be rendered + */ + + }, { + key: "drawLines", + value: function drawLines(peaks, absmax, halfH, offsetY, start, end) { + this.drawLineToContext(this.waveCtx, peaks, absmax, halfH, offsetY, start, end); + + if (this.hasProgressCanvas) { + this.drawLineToContext(this.progressCtx, peaks, absmax, halfH, offsetY, start, end); + } + } + /** + * Render the actual waveform line on a `canvas` element + * + * @param {CanvasRenderingContext2D} ctx Rendering context of target canvas + * @param {number[]} peaks Array with peaks data + * @param {number} absmax Maximum peak value (absolute) + * @param {number} halfH Half the height of the waveform + * @param {number} offsetY Offset to the top + * @param {number} start The x-offset of the beginning of the area that + * should be rendered + * @param {number} end The x-offset of the end of the area that + * should be rendered + */ + + }, { + key: "drawLineToContext", + value: function drawLineToContext(ctx, peaks, absmax, halfH, offsetY, start, end) { + if (!ctx) { + return; + } + + var length = peaks.length / 2; + var first = Math.round(length * this.start); // use one more peak value to make sure we join peaks at ends -- unless, + // of course, this is the last canvas + + var last = Math.round(length * this.end) + 1; + var canvasStart = first; + var canvasEnd = last; + var scale = this.wave.width / (canvasEnd - canvasStart - 1); // optimization + + var halfOffset = halfH + offsetY; + var absmaxHalf = absmax / halfH; + ctx.beginPath(); + ctx.moveTo((canvasStart - first) * scale, halfOffset); + ctx.lineTo((canvasStart - first) * scale, halfOffset - Math.round((peaks[2 * canvasStart] || 0) / absmaxHalf)); + var i, peak, h; + + for (i = canvasStart; i < canvasEnd; i++) { + peak = peaks[2 * i] || 0; + h = Math.round(peak / absmaxHalf); + ctx.lineTo((i - first) * scale + this.halfPixel, halfOffset - h); + } // draw the bottom edge going backwards, to make a single + // closed hull to fill + + + var j = canvasEnd - 1; + + for (j; j >= canvasStart; j--) { + peak = peaks[2 * j + 1] || 0; + h = Math.round(peak / absmaxHalf); + ctx.lineTo((j - first) * scale + this.halfPixel, halfOffset - h); + } + + ctx.lineTo((canvasStart - first) * scale, halfOffset - Math.round((peaks[2 * canvasStart + 1] || 0) / absmaxHalf)); + ctx.closePath(); + ctx.fill(); + } + /** + * Destroys this entry + */ + + }, { + key: "destroy", + value: function destroy() { + this.waveCtx = null; + this.wave = null; + this.progressCtx = null; + this.progress = null; + } + /** + * Return image data of the wave `canvas` element + * + * When using a `type` of `'blob'`, this will return a `Promise` that + * resolves with a `Blob` instance. + * + * @param {string} format='image/png' An optional value of a format type. + * @param {number} quality=0.92 An optional value between 0 and 1. + * @param {string} type='dataURL' Either 'dataURL' or 'blob'. + * @return {string|Promise} When using the default `'dataURL'` `type` this + * returns a data URL. When using the `'blob'` `type` this returns a + * `Promise` that resolves with a `Blob` instance. + */ + + }, { + key: "getImage", + value: function getImage(format, quality, type) { + var _this = this; + + if (type === 'blob') { + return new Promise(function (resolve) { + _this.wave.toBlob(resolve, format, quality); + }); + } else if (type === 'dataURL') { + return this.wave.toDataURL(format, quality); + } + } + }]); + + return CanvasEntry; +}(); + +exports.default = CanvasEntry; +module.exports = exports.default; + +/***/ }), + +/***/ "./src/drawer.js": +/*!***********************!*\ + !*** ./src/drawer.js ***! + \***********************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var util = _interopRequireWildcard(__webpack_require__(/*! ./util */ "./src/util/index.js")); + +function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +/** + * Parent class for renderers + * + * @extends {Observer} + */ +var Drawer = /*#__PURE__*/function (_util$Observer) { + _inherits(Drawer, _util$Observer); + + var _super = _createSuper(Drawer); + + /** + * @param {HTMLElement} container The container node of the wavesurfer instance + * @param {WavesurferParams} params The wavesurfer initialisation options + */ + function Drawer(container, params) { + var _this; + + _classCallCheck(this, Drawer); + + _this = _super.call(this); + _this.container = container; + /** + * @type {WavesurferParams} + */ + + _this.params = params; + /** + * The width of the renderer + * @type {number} + */ + + _this.width = 0; + /** + * The height of the renderer + * @type {number} + */ + + _this.height = params.height * _this.params.pixelRatio; + _this.lastPos = 0; + /** + * The `` element which is added to the container + * @type {HTMLElement} + */ + + _this.wrapper = null; + return _this; + } + /** + * Alias of `util.style` + * + * @param {HTMLElement} el The element that the styles will be applied to + * @param {Object} styles The map of propName: attribute, both are used as-is + * @return {HTMLElement} el + */ + + + _createClass(Drawer, [{ + key: "style", + value: function style(el, styles) { + return util.style(el, styles); + } + /** + * Create the wrapper `` element, style it and set up the events for + * interaction + */ + + }, { + key: "createWrapper", + value: function createWrapper() { + this.wrapper = this.container.appendChild(document.createElement('wave')); + this.style(this.wrapper, { + display: 'block', + position: 'relative', + userSelect: 'none', + webkitUserSelect: 'none', + height: this.params.height + 'px' + }); + + if (this.params.fillParent || this.params.scrollParent) { + this.style(this.wrapper, { + width: '100%', + overflowX: this.params.hideScrollbar ? 'hidden' : 'auto', + overflowY: 'hidden' + }); + } + + this.setupWrapperEvents(); + } + /** + * Handle click event + * + * @param {Event} e Click event + * @param {?boolean} noPrevent Set to true to not call `e.preventDefault()` + * @return {number} Playback position from 0 to 1 + */ + + }, { + key: "handleEvent", + value: function handleEvent(e, noPrevent) { + !noPrevent && e.preventDefault(); + var clientX = e.targetTouches ? e.targetTouches[0].clientX : e.clientX; + var bbox = this.wrapper.getBoundingClientRect(); + var nominalWidth = this.width; + var parentWidth = this.getWidth(); + var progress; + + if (!this.params.fillParent && nominalWidth < parentWidth) { + progress = (this.params.rtl ? bbox.right - clientX : clientX - bbox.left) * (this.params.pixelRatio / nominalWidth) || 0; + } else { + progress = ((this.params.rtl ? bbox.right - clientX : clientX - bbox.left) + this.wrapper.scrollLeft) / this.wrapper.scrollWidth || 0; + } + + return util.clamp(progress, 0, 1); + } + }, { + key: "setupWrapperEvents", + value: function setupWrapperEvents() { + var _this2 = this; + + this.wrapper.addEventListener('click', function (e) { + var scrollbarHeight = _this2.wrapper.offsetHeight - _this2.wrapper.clientHeight; + + if (scrollbarHeight !== 0) { + // scrollbar is visible. Check if click was on it + var bbox = _this2.wrapper.getBoundingClientRect(); + + if (e.clientY >= bbox.bottom - scrollbarHeight) { + // ignore mousedown as it was on the scrollbar + return; + } + } + + if (_this2.params.interact) { + _this2.fireEvent('click', e, _this2.handleEvent(e)); + } + }); + this.wrapper.addEventListener('dblclick', function (e) { + if (_this2.params.interact) { + _this2.fireEvent('dblclick', e, _this2.handleEvent(e)); + } + }); + this.wrapper.addEventListener('scroll', function (e) { + return _this2.fireEvent('scroll', e); + }); + } + /** + * Draw peaks on the canvas + * + * @param {number[]|Number.} peaks Can also be an array of arrays + * for split channel rendering + * @param {number} length The width of the area that should be drawn + * @param {number} start The x-offset of the beginning of the area that + * should be rendered + * @param {number} end The x-offset of the end of the area that should be + * rendered + */ + + }, { + key: "drawPeaks", + value: function drawPeaks(peaks, length, start, end) { + if (!this.setWidth(length)) { + this.clearWave(); + } + + this.params.barWidth ? this.drawBars(peaks, 0, start, end) : this.drawWave(peaks, 0, start, end); + } + /** + * Scroll to the beginning + */ + + }, { + key: "resetScroll", + value: function resetScroll() { + if (this.wrapper !== null) { + this.wrapper.scrollLeft = 0; + } + } + /** + * Recenter the view-port at a certain percent of the waveform + * + * @param {number} percent Value from 0 to 1 on the waveform + */ + + }, { + key: "recenter", + value: function recenter(percent) { + var position = this.wrapper.scrollWidth * percent; + this.recenterOnPosition(position, true); + } + /** + * Recenter the view-port on a position, either scroll there immediately or + * in steps of 5 pixels + * + * @param {number} position X-offset in pixels + * @param {boolean} immediate Set to true to immediately scroll somewhere + */ + + }, { + key: "recenterOnPosition", + value: function recenterOnPosition(position, immediate) { + var scrollLeft = this.wrapper.scrollLeft; + var half = ~~(this.wrapper.clientWidth / 2); + var maxScroll = this.wrapper.scrollWidth - this.wrapper.clientWidth; + var target = position - half; + var offset = target - scrollLeft; + + if (maxScroll == 0) { + // no need to continue if scrollbar is not there + return; + } // if the cursor is currently visible... + + + if (!immediate && -half <= offset && offset < half) { + // set rate at which waveform is centered + var rate = this.params.autoCenterRate; // make rate depend on width of view and length of waveform + + rate /= half; + rate *= maxScroll; + offset = Math.max(-rate, Math.min(rate, offset)); + target = scrollLeft + offset; + } // limit target to valid range (0 to maxScroll) + + + target = Math.max(0, Math.min(maxScroll, target)); // no use attempting to scroll if we're not moving + + if (target != scrollLeft) { + this.wrapper.scrollLeft = target; + } + } + /** + * Get the current scroll position in pixels + * + * @return {number} Horizontal scroll position in pixels + */ + + }, { + key: "getScrollX", + value: function getScrollX() { + var x = 0; + + if (this.wrapper) { + var pixelRatio = this.params.pixelRatio; + x = Math.round(this.wrapper.scrollLeft * pixelRatio); // In cases of elastic scroll (safari with mouse wheel) you can + // scroll beyond the limits of the container + // Calculate and floor the scrollable extent to make sure an out + // of bounds value is not returned + // Ticket #1312 + + if (this.params.scrollParent) { + var maxScroll = ~~(this.wrapper.scrollWidth * pixelRatio - this.getWidth()); + x = Math.min(maxScroll, Math.max(0, x)); + } + } + + return x; + } + /** + * Get the width of the container + * + * @return {number} The width of the container + */ + + }, { + key: "getWidth", + value: function getWidth() { + return Math.round(this.container.clientWidth * this.params.pixelRatio); + } + /** + * Set the width of the container + * + * @param {number} width The new width of the container + * @return {boolean} Whether the width of the container was updated or not + */ + + }, { + key: "setWidth", + value: function setWidth(width) { + if (this.width == width) { + return false; + } + + this.width = width; + + if (this.params.fillParent || this.params.scrollParent) { + this.style(this.wrapper, { + width: '' + }); + } else { + this.style(this.wrapper, { + width: ~~(this.width / this.params.pixelRatio) + 'px' + }); + } + + this.updateSize(); + return true; + } + /** + * Set the height of the container + * + * @param {number} height The new height of the container. + * @return {boolean} Whether the height of the container was updated or not + */ + + }, { + key: "setHeight", + value: function setHeight(height) { + if (height == this.height) { + return false; + } + + this.height = height; + this.style(this.wrapper, { + height: ~~(this.height / this.params.pixelRatio) + 'px' + }); + this.updateSize(); + return true; + } + /** + * Called by wavesurfer when progress should be rendered + * + * @param {number} progress From 0 to 1 + */ + + }, { + key: "progress", + value: function progress(_progress) { + var minPxDelta = 1 / this.params.pixelRatio; + var pos = Math.round(_progress * this.width) * minPxDelta; + + if (pos < this.lastPos || pos - this.lastPos >= minPxDelta) { + this.lastPos = pos; + + if (this.params.scrollParent && this.params.autoCenter) { + var newPos = ~~(this.wrapper.scrollWidth * _progress); + this.recenterOnPosition(newPos, this.params.autoCenterImmediately); + } + + this.updateProgress(pos); + } + } + /** + * This is called when wavesurfer is destroyed + */ + + }, { + key: "destroy", + value: function destroy() { + this.unAll(); + + if (this.wrapper) { + if (this.wrapper.parentNode == this.container) { + this.container.removeChild(this.wrapper); + } + + this.wrapper = null; + } + } + /* Renderer-specific methods */ + + /** + * Called after cursor related params have changed. + * + * @abstract + */ + + }, { + key: "updateCursor", + value: function updateCursor() {} + /** + * Called when the size of the container changes so the renderer can adjust + * + * @abstract + */ + + }, { + key: "updateSize", + value: function updateSize() {} + /** + * Draw a waveform with bars + * + * @abstract + * @param {number[]|Number.} peaks Can also be an array of arrays for split channel + * rendering + * @param {number} channelIndex The index of the current channel. Normally + * should be 0 + * @param {number} start The x-offset of the beginning of the area that + * should be rendered + * @param {number} end The x-offset of the end of the area that should be + * rendered + */ + + }, { + key: "drawBars", + value: function drawBars(peaks, channelIndex, start, end) {} + /** + * Draw a waveform + * + * @abstract + * @param {number[]|Number.} peaks Can also be an array of arrays for split channel + * rendering + * @param {number} channelIndex The index of the current channel. Normally + * should be 0 + * @param {number} start The x-offset of the beginning of the area that + * should be rendered + * @param {number} end The x-offset of the end of the area that should be + * rendered + */ + + }, { + key: "drawWave", + value: function drawWave(peaks, channelIndex, start, end) {} + /** + * Clear the waveform + * + * @abstract + */ + + }, { + key: "clearWave", + value: function clearWave() {} + /** + * Render the new progress + * + * @abstract + * @param {number} position X-Offset of progress position in pixels + */ + + }, { + key: "updateProgress", + value: function updateProgress(position) {} + }]); + + return Drawer; +}(util.Observer); + +exports.default = Drawer; +module.exports = exports.default; + +/***/ }), + +/***/ "./src/drawer.multicanvas.js": +/*!***********************************!*\ + !*** ./src/drawer.multicanvas.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _drawer = _interopRequireDefault(__webpack_require__(/*! ./drawer */ "./src/drawer.js")); + +var util = _interopRequireWildcard(__webpack_require__(/*! ./util */ "./src/util/index.js")); + +var _drawer2 = _interopRequireDefault(__webpack_require__(/*! ./drawer.canvasentry */ "./src/drawer.canvasentry.js")); + +function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +/** + * MultiCanvas renderer for wavesurfer. Is currently the default and sole + * builtin renderer. + * + * A `MultiCanvas` consists of one or more `CanvasEntry` instances, depending + * on the zoom level. + */ +var MultiCanvas = /*#__PURE__*/function (_Drawer) { + _inherits(MultiCanvas, _Drawer); + + var _super = _createSuper(MultiCanvas); + + /** + * @param {HTMLElement} container The container node of the wavesurfer instance + * @param {WavesurferParams} params The wavesurfer initialisation options + */ + function MultiCanvas(container, params) { + var _this; + + _classCallCheck(this, MultiCanvas); + + _this = _super.call(this, container, params); + /** + * @type {number} + */ + + _this.maxCanvasWidth = params.maxCanvasWidth; + /** + * @type {number} + */ + + _this.maxCanvasElementWidth = Math.round(params.maxCanvasWidth / params.pixelRatio); + /** + * Whether or not the progress wave is rendered. If the `waveColor` + * and `progressColor` are the same color it is not. + * + * @type {boolean} + */ + + _this.hasProgressCanvas = params.waveColor != params.progressColor; + /** + * @type {number} + */ + + _this.halfPixel = 0.5 / params.pixelRatio; + /** + * List of `CanvasEntry` instances. + * + * @type {Array} + */ + + _this.canvases = []; + /** + * @type {HTMLElement} + */ + + _this.progressWave = null; + /** + * Class used to generate entries. + * + * @type {function} + */ + + _this.EntryClass = _drawer2.default; + /** + * Canvas 2d context attributes. + * + * @type {object} + */ + + _this.canvasContextAttributes = params.drawingContextAttributes; + /** + * Overlap added between entries to prevent vertical white stripes + * between `canvas` elements. + * + * @type {number} + */ + + _this.overlap = 2 * Math.ceil(params.pixelRatio / 2); + /** + * The radius of the wave bars. Makes bars rounded + * + * @type {number} + */ + + _this.barRadius = params.barRadius || 0; + return _this; + } + /** + * Initialize the drawer + */ + + + _createClass(MultiCanvas, [{ + key: "init", + value: function init() { + this.createWrapper(); + this.createElements(); + } + /** + * Create the canvas elements and style them + * + */ + + }, { + key: "createElements", + value: function createElements() { + this.progressWave = this.wrapper.appendChild(this.style(document.createElement('wave'), { + position: 'absolute', + zIndex: 3, + left: 0, + top: 0, + bottom: 0, + overflow: 'hidden', + width: '0', + display: 'none', + boxSizing: 'border-box', + borderRightStyle: 'solid', + pointerEvents: 'none' + })); + this.addCanvas(); + this.updateCursor(); + } + /** + * Update cursor style + */ + + }, { + key: "updateCursor", + value: function updateCursor() { + this.style(this.progressWave, { + borderRightWidth: this.params.cursorWidth + 'px', + borderRightColor: this.params.cursorColor + }); + } + /** + * Adjust to the updated size by adding or removing canvases + */ + + }, { + key: "updateSize", + value: function updateSize() { + var _this2 = this; + + var totalWidth = Math.round(this.width / this.params.pixelRatio); + var requiredCanvases = Math.ceil(totalWidth / (this.maxCanvasElementWidth + this.overlap)); // add required canvases + + while (this.canvases.length < requiredCanvases) { + this.addCanvas(); + } // remove older existing canvases, if any + + + while (this.canvases.length > requiredCanvases) { + this.removeCanvas(); + } + + var canvasWidth = this.maxCanvasWidth + this.overlap; + var lastCanvas = this.canvases.length - 1; + this.canvases.forEach(function (entry, i) { + if (i == lastCanvas) { + canvasWidth = _this2.width - _this2.maxCanvasWidth * lastCanvas; + } + + _this2.updateDimensions(entry, canvasWidth, _this2.height); + + entry.clearWave(); + }); + } + /** + * Add a canvas to the canvas list + * + */ + + }, { + key: "addCanvas", + value: function addCanvas() { + var entry = new this.EntryClass(); + entry.canvasContextAttributes = this.canvasContextAttributes; + entry.hasProgressCanvas = this.hasProgressCanvas; + entry.halfPixel = this.halfPixel; + var leftOffset = this.maxCanvasElementWidth * this.canvases.length; // wave + + entry.initWave(this.wrapper.appendChild(this.style(document.createElement('canvas'), { + position: 'absolute', + zIndex: 2, + left: leftOffset + 'px', + top: 0, + bottom: 0, + height: '100%', + pointerEvents: 'none' + }))); // progress + + if (this.hasProgressCanvas) { + entry.initProgress(this.progressWave.appendChild(this.style(document.createElement('canvas'), { + position: 'absolute', + left: leftOffset + 'px', + top: 0, + bottom: 0, + height: '100%' + }))); + } + + this.canvases.push(entry); + } + /** + * Pop single canvas from the list + * + */ + + }, { + key: "removeCanvas", + value: function removeCanvas() { + var lastEntry = this.canvases[this.canvases.length - 1]; // wave + + lastEntry.wave.parentElement.removeChild(lastEntry.wave); // progress + + if (this.hasProgressCanvas) { + lastEntry.progress.parentElement.removeChild(lastEntry.progress); + } // cleanup + + + if (lastEntry) { + lastEntry.destroy(); + lastEntry = null; + } + + this.canvases.pop(); + } + /** + * Update the dimensions of a canvas element + * + * @param {CanvasEntry} entry Target entry + * @param {number} width The new width of the element + * @param {number} height The new height of the element + */ + + }, { + key: "updateDimensions", + value: function updateDimensions(entry, width, height) { + var elementWidth = Math.round(width / this.params.pixelRatio); + var totalWidth = Math.round(this.width / this.params.pixelRatio); // update canvas dimensions + + entry.updateDimensions(elementWidth, totalWidth, width, height); // style element + + this.style(this.progressWave, { + display: 'block' + }); + } + /** + * Clear the whole multi-canvas + */ + + }, { + key: "clearWave", + value: function clearWave() { + var _this3 = this; + + util.frame(function () { + _this3.canvases.forEach(function (entry) { + return entry.clearWave(); + }); + })(); + } + /** + * Draw a waveform with bars + * + * @param {number[]|Number.} peaks Can also be an array of arrays + * for split channel rendering + * @param {number} channelIndex The index of the current channel. Normally + * should be 0. Must be an integer. + * @param {number} start The x-offset of the beginning of the area that + * should be rendered + * @param {number} end The x-offset of the end of the area that should be + * rendered + * @returns {void} + */ + + }, { + key: "drawBars", + value: function drawBars(peaks, channelIndex, start, end) { + var _this4 = this; + + return this.prepareDraw(peaks, channelIndex, start, end, function (_ref) { + var absmax = _ref.absmax, + hasMinVals = _ref.hasMinVals, + height = _ref.height, + offsetY = _ref.offsetY, + halfH = _ref.halfH, + peaks = _ref.peaks; + + // if drawBars was called within ws.empty we don't pass a start and + // don't want anything to happen + if (start === undefined) { + return; + } // Skip every other value if there are negatives. + + + var peakIndexScale = hasMinVals ? 2 : 1; + var length = peaks.length / peakIndexScale; + var bar = _this4.params.barWidth * _this4.params.pixelRatio; + var gap = _this4.params.barGap === null ? Math.max(_this4.params.pixelRatio, ~~(bar / 2)) : Math.max(_this4.params.pixelRatio, _this4.params.barGap * _this4.params.pixelRatio); + var step = bar + gap; + var scale = length / _this4.width; + var first = start; + var last = end; + var i = first; + + for (i; i < last; i += step) { + var peak = peaks[Math.floor(i * scale * peakIndexScale)] || 0; + var h = Math.round(peak / absmax * halfH); + /* in case of silences, allow the user to specify that we + * always draw *something* (normally a 1px high bar) */ + + if (h == 0 && _this4.params.barMinHeight) h = _this4.params.barMinHeight; + + _this4.fillRect(i + _this4.halfPixel, halfH - h + offsetY, bar + _this4.halfPixel, h * 2, _this4.barRadius); + } + }); + } + /** + * Draw a waveform + * + * @param {number[]|Number.} peaks Can also be an array of arrays + * for split channel rendering + * @param {number} channelIndex The index of the current channel. Normally + * should be 0 + * @param {number?} start The x-offset of the beginning of the area that + * should be rendered (If this isn't set only a flat line is rendered) + * @param {number?} end The x-offset of the end of the area that should be + * rendered + * @returns {void} + */ + + }, { + key: "drawWave", + value: function drawWave(peaks, channelIndex, start, end) { + var _this5 = this; + + return this.prepareDraw(peaks, channelIndex, start, end, function (_ref2) { + var absmax = _ref2.absmax, + hasMinVals = _ref2.hasMinVals, + height = _ref2.height, + offsetY = _ref2.offsetY, + halfH = _ref2.halfH, + peaks = _ref2.peaks, + channelIndex = _ref2.channelIndex; + + if (!hasMinVals) { + var reflectedPeaks = []; + var len = peaks.length; + var i = 0; + + for (i; i < len; i++) { + reflectedPeaks[2 * i] = peaks[i]; + reflectedPeaks[2 * i + 1] = -peaks[i]; + } + + peaks = reflectedPeaks; + } // if drawWave was called within ws.empty we don't pass a start and + // end and simply want a flat line + + + if (start !== undefined) { + _this5.drawLine(peaks, absmax, halfH, offsetY, start, end, channelIndex); + } // always draw a median line + + + _this5.fillRect(0, halfH + offsetY - _this5.halfPixel, _this5.width, _this5.halfPixel, _this5.barRadius); + }); + } + /** + * Tell the canvas entries to render their portion of the waveform + * + * @param {number[]} peaks Peaks data + * @param {number} absmax Maximum peak value (absolute) + * @param {number} halfH Half the height of the waveform + * @param {number} offsetY Offset to the top + * @param {number} start The x-offset of the beginning of the area that + * should be rendered + * @param {number} end The x-offset of the end of the area that + * should be rendered + * @param {channelIndex} channelIndex The channel index of the line drawn + */ + + }, { + key: "drawLine", + value: function drawLine(peaks, absmax, halfH, offsetY, start, end, channelIndex) { + var _this6 = this; + + var _ref3 = this.params.splitChannelsOptions.channelColors[channelIndex] || {}, + waveColor = _ref3.waveColor, + progressColor = _ref3.progressColor; + + this.canvases.forEach(function (entry, i) { + _this6.setFillStyles(entry, waveColor, progressColor); + + entry.drawLines(peaks, absmax, halfH, offsetY, start, end); + }); + } + /** + * Draw a rectangle on the multi-canvas + * + * @param {number} x X-position of the rectangle + * @param {number} y Y-position of the rectangle + * @param {number} width Width of the rectangle + * @param {number} height Height of the rectangle + * @param {number} radius Radius of the rectangle + */ + + }, { + key: "fillRect", + value: function fillRect(x, y, width, height, radius) { + var startCanvas = Math.floor(x / this.maxCanvasWidth); + var endCanvas = Math.min(Math.ceil((x + width) / this.maxCanvasWidth) + 1, this.canvases.length); + var i = startCanvas; + + for (i; i < endCanvas; i++) { + var entry = this.canvases[i]; + var leftOffset = i * this.maxCanvasWidth; + var intersection = { + x1: Math.max(x, i * this.maxCanvasWidth), + y1: y, + x2: Math.min(x + width, i * this.maxCanvasWidth + entry.wave.width), + y2: y + height + }; + + if (intersection.x1 < intersection.x2) { + this.setFillStyles(entry); + entry.fillRects(intersection.x1 - leftOffset, intersection.y1, intersection.x2 - intersection.x1, intersection.y2 - intersection.y1, radius); + } + } + } + /** + * Returns whether to hide the channel from being drawn based on params. + * + * @param {number} channelIndex The index of the current channel. + * @returns {bool} True to hide the channel, false to draw. + */ + + }, { + key: "hideChannel", + value: function hideChannel(channelIndex) { + return this.params.splitChannels && this.params.splitChannelsOptions.filterChannels.includes(channelIndex); + } + /** + * Performs preparation tasks and calculations which are shared by `drawBars` + * and `drawWave` + * + * @param {number[]|Number.} peaks Can also be an array of arrays for + * split channel rendering + * @param {number} channelIndex The index of the current channel. Normally + * should be 0 + * @param {number?} start The x-offset of the beginning of the area that + * should be rendered. If this isn't set only a flat line is rendered + * @param {number?} end The x-offset of the end of the area that should be + * rendered + * @param {function} fn The render function to call, e.g. `drawWave` + * @param {number} drawIndex The index of the current channel after filtering. + * @returns {void} + */ + + }, { + key: "prepareDraw", + value: function prepareDraw(peaks, channelIndex, start, end, fn, drawIndex) { + var _this7 = this; + + return util.frame(function () { + // Split channels and call this function with the channelIndex set + if (peaks[0] instanceof Array) { + var channels = peaks; + + if (_this7.params.splitChannels) { + var filteredChannels = channels.filter(function (c, i) { + return !_this7.hideChannel(i); + }); + + if (!_this7.params.splitChannelsOptions.overlay) { + _this7.setHeight(Math.max(filteredChannels.length, 1) * _this7.params.height * _this7.params.pixelRatio); + } + + return channels.forEach(function (channelPeaks, i) { + return _this7.prepareDraw(channelPeaks, i, start, end, fn, filteredChannels.indexOf(channelPeaks)); + }); + } + + peaks = channels[0]; + } // Return and do not draw channel peaks if hidden. + + + if (_this7.hideChannel(channelIndex)) { + return; + } // calculate maximum modulation value, either from the barHeight + // parameter or if normalize=true from the largest value in the peak + // set + + + var absmax = 1 / _this7.params.barHeight; + + if (_this7.params.normalize) { + var max = util.max(peaks); + var min = util.min(peaks); + absmax = -min > max ? -min : max; + } // Bar wave draws the bottom only as a reflection of the top, + // so we don't need negative values + + + var hasMinVals = [].some.call(peaks, function (val) { + return val < 0; + }); + var height = _this7.params.height * _this7.params.pixelRatio; + var offsetY = height * drawIndex || 0; + var halfH = height / 2; + return fn({ + absmax: absmax, + hasMinVals: hasMinVals, + height: height, + offsetY: offsetY, + halfH: halfH, + peaks: peaks, + channelIndex: channelIndex + }); + })(); + } + /** + * Set the fill styles for a certain entry (wave and progress) + * + * @param {CanvasEntry} entry Target entry + * @param {string} waveColor Wave color to draw this entry + * @param {string} progressColor Progress color to draw this entry + */ + + }, { + key: "setFillStyles", + value: function setFillStyles(entry) { + var waveColor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.params.waveColor; + var progressColor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.params.progressColor; + entry.setFillStyles(waveColor, progressColor); + } + /** + * Return image data of the multi-canvas + * + * When using a `type` of `'blob'`, this will return a `Promise`. + * + * @param {string} format='image/png' An optional value of a format type. + * @param {number} quality=0.92 An optional value between 0 and 1. + * @param {string} type='dataURL' Either 'dataURL' or 'blob'. + * @return {string|string[]|Promise} When using the default `'dataURL'` + * `type` this returns a single data URL or an array of data URLs, + * one for each canvas. When using the `'blob'` `type` this returns a + * `Promise` that resolves with an array of `Blob` instances, one for each + * canvas. + */ + + }, { + key: "getImage", + value: function getImage(format, quality, type) { + if (type === 'blob') { + return Promise.all(this.canvases.map(function (entry) { + return entry.getImage(format, quality, type); + })); + } else if (type === 'dataURL') { + var images = this.canvases.map(function (entry) { + return entry.getImage(format, quality, type); + }); + return images.length > 1 ? images : images[0]; + } + } + /** + * Render the new progress + * + * @param {number} position X-offset of progress position in pixels + */ + + }, { + key: "updateProgress", + value: function updateProgress(position) { + this.style(this.progressWave, { + width: position + 'px' + }); + } + }]); + + return MultiCanvas; +}(_drawer.default); + +exports.default = MultiCanvas; +module.exports = exports.default; + +/***/ }), + +/***/ "./src/mediaelement-webaudio.js": +/*!**************************************!*\ + !*** ./src/mediaelement-webaudio.js ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _mediaelement = _interopRequireDefault(__webpack_require__(/*! ./mediaelement */ "./src/mediaelement.js")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +/** + * MediaElementWebAudio backend: load audio via an HTML5 audio tag, but playback with the WebAudio API. + * The advantage here is that the html5