Notice: Trying to access array offset on value of type bool in /mnt/cpcwiki-httpdocs/includes/libs/IPSet.php on line 243

Notice: Trying to access array offset on value of type bool in /mnt/cpcwiki-httpdocs/includes/libs/IPSet.php on line 246

Notice: Trying to access array offset on value of type bool in /mnt/cpcwiki-httpdocs/includes/libs/IPSet.php on line 243

Notice: Trying to access array offset on value of type bool in /mnt/cpcwiki-httpdocs/includes/libs/IPSet.php on line 246

Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /mnt/cpcwiki-httpdocs/includes/diff/DairikiDiff.php on line 434
Difference between revisions of "The Speaker" - CPCWiki
Last modified on 20 May 2026, at 18:27

Difference between revisions of "The Speaker"

m (Usage)
m (Download)
 
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
[[File:SpeakerROM.jpg|thumbnail|Speaker ROM]]
 +
 
== The Speaker ==
 
== The Speaker ==
  
The Speaker is a software speech synthesizer for the Amstrad. It was published as a BASIC listing in French Magazine CPC Infos by Xavier Grossetete in 1991. This was based on a port of the Spectrum Speech program by Superior Software, published in 1986. The Speaker was then retyped by [https://norecess464.weebly.com/news/the-speaker-an-impressive-text-to-speech-program-for-the-amstrad-cpc NoRecess] in 2011 and distributed as a DSK file called -SAY.dsk.
+
The Speaker is a software speech synthesizer for the Amstrad.
  
The original code has been disassembled by [[CPSoft]] and has been converted into a ROM extension format.
+
It was originally written by [https://rk.nvg.ntnu.no/bbc/doc/Speech.html David J. Hoskins]. David describes how he developed the original program for the BBC microcomputer. This was then published as "Speech!" for the Amstrad and Spectrum computers by Superior Software in 1986.
The Z80 assembly source code will also be available to download.
+
  
=== Usage ===
+
It was then republished under the name "The Speaker" in a BASIC listing in French Magazine [https://cpcrulez.fr/applications_music-the_speaker__CNFO.htm CPC Infos] by Xavier Grossetete in 1991.
 +
 
 +
This listing was retyped by [https://norecess464.weebly.com/news/the-speaker-an-impressive-text-to-speech-program-for-the-amstrad-cpc NoRecess] in 2011 and distributed as a DSK file called -SAY.dsk.
 +
 
 +
This original code has been disassembled by [[CPSoft]] and has been converted into a ROM extension format. The Z80 assembly source code is also available to download.
 +
 
 +
== Usage ==
  
 
Add SpeakerROM.rom to a ROM bank on your Amstrad emulator.
 
Add SpeakerROM.rom to a ROM bank on your Amstrad emulator.
  
Type |SPEAK to view the usage instructions.
+
Type |SPHELP to view the usage instructions.
  
|SAY,"HELLO WORLD" - Say a phrase. The program converts the string into phonemes.
+
<code>|SAY,"HELLO WORLD"</code> - Say a phrase. The program converts the string into phonemes.
  
|RAW,"/HEH4/HEH3/HEH2/HEH1/" - Say a phrase without the program converting phonemes.
+
<code>|SPEAK,"/HEH4/HEH3/HEH2/HEH1/"</code> - Say a phrase without the program converting phonemes.
  
|SPEED,1-20 - Alter the speed of the speech
+
<code>|SPEED,1-20</code> - Alter the speed of the speech
  
|CENTRE - Output speech using channel B
+
<code>|CENTRE</code> (or <code>|CENTER</code>) - Output speech using channel B
  
|LEFT - Output speech using channel A
+
<code>|LEFT</code> - Output speech using channel A
  
|RIGHT - Output speech using channel C
+
<code>|RIGHT</code> - Output speech using channel C
  
=== Still to do ===
+
<code>|SPON</code> - Turn on automatic text to speech output (&BB5A jumpblock patched)
 +
 
 +
<code>|SPOF</code> - Turn off automatic text to speech output
 +
 
 +
== Still to do ==
  
* Functions to screen read text should be developed.
 
 
* Investigate if there is a way of outputting speech without disabling interrupts.
 
* Investigate if there is a way of outputting speech without disabling interrupts.
  
=== Download ===
+
== Download ==
  
 
* [[Media:SpeakerROM.zip|Speaker ROM]] - The Speaker Speech Synthesizer in ROM format
 
* [[Media:SpeakerROM.zip|Speaker ROM]] - The Speaker Speech Synthesizer in ROM format
* Speaker ROM source code - Coming soon
+
* [https://www.mimosquest.com/downloads/CreatingTheSpeakerROM.pdf Creating The Speaker ROM] - How I disassembled The Speaker for conversion to ROM
 +
 
 +
Source code for Speaker ROM can be downloaded from [https://github.com/chrisperver/speakerrom GitHub]
  
 
[[Category:Applications]]
 
[[Category:Applications]]
 
[[Category:Music and sound]]
 
[[Category:Music and sound]]

Latest revision as of 18:27, 20 May 2026

Speaker ROM

The Speaker

The Speaker is a software speech synthesizer for the Amstrad.

It was originally written by David J. Hoskins. David describes how he developed the original program for the BBC microcomputer. This was then published as "Speech!" for the Amstrad and Spectrum computers by Superior Software in 1986.

It was then republished under the name "The Speaker" in a BASIC listing in French Magazine CPC Infos by Xavier Grossetete in 1991.

This listing was retyped by NoRecess in 2011 and distributed as a DSK file called -SAY.dsk.

This original code has been disassembled by CPSoft and has been converted into a ROM extension format. The Z80 assembly source code is also available to download.

Usage

Add SpeakerROM.rom to a ROM bank on your Amstrad emulator.

Type |SPHELP to view the usage instructions.

|SAY,"HELLO WORLD" - Say a phrase. The program converts the string into phonemes.

|SPEAK,"/HEH4/HEH3/HEH2/HEH1/" - Say a phrase without the program converting phonemes.

|SPEED,1-20 - Alter the speed of the speech

|CENTRE (or |CENTER) - Output speech using channel B

|LEFT - Output speech using channel A

|RIGHT - Output speech using channel C

|SPON - Turn on automatic text to speech output (&BB5A jumpblock patched)

|SPOF - Turn off automatic text to speech output

Still to do

  • Investigate if there is a way of outputting speech without disabling interrupts.

Download

Source code for Speaker ROM can be downloaded from GitHub