Saya telah melakukan ini:
me@riverbrain:~/sgf$ echo "test" | text2wave -otype raw -F 16000 >> test.raw
yang menghasilkan file audio tanpa header. Hal yang luar biasa tentang file ini adalah dapat digabungkan (menggunakan cat
, seperti teks) dengan file audio mentah lainnya.
Tentu saja, saya punya masalah. Masalahnya adalah saya belum bisa memainkannya.
me@riverbrain:~/sgf$ play test.raw
play FAIL formats: bad input format for file `test.raw': sampling rate was not specified
dan juga, ketika menentukan tingkat sampel
me@riverbrain:~/sgf$ play -r 16000 test.raw
play FAIL formats: bad input format for file `test.raw': data encoding was not specified
Ketika saya mencari beberapa informasi 'penyandian', saya merasa itu ada hubungannya dengan arsitektur prosesor Anda, tapi mungkin saya salah. Lagi pula, saya tidak dapat menemukan dokumentasi tentang cara 'bertanya' pada komputer apa data encoding file audio mentah itu. Dan saya juga tahu berapa sample rate, karena mengaturnya sendiri, tapi sejauh yang saya bisa dapatkan.
Jawaban:
Dapat bervariasi — tetapi setidaknya bagi saya, text2wave menghasilkan 1-channel, 16-bit, integer PCM yang ditandatangani. Ini cukup normal — dan itu akan menjadi sangat jelas ketika Anda memilikinya dengan benar (misalnya, jika Anda unsigned-integer karena kesalahan, Anda akan mendapatkan suara yang sangat terdistorsi)
Dengan bermain, itu terlihat seperti:
Parameter ini dikonfigurasi di Festival di suatu tempat, saya kira. Beberapa dari mereka mungkin juga hardcoded.
Satu-satunya hal yang bergantung pada arsitektur yang mungkin Anda temui adalah big vs little endian; pada mesin little-endian saya Festival menulis little-endian; jika saya memindahkan file itu ke mesin big-endian saya mungkin perlu menambahkan
-L
. Jikatext2wav
dijalankan pada mesin big-endian, saya tidak yakin apakah itu akan menulis data big-atau-endian.sumber
Anda mungkin dapat membuat tajuk RIFF Anda sendiri. Sedikit bashing harus melakukannya .. dan taruh saja header ke bagian Anda yang lain ...
Tautan ini menunjukkan tata letak tajuk: Format file Canonical WAVE
Ada juga tautan terkait pada SO: Konversi data audio RAW ke WAV dengan scripting , tetapi jawaban mplayer / mencoder memiliki angka nol yang ditandai. Namun, semoga SoX berfungsi.
SoX disebutkan di kedua tautan di atas, dan tersedia di repo Ubuntu; Saya kira itu pada orang lain juga.
PS ... Saya baru saja mencoba menggunakan
play
(tidak tahu itu ada) dan menemukan itu adalah SoX! ... Tautan SO memberikan contoh, disalin di sini:sox -r 44100 -e unsigned -b 8 -c 1 <RAW_FILE> <TARGET_FILE>
Jika Anda tidak dapat membuatnya bekerja dengan sox , mungkin mplayer / mencoder atau header RIFF akan membuatnya sesuai untuk Anda.
sumber
Gunakan
aplay
alih-alihplay
memainkan file mentah, dengan cara ini Anda dapat menentukan bahwa itu adalah audio mentah dengan -t switch:sumber