In our group project I noticed that vokaturi would almost always return the anger emotion. I thought this was weird because in whatever way I tried to convey an emotion it would always return anger. I tried to figure out why this was happening and how it could possibly be fixed.
I recorded some audio data containing me saying a number sequence counting from 1 to 10. Each fragment should contain the last 4 seconds and it records a fragment every 2 seconds, but the recorded data contained some strange behaviour where audio data was not shifted properly.
On a timeline assuming I count a number exactly every second It should look like this:
While the actual results looks like this:
So what is happening is that it takes the previous clip and starts recording over it from the start. This means that there are cut off points where one part of a clip abruptly stops and a different one starts. In other words the audio clip that is meant to be used as a moving buffer is not actually being used as a moving buffer.
The current implementation uses a default unity recording method. To fix this issue a custom way of recording audio has to be implemented. If you would want to fix the current implementation you would probably have to shift bytes yourself which is not ideal and there is probably a library that can do this for you.
What did you learn and what will you do differently next time?
I believe I found the root issue why the recording is not working properly and why vokaturi only gives anger as a result. It is most likely due to that harsh cutoff moment I mentioned that vokaturi probably misinterprets as angry.