Last active
April 9, 2020 01:57
-
-
Save slegroux/e4ae2c8b3f1e164adce79eda9af7e365 to your computer and use it in GitHub Desktop.
read/write wave
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
KALDI_LOG << "R/W using kaldi Input/Output"; | |
std::string input_wav_path = "data/ENG_M.wav"; | |
WaveData input_wave; | |
WaveHolder waveholder; | |
Input ki(input_wav_path); | |
waveholder.Read(ki.Stream()); | |
input_wave = waveholder.Value(); | |
cout<<"dur: "<<input_wave.Duration()<<" fs: "<<input_wave.SampFreq()<<endl; | |
Matrix<BaseFloat> input_wave_mat = input_wave.Data(); | |
int n_rows = input_wave_mat.NumRows(); | |
int n_cols = input_wave_mat.NumCols(); | |
//Vector<BaseFloat> input_wave_vec; | |
//input_wave_vec.Resize(n_cols); | |
//input_wave_vec.CopyFromVec(input_wave_mat.Row(0)); | |
Vector<BaseFloat> input_wave_vec(n_cols); | |
input_wave_vec.CopyRowFromMat(input_wave_mat,0); | |
for (int i=0; i<10; i++){ | |
cout<<input_wave_vec(i)<<' '; | |
} | |
cout<<endl; | |
Matrix<BaseFloat> out_matrix(n_rows, n_cols); | |
out_matrix.CopyRowFromVec(input_wave_vec, 0); | |
WaveData out_wave(input_wave.SampFreq(), out_matrix); | |
Output ko("/tmp/test.wav",true, false); | |
out_wave.Write(ko.Stream()); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment