Jadwal adalah perpustakaan untuk menyelaraskan transkrip teks dengan audio. Anda menyediakan file audio, serta file teks dengan transkrip teks lengkap. Jadwal akan menghasilkan daftar kode waktu untuk setiap kata dan karakter yang menunjukkan kapan kata atau surat ini diucapkan dalam audio yang Anda berikan. Timething berusaha untuk menjadi cepat dan akurat, dan dapat berjalan pada GPU atau CPU.
Jadaman menggunakan model pengenalan suara berbasis WAV2VEC yang kuat yang diselenggarakan oleh komunitas AI yang memeluk. Pendekatan ini dijelaskan dalam tutorial Pytorch ini, serta dalam makalah ini.
Untuk menginstal waktu, Anda memerlukan pemasangan Python 3.7 atau 3.8. Anda kemudian dapat menginstalnya menggunakan PIP:
pip install timethingAda banyak kasus di mana Anda mungkin ingin menyelaraskan konten audio yang panjang dengan transkrip yang sesuai. Misalnya Anda mungkin ingin menyelaraskan podcast dengan transkripsi. Episode mungkin beberapa jam, dan transkripsi diberikan oleh podcaster. Dalam kasus lain Anda mungkin ingin menyelaraskan buku audio dengan teks tertulisnya.
timething align-long
--audio-file fixtures/audio/keanu.mp3
--transcript-file fixtures/keanu.cleaned.txt
--alignments-dir aligned
--batch-size 10
--n-workers 5
Jadaman dapat menyelaraskan dataset cuplikan audio tingkat ucapan dengan transkripsi teks mereka. Ini sangat berguna dalam pengaturan pembelajaran mesin, di mana waktu dapat digunakan untuk membersihkan kumpulan data.
Jadwal saat ini mengharapkan untuk menemukan folder yang berisi satu atau lebih bab dalam bentuk berikut:
└── dir/
├── text.csv
├── aligned/
└── audio/
├── chapter01.mp3
├── chapter02.mp3
└── chapter03.mp3
Timething dapat memproses banyak format audio, termasuk MP3, WAV, FLACC dan OGG/VORBIS.
File text.csv harus berisi satu entri per file wav dalam format berikut:
audio/chapter01.mp3|The transcript for chapter01 on a single line here
audio/chapter02.mp3|The transcript for chapter02 on a single line here
audio/chapter03.mp3|The transcript for chapter03 on a single line here
Anda sekarang dapat menjalankan waktu pada CPU atau GPU Anda, misalnya:
timething align-short --metadata text.csv --alignments-dir alignedAnda juga dapat menentukan lebih banyak opsi, misalnya:
timething align-short
--language german
--metadata text.csv
--alignments-dir aligned
--batch-size 8
--n-workers 8 Jalankan timething --help untuk deskripsi lengkap.
Hasil akan ditulis ke dalam folder yang diberikan, misalnya aligned . Mereka akan ditulis ke dalam satu file JSON yang dinamai setelah setiap ID audio. Setiap file akan berisi level karakter dan keberpihakan level kata. Untuk keberpihakan level kata, setiap kata akan memiliki waktu awal dalam hitungan detik, waktu akhir dalam detik, level kepercayaan untuk kata itu dan label kata. Penyelarasan tingkat karakter memiliki hasil yang sesuai.
Anda dapat menemukan contoh dataset dengan output penyelarasan dalam fixtures/ . Inilah yang penyelarasan untuk "satu.mp3", yang hanya berisi kata "satu", terlihat seperti:
{
"n_model_frames" : 72 ,
"n_audio_samples" : 23392 ,
"sampling_rate" : 16000 ,
"chars" : [
{
"label" : " O " ,
"start" : 0.5888611111111111 ,
"end" : 0.6497777777777777 ,
"score" : 0.9999777873357137
},
{
"label" : " n " ,
"start" : 0.6497777777777777 ,
"end" : 0.7106944444444444 ,
"score" : 0.99994424978892
},
{
"label" : " e! " ,
"start" : 0.7106944444444444 ,
"end" : 0.731 ,
"score" : 0.9999799728393555
}
],
"chars_cleaned" : [
{
"label" : " o " ,
"start" : 0.5888611111111111 ,
"end" : 0.6497777777777777 ,
"score" : 0.9999777873357137
},
{
"label" : " n " ,
"start" : 0.6497777777777777 ,
"end" : 0.7106944444444444 ,
"score" : 0.99994424978892
},
{
"label" : " e " ,
"start" : 0.7106944444444444 ,
"end" : 0.731 ,
"score" : 0.9999799728393555
}
],
"words" : [
{
"label" : " One! " ,
"start" : 0.5888611111111111 ,
"end" : 0.731 ,
"score" : 0.9999637263161796
}
],
"words_cleaned" : [
{
"label" : " one " ,
"start" : 0.5888611111111111 ,
"end" : 0.731 ,
"score" : 0.9999637263161796
}
]
}Setelah Anda menjalankan Alignment, Anda dapat memotong file Anda ke file yang lebih kecil dan menulis hasilnya ke folder baru. Misalnya, jika Anda tidak ingin rekaman Anda melebihi 8 detik, maka Anda dapat membuat direktori baru dan memotong ulang data Anda ke dalamnya seperti ini:
timething recut
--from-metadata text.csv
--to-metadata ~ /smaller-recordings/text.csv
--alignments-dir alignments
--cut-threshold-seconds 8.0Hasil dalam contoh ini ditulis ke dalam ~/rekaman yang lebih kecil.
Bahasa yang saat ini didukung dapat ditemukan di model.yaml. Ini saat ini termasuk bahasa Inggris, Jerman, Belanda, Polandia, Italia, Portugis, Spanyol, Prancis, Rusia, Jepang, Yunani dan Arab. Kami hanya telah menguji model Jerman sejauh ini.
Karena sejumlah besar model ucapan CTC yang tersedia di komunitas AI yang memeluk, bahasa baru dapat dengan mudah ditambahkan ke pengaman. Atau, WAV2VEC dapat disesuaikan seperti yang dijelaskan di sini, menggunakan salah satu bahasa suara umum, 87 pada saat penulisan.
Dukungan untuk pembersihan teks saat ini minimal, dan mungkin perlu diperpanjang untuk bahasa baru.
Ada banyak perpustakaan dewasa yang sudah dapat melakukan penyelarasan paksa seperti waktu, misalnya Montreal paksa Aligner atau Aeneas. Salah satu daftar alat disimpan di sini.
Berkat mengapa burung telah mengizinkan pekerjaan awal di perpustakaan ini bersumber terbuka.