Convert stereo to mono in read_audio_file #292
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When trying to train an HMM with your library, I got an error in ShortTermFeatures.py function energy_entropy. It seems that you were assuming that the audio is mono, not stereo, in the line below.
ShortTermFeatures.py, Line 35
frame_length = len(frame)
If the audio is stereo, then frame_length is not equal to the total number of elements in frame, as there are two channels. For example frame_length is 2400 but the frame shape is (2400, 2).
Here is why that was problematic. When I tried running my stereo .wav file through the HMM program, it failed at the following line.
ShortTermFeatures.py, Line 35
sub_wins = frame.reshape(sub_win_len, n_short_blocks, order='F').copy()
To fix this, I changed function read_audio_file audioBasicIO.py, so that it converts stereo to mono by taking the mean of the two channels. This fixed my problem for me, and I hope it will for other people too :)