Aizayousaf
Aizayousaf

Reputation: 49

Opensmile: unreadable csv file while extracting prosody features from wav file

I am extracting prosody features from an audio file while using Opensmile using Windows version of Opensmile. It runs successful and an output csv is generated. But when I open csv, it shows some rows that are not readable. I used this command to extract prosody feature:

SMILEXtract  -C \opensmile-3.0-win-x64\config\prosody\prosodyShs.conf -I audio_sample_01.wav -O prosody_sample1.csv

And the output of csv looks like this:

[output of above mentioned command for prosody deatures1

Even I tried to use the sample wave file given in Example audio folder given in opensmile directory and the output is same (not readable). Can someone help me in identifying where the problem is actually? and how can I fix it?

Upvotes: 1

Views: 998

Answers (2)

Moody
Moody

Reputation: 31

This is how I solved the issue. First I added the csvSink component to the list of the component instances. instance[csvSink].type = cCsvSink

Next I added the configuration parameters for this instance.

[csvSink:cCsvSink]
reader.dmLevel = energy
filename = \cm[outputfile(O){output.csv}:file name of the output CSV 
file]
delimChar = ;
append = 0
timestamp = 1
number = 1
printHeader = 1
\{../shared/standard_data_output_lldonly.conf.inc}`

Now if you run this file it will throw you errors because reader.dmLevel = energy is dependent on waveframes. So the final changes would be:

[energy:cEnergy]
reader.dmLevel = waveframes
writer.dmLevel = energy

[int:cIntensity]
reader.dmLevel = waveframes

[framer:cFramer]
reader.dmLevel=wave
writer.dmLevel=waveframes

Further reference on how to configure opensmile configuration files can be found here

Upvotes: 1

Marius
Marius

Reputation: 1679

You need to enable the csvSink component in the configuration file to make it work. The file config\prosody\prosodyShs.conf that you are using does not have this component defined and always writes binary output.

You can verify that it is the standart binary output in this way: omit the -O parameter from your command so it becomesSMILEXtract -C \opensmile-3.0-win-x64\config\prosody\prosodyShs.conf -I audio_sample_01.wav and execute it. You will get a output.htk file which is exactly the same as the prosody_sample1.csv.

How output csv? You can take a look at the example configuration in opensmile-3.0-win-x64\config\demo\demo1_energy.conf where a csvSink component is defined.

You can find more information in the official documentation:

Upvotes: 1

Related Questions