English Amiga Board

Go Back   English Amiga Board > Coders > Coders. General

Thread Tools
Old 21 August 2011, 18:30   #1
Registered User

Dunny's Avatar
Join Date: Aug 2006
Location: Scunthorpe/United Kingdom
Posts: 1,085
Speech Synthesis (SAY)

Hi all -

As some of you are probably aware, I'm currently writing my own BASIC interpreter, SpecBAS. One thing that the Amiga's OS had that I would like to add is a speech synthesiser!

So my request is - is there any documentation of how the SAY command worked - not the actual "BASIC Manual" kind of docs, but how it actually did its job - does it use an algorithm to generate the speech, does it use samples, how was the syntax of the SAY command parsed and interpreted etc. As it was part of the ROM, I'm guessing that minimal use of samples was employed due to space restrictions?

Anyone got any pointers?

Dunny is offline  
Old 21 August 2011, 19:00   #2
Music lord
FromWithin's Avatar
Join Date: Jun 2003
Location: Liverpool, UK
Age: 44
Posts: 595
Send a message via ICQ to FromWithin Send a message via AIM to FromWithin Send a message via MSN to FromWithin Send a message via Yahoo to FromWithin
Can't tell if the original version worked exactly the same way, but the synthesis was created by Softvoice Inc..

"The SoftVoice system is built around the concept of formant synthesis in which we mathematically model the human speech production mechanism and, in particular, the acoustic resonances (formants) of the vocal tract. As opposed to the time-domain methods (demi-syllable, diphone, etc.) in which pre-recorded pieces of speech are spliced together, formant synthesis is not restricted to a single sounding (or minimally modifiable) vocal personality, nor is it constrained to a narrow pitch range. With the SoftVoice system, users can customize vocal personalities to suit their individual needs, everything from a singing choir boy to a menacing Martian. In addition, the SoftVoice formant synthesis algorithm, being continuous and splice free, does not suffer from such artifacts as glitches, gurgling, false consonants, chorusing, etc. that reduce intelligibility and increase listener fatigue."

The above description applies to version 5 of the synthesis (Amiga was probably version 1). But it's likely to be doing formant synthesis in the same way with some form of algorithm based on the user voice parameters for generating the root waveform to apply the filters to. The examples on their page sound pretty similar to the Amiga synthesis.

Format synthesis is pretty easy. You basically have three band-pass filters applied in parallel to the root waveform. In various frequency ratios, they make the "aaa", "eeee", etc. sounds. If you record yourself going "aaaaa" and have a look at the spectral graph of it, you'll clearly see the format peaks. You could record yourself making different vowel sounds and soft consonants and note down the format frequencies. Apply the band-pass filters at those same frequencies to any old waveform will make it sound like that letter/sounds. Slide the frequencies around to smoothly transition between different vowels. Alternatively, of course, you can do it without filters and just add together sine waves at the right frequencies. Then you need to apply bits of noise in the right place for stuff like "s", "f", "t" and all that.

Last edited by FromWithin; 21 August 2011 at 19:27. Reason: More info
FromWithin is offline  
Old 22 August 2011, 11:50   #3
Registered User
Join Date: Sep 2010
Location: Croydon, UK
Posts: 46
Look at Espeak.

Espeak is an open source speech synthesizer that uses formant synthesis just like say/narrator.device.

There are a number of other ones, such as Festival (which is huge, but there's a trimmed down one called Festival Lite), Mbrola and others that are also available for free and/or open source.
vidarh is offline  
Old 22 August 2011, 12:01   #4
Registered User
thomas's Avatar
Join Date: Jan 2002
Location: Germany
Posts: 5,710
Originally Posted by Dunny View Post
As it was part of the ROM
It's not part of the ROM. Say is a frontend for translation.library and narrator.device. Both are disk-based.

In WB 1.3 there was also speak-handler and the SPEAK DOS device. Text copied to this device was converted into speech by the same interface.
thomas is offline  
Old 01 September 2011, 22:22   #5
Photon's Avatar
Join Date: Nov 2004
Location: Hult / Sweden
Posts: 4,589
Yep, 'just' use narrator.device. Docs should be in Libraries & Devices, online at amigadev.elowar.com.
Photon is offline  

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Network: Synthesis install improvements nemazoty Games images which need to be WHDified 5 23 June 2018 13:33
Say speech synthesizer question robinhood2013 New to Emulation or Amiga scene 6 24 May 2013 01:04
Commodore Amiga 500 Text to Speech Synthesis... HELP PLEASE?! nzdj New to Emulation or Amiga scene 21 04 March 2010 20:07
Miggy, games and synthesis Mr Softy Amiga scene 13 26 February 2003 00:51
Mortville Manor voice synthesis RocketMack support.Games 2 17 January 2002 04:39

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +2. The time now is 01:12.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2018, vBulletin Solutions Inc.
Page generated in 0.06558 seconds with 15 queries