Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

API to break voice into phonemes / synthesize new speech given speech samples?

You know those movies where the tech geeks record someone's voice, and their software breaks it into phonemes? Which they can then use to type in any phrase, and make it seem as if the target is saying it?

Does that software exist in an API Version? I don't even know what to Google.

like image 350
AShelly Avatar asked Aug 11 '11 01:08

AShelly


People also ask

What is speech recognition API?

The speech recognition part of the Web Speech API allows authorized Web applications to access the device's microphone and produces a transcript of the voice being recorded. This allows Web applications to use voice as one of the input & control method, similar to touch or keyboard.

What is the difference between speech synthesis and speech recognition?

Speech synthesis is being used in programs where oral communication is the only means by which information can be received, while speech recognition is facilitating commu- nication between humans and computers, whereby the acoustic voice signals changes in the sequence of words making up a written text.

What is automatic speech recognition system?

Automated speech recognition (ASR) is a technology that allows users of information systems to speak entries rather than punching numbers on a keypad. ASR is used primarily to provide information and to forward telephone calls.


4 Answers

There is no such software. Breaking arbitrary speech into its constituent phonemes is only a partially solved problem: speech-to-text software is still imperfect, as is text-to-speech.

The idea is to reproduce the timbre of the target's voice. Even if you were able to segment the audio perfectly, reordering the phonemes would produce audio with unnatural cadence and intonation, not to mention splicing artifacts. At that point you're getting into smoothing, time-scaling, and pitch correction, all of which are possible and well-understood in theory, but operate poorly on real-world data, especially when the audio sample in question is as short as a single phoneme, and further when the timbre needs to be preserved.

These problems are compounded on the phonetic side by allophonic variation in sounds based on accent and surrounding phonemes; in order to faithfully produce even a low-quality approximation of the audio, you'd need a detailed understanding of the target's language, accent, and speech patterns.

Furthermore, your ultimate problem is one of social engineering, and people are not easy to fool when it comes to the voices of people they know. Even with a large corpus of input data, at best you could get a short low-quality sample, hardly enough for a conversation.

So while it's certainly possible, it's difficult; even if it existed, it wouldn't always be good enough.

like image 77
Jon Purdy Avatar answered Sep 17 '22 03:09

Jon Purdy


SRI International (the company that created Siri for iOS) has an SDK called EduSpeak, which will take audio input and break it down into individual phonemes. I know this because I sat through a demo of the product about a week ago. During the demo, the presenter showed us an application that was created using the SDK. The application gave a few lines of text for the presenter to read. After reading the text, the application displayed a bar chart where each bar represented a phoneme from his speech. The height of each bar represented a score of how well each phoneme was pronounced (the presenter was not a native English speaker, so he received lower scores on certain phonemes compared to others). The presenter could also click on each individual bar to have only that individual phoneme played back using the original audio.

So yes, software exists that divides audio up by phoneme, and it does a very good job of it. Now, whether or not those phonemes can be re-assembled into speech is an open question. If we end up getting a trial version of the SDK, I'll try it out and let you know.

like image 44
David Jones Avatar answered Sep 21 '22 03:09

David Jones


If your aim is to mimic someone else's voice, then another attitude is to convert your own voice (instead of assembling phonemes). It is (surprisingly) called voice conversion, e.g http://www.busim.ee.boun.edu.tr/~speech/projects/Voice_Conversion.htm

like image 21
Itamar Katz Avatar answered Sep 18 '22 03:09

Itamar Katz


The technology is called "voice synthesis" and "voice recognition"

The java API for this can be found here Java voice JSAPI

Apple has an API for this Apple speech

Microsoft has several ...one is discussed here Vista speech

like image 27
stimpy Avatar answered Sep 19 '22 03:09

stimpy