Closed richard-broadhurst closed 1 year ago
Thanks for the feedback. I will both update the compile instructions as well as attach a binary in the coming days.
I had a hack around and removed the three libraries, but must have messed something up because I have to set the V and unV gain to ~1000 and it isn't doing a good job of spotting voiced vs unvoiced. I'll wait for your windows exe and see what it produces. Then I am thinking of writing an editor, but can't think of much of an improvement to the one in QBoxPro.
I am planning a significant overhaul of the lower vocal tract analysis algorithms at some point, including pitch estimation and voiced/unvoiced detection.
An editor would be fantastic. One of my goals for this project is to generate vocabulary files that can be flashed to a TMS6100 emulator. That way, you could add custom words to products like the Speak & Spell. Definitely let me know if you want to knock heads on that one.
Anyway, I've got a Windows VM fired up now. Wish me luck!
I'm not 100% sure what QBoxPro does for its editor, but it looks like it remember what each frame would have been if it was voiced or unvoiced so that you can swap them. It may be that just the voiced data is sufficient as the unvoiced seems to be a subset, but if you only have voiced, can you decide if it would be better unvoiced.
Also, it seemed to me that encoding from a higher sample rate source should give better results, but I don't understand the maths.
I'm not very good at UIs to be honest, but really want a way to get the best speech out of the chip!
I've bodged in some MAME code to playback the speech, it is now begging for some sliders and repeated encoding, at least for small phrases.
I've knocked up my first ImGui and ImPlot GUI as the proof of concept for an editor: https://www.dropbox.com/s/2bwoarkuto1ex1e/TMSEnc.zip?dl=0 It is configured for win32 + dx9 and defaults to running the GUI to work with the conversion. If the GUI is enabled (default +useGuiEditor), it currently doesn't save a .5220 file but will if the GUI is disabled (-useGuiEditor) it will but you would need to note the options and the specify them on the cmd line: +/-opt or +/-opt value. Right mouse drag to select in the three graphs, if autoPreview is on (default +autoPreview) and dragging in the samples graph (top) it will play the original and then encoded, while any other changes will just play the encoded. You will see what I mean about having probably broken the conversion with the poor quality and -maxVoicedGainDB 1000 -maxUnvoicedGainDB 950 having to be set 25X what you specify - coincidence that frames are 25ms - I doubt it!
@richard-broadhurst, I have migrated dependency management to CPM. This should allow you to easily compile static versions of libsndfile and libsamplerate, which I suspect were giving you issues before. Please review the cpm_dependencies
branch and let me know if it resolves your issue.
I started to strip out the external libraries and then thought that it would be better if others could have a windows build and any updates.