Beranda → Blog → Menyiapkan audio untuk transkripsi: resep ffmpeg
Menyiapkan audio untuk transkripsi: resep ffmpeg
Separuh masalah transkripsi selesai sebelum permintaan dikirim — saat menyiapkan berkas. Berikut kumpulan perintah ffmpeg yang menutup hampir semua kasus: video alih-alih audio, stereo alih-alih mono, satu jam keheningan di akhir, dan berkas yang tidak muat batas.
Mengambil audio dari video
Rekaman rapat, webinar, dan rekaman layar biasanya berformat mp4. Jalur video tidak berguna untuk pengenalan:
ffmpeg -i meeting.mp4 -vn -ac 1 -ar 16000 -c:a libopus -b:a 24k meeting.ogg
Rekaman sembilan puluh menit turun dari sekitar 1,5 GB menjadi kira-kira 15 MB dan terunggah dalam hitungan detik.
Memisahkan pembicara lewat kanal
Kalau sistem telepon merekam agen dan pelanggan ke kanal stereo terpisah, itu jalan gratis menuju atribusi pembicara yang tepat tanpa algoritma apa pun:
ffmpeg -i call.wav -map_channel 0.0.0 agent.ogg -map_channel 0.0.1 customer.ogg
Transkrip kedua berkas terpisah lalu selang-seling menurut stempel waktu — hasilnya dialog dengan atribusi yang jelas.
Memangkas tepi dan keheningan
Berkas perekam sering mulai sepuluh menit sebelum ada yang bicara. Potong berdasarkan waktu:
ffmpeg -i raw.ogg -ss 00:09:30 -to 01:12:00 -c copy trimmed.ogg
Buang jeda panjang di tengah rekaman:
ffmpeg -i raw.ogg -af silenceremove=stop_periods=-1:stop_duration=2:stop_threshold=-40dB clean.ogg
Sadari harganya: setelah jeda dibuang, stempel waktu di hasil tidak lagi cocok dengan rekaman asli. Kalau Anda berencana melompat balik ke video, biarkan jedanya.
Memotong rekaman panjang
Potongan tetap lima belas menit:
ffmpeg -i long.ogg -f segment -segment_time 900 -c copy part%03d.ogg
Sederhana, tapi cepat atau lambat akan memotong satu kata. Untuk memotong di jeda, cari dulu keheningannya:
ffmpeg -i long.ogg -af silencedetect=noise=-35dB:d=1 -f null - 2>&1 | grep silence_end
Pakai penanda itu sebagai batas potongan dan tidak ada kalimat yang terbelah, sehingga teks gabungannya terbaca utuh.
Coba dengan rekaman Anda sendiri. Pendaftaran memakan waktu satu menit, dan menit gratisnya cukup untuk menilai kualitasnya.
Ambil kunci API gratisPertanyaan yang sering diajukan
Wajibkah menyatukan ke mono?
Tidak wajib, tapi berkasnya jadi separuh tanpa mengubah hasil. Pertahankan stereo hanya bila pembicara berada di kanal terpisah.
Kenapa harus 16 kHz?
Itu laju cuplik yang dipakai model; yang lebih tinggi diturunkan di dalam. Mengirim 48 kHz hanya membuang bandwidth untuk data yang dibuang.
Apakah kompresi opus menurunkan akurasi?
Pada 24 kbps mono teksnya praktis sama — kodek ini memang dibuat untuk suara. Kerugian baru terlihat di bawah 16 kbps.
Bagaimana menggabungkan transkrip potongan?
Urutkan menurut nomor pada nama berkas lalu sambung berurutan. Untuk stempel waktu berkelanjutan, tambahkan offset awal tiap potongan.
Bacaan terkait
- Format audio mana yang sebaiknya dipakai untuk transkripsi — mp3, wav, ogg, opus, m4a, dan webm untuk pengenalan suara: pengaruh bitrate, alasan mono 16 kHz sudah cukup, dan cara tetap di bawah batas ukuran.
- Cara mentranskrip rekaman yang tidak muat satu permintaan — Menangani audio berjam-jam: kompresi, pemotongan di jeda, pemrosesan potongan secara paralel, dan penggabungan teks dengan stempel waktu berkelanjutan.
- Siapa mengatakan apa: memisahkan pembicara dalam transkrip — Mengapa satu rekaman campuran tidak kembali berlabel pembicara, dan empat cara praktis untuk tetap mendapatkan pemisahannya — dari rekaman multijalur sampai pisah kanal.