4

I have some audio files in different voices (only spoken words there is no music or noise). I am aiming to change all that audios for a one standard voice "man" voice for example

For example:

  • Input : audio file say "Hello World" in Woman/man voice.
  • Output : audio file say the same but in Man voice.

Can that done by Java?

Sam Colorado
  • 51
  • 1
  • 3
  • 1
    so you want a manly voice to wake you up at mornings.. – aran May 14 '13 at 08:19
  • 1
    I am using this files to teach English , The children listen to the voice and they repeat after him. so i don't want use multiple voices because that confuse them. – Sam Colorado May 14 '13 at 09:25
  • Surely you want your children to learn from real human voices, and from male and female voices? I think doing otherwise may be alot of effort for a possibly detrimental (and possibly scary) effect. –  Jun 03 '13 at 23:05

3 Answers3

1

You may have to resolve this in two steps:

  1. You need a Java Speech Recognition tool. I recommend using Sphinx .I've worked with it and it works (not perfect, but it works really well). Take a look at this hello world demo.
  2. You need a Text to Speech tool. I highly recommend FreeTTS. By default, there are just 3 male voices avaliable, but it's easy to import female voices. This link will guide you through this proccess. I can see that there is a female voice avaliable there:

FreeTTS also interfaces with the MBROLA synthesizer and can use MBROLA voices. There are three US English MBROLA voices available:

> 16kHz female (mbrola1) 16kHz male (mbrola2) 16kHz male (mbrola3)

aran
  • 10,978
  • 5
  • 39
  • 69
  • Thank you, Just to make sure, you mean that i have to convert Speech-to-text then reverse Text-to-speech ?"Good Idea" is that the only way? can i do it direct speech-to-speech? – Sam Colorado May 14 '13 at 10:04
  • Yes, the idea is a double conversion, from speech to text, then text to speech. I know it's a little frustrating, but I don't really think there are any speech-to-speech tools for Java. It's not really practical to have such software, comparing to text to speech or speech to text programs. Because of this, you may have to use them to achieve what you are trying for ; ) – aran May 14 '13 at 10:09
  • thank you for helping :). if you are good in this , can you send me a demo code for this idea ?! or its difficult to implement ? thank you again :) – Sam Colorado May 14 '13 at 17:47
0

I think it depends on what you want to do.

I think you can manipulate the sounds by using a synthesizer. Java does have a synthesizer class using Java MIDI. You may want to look at this.

http://docs.oracle.com/javase/tutorial/sound/MIDI-synth.html

Brian P
  • 356
  • 2
  • 11
0

There are algorithms to perform voice conversion, but I doubt they are implemented in Java. A good voice conversion scripts are part of the http://festvox.org/ text-to-speech synthesis system.

Still, the result of the conversion is not very natural. The converted voice doesn't fully sound like human, it contains noises, intonation is not always natural and so on and so forth. I sincerely recommend you to consider using human voices for teaching.

Nikolay Shmyrev
  • 24,897
  • 5
  • 43
  • 87