This is great, nice job! I'm working on a midi player in JavaScript; it would be interesting to use this as the sound font. Maybe assigning certain words to certain pitches. https://github.com/grimmdude/MidiPlayerJS
JavaScript singing synthesis library
11–20 of 29 posts
Re: JavaScript singing synthesis library
#12Cute as a Javascript hack, but not going to compete with Vocaloid or Festival Singer. Somebody really needs to crack singing synthesis. Vocaloid from Yamaha is good, but it works by having a live singer sing a prescribed set of phrases, which are then reassembled. Automatic singer generation is needed. Figure out some way to use machine learning to extract a singer model from recorded music and generate cover songs a…
Modeling singers using machine learning would be really neat; I'm not too hip to the current research around that, although the idea brings to mind WaveNet [1], which seems like it'd be absolutely fascinating to try with pitched audio / using musical parameters.
[0] http://webaudio.gatech.edu/
[1] https://deepmind.com/blog/wavenet-generative-model-raw-audio...
Re: JavaScript singing synthesis library
#13Re: JavaScript singing synthesis library
#14Re: JavaScript singing synthesis library
#15This is great, nice job! I'm working on a midi player in JavaScript; it would be interesting to use this as the sound font. Maybe assigning certain words to certain pitches. https://github.com/grimmdude/MidiPlayerJS
Re: JavaScript singing synthesis library
#16Re: JavaScript singing synthesis library
#17Way back in the mid-1980s in the United Kingdom, and there were few places more 80s than that, Superior Software produced Speech!, a software speech synthesis program for the BBC Micro, a 6502-based machine running at 2MHz which didn't have PCM audio. It could reasonably reliably read out ordinary English text in a fairly robotic voice.
It was 7.5kB of 6502 machine code.
There's a writeup from the author here: http://rk.nvg.ntnu.no/bbc/doc/Speech.html and a demo here: https://www.youtube.com/watch?v=t8wyUsaDAyI
It was an utter sensation (featuring, among other places, as the computer voice in Roger Waters' Radio Kaos).
It's obviously not going to win awards, being barely intelligable, but if you can achieve that with a table of 49 phonemes each of 128 4-bit samples, then producing basic speech isn't that hard. I think that mespeak.js, which is what this demo is based on (which is pretty cool, BTW) is based on the same principle, although with obviously better samples.
(Unlike producing human sounding speech, which is appalling difficult.)
Re: JavaScript singing synthesis library
#18Re: JavaScript singing synthesis library
#19On Safari, instead of using the normal "AudioContext" constructor you must create a "webkitAudioContext"- a feature detection check for this would be a nice addition.
---
Thanks for this; I've fixed that issue and started on getting it compatible with Safari, but turns out there are some other errors regarding Float32Array mapping and support for AudioBuffer.copyToChannel(). I'll have to look more into this, but rest assured I'll push the changes when I get it working in Safari!