Difference between revisions of "Dk'tronics Speech Synthesizer"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(Links)
 
(38 intermediate revisions by 7 users not shown)
Line 3: Line 3:
 
== Overview ==
 
== Overview ==
  
The DK'tronics speech synthesizer came with the standard handbook which gave instructions for all DK'tronics add-ons. The speech synthesizer also had the classic DK'tronics casing as all their CPC products had, with the exception of a fly-lead which could be connected to the stereo output of the CPC. It also had two mono outputs for the supplied speakers, a volume control on the right hand side and the balance could be adjusted with a small screw-driver through a hole below the volume. Two versions of the synthesizer were available. One where the software was supplied on a cassette and a second version with the software on an internal ROM within the unit. When the ROM version was connected and working properly, it reported the message 'Speech ROM Ver. 1.1' on the screen.
+
The Dk'tronics speech synthesizer came with the standard handbook which gave instructions for all Dk'tronics add-ons.
  
DK'tronics changed suppliers of the speakers more than once, so several different versions of the speakers exist, including one version with a swiveled bracket for wall or desk mounting.
+
The speech synthesizer also had the classic Dk'tronics casing as all their CPC products had, with the exception of a fly-lead which could be connected to the stereo output of the CPC.
 +
 
 +
It also had two mono outputs for the supplied speakers, a volume control on the right hand side and the balance could be adjusted with a small screw-driver through a hole below the volume.
 +
 
 +
Two versions of the synthesizer were available. One where the software was supplied on a cassette and a second version with the software on an internal ROM within the unit.
 +
 
 +
When the ROM version was connected and working properly, it reported the message 'Speech ROM Ver. 1.1' on the screen.
 +
 
 +
Dk'tronics changed suppliers of the speakers more than once, so several different versions of the speakers exist, including one version with a swiveled bracket for wall or desk mounting.
  
 
== Software ==
 
== Software ==
  
 
The software supplied on cassette or ROM gave the user 11 new RSX (bar) commands to manipulate the SPO256
 
The software supplied on cassette or ROM gave the user 11 new RSX (bar) commands to manipulate the SPO256
either directly or using it's 'text to speech' ability (with questionable success). The commands available were:
+
either directly or using it's 'text to speech' ability (with questionable success).
 
+
  
* |SPEAK    - Loaded the ROM software, listed the commands and said the sentence 'DK'tronics speech synthesizer' (badly)
+
The commands available :
* |SPON      - Used to turn on the read buffers interrupt
+
* |SPOF      - You can guess what that one did yourself
+
* |FEED,n    - Feed data directly into the speech buffer (up to 30 comma separated values between 5 and 63)
+
* |FLUS        - Cleared both the speech and text buffers
+
* |SPED,n    - Controls the speed of the text (n being a value between 0 and 15 where 0 is the fastest speed)
+
* |OUTM,1    - Redirected the print command's output to the speech to text converter
+
* |OUTM,2    - Redirect both the print and all other text (List etc.) to the converter
+
* |OUTM,3    - Redirected all text (as with 2), but also printed to the screen in parallel
+
* |LEFT,v      - Reported the available memory left in the buffer (where v is a variable)
+
* |SAY, "x"  - Was the standard command to send text to the synthesizer (where x is the text to be spoken)
+
  
 +
* |SPEAK        - Loaded the ROM software, listed the commands and said the sentence 'DK'tronics speech synthesizer' (badly)
 +
* |SPON          - Used to turn on the read buffers interrupt
 +
* |SPOF          - You can guess what that one did yourself
 +
* |FEED,n        - Feed data directly into the speech buffer (up to 30 comma separated values between 5 and 63)
 +
* |FLUS          - Cleared both the speech and text buffers
 +
* |SPED,n        - Controls the speed of the text (n being a value between 0 and 15 where 0 is the fastest speed)
 +
* |OUTM,1        - Redirected the print command's output to the speech to text converter
 +
* |OUTM,2        - Redirect both the print and all other text (List etc.) to the converter
 +
* |OUTM,3        - Redirected all text (as with 2), but also printed to the screen in parallel
 +
* |LEFT,v        - Reported the available memory left in the buffer (where v is a variable)
 +
* |SAY, "text"  - Was the standard command to send text to the synthesizer (where x is the text to be spoken)
 +
* PRINT "`text`" - PRINT with reversed-single-quotes, works same as |SAY
 +
* The cassette version seems to support only PRINT, the ROM version supports both PRINT and |SAY
  
 
However on the 464 the user was required to assign the text to a variable, whereas 664 and 6128 users could
 
However on the 464 the user was required to assign the text to a variable, whereas 664 and 6128 users could
 
use the command directly:
 
use the command directly:
 
  
 
464                a$="Sample text": |Say, @a$
 
464                a$="Sample text": |Say, @a$
  
 
664/6128        |Say, "Sample text"
 
664/6128        |Say, "Sample text"
 
  
 
Although the speech to text converter was very much a hit and miss affair (some words sounded perfect, whereas other words were barely recognisable), with some careful mis-spelling of words and a little speed manipulation, it was possible to achieve clear and understandable sentences.  
 
Although the speech to text converter was very much a hit and miss affair (some words sounded perfect, whereas other words were barely recognisable), with some careful mis-spelling of words and a little speed manipulation, it was possible to achieve clear and understandable sentences.  
  
Another method of producing speech without loading the software, was to feed the buffer directly. This could be done by polling the address &FBFE for it to drop below the value 128 and then feeding the buffer directly by outputting a value to the same address. This loop had to be repeated for each value.
+
Another method of producing speech without loading the software, was to feed the buffer directly.
 +
 
 +
This could be done by polling the address &FBFE for it to drop below the value 128 and then feeding the buffer directly by outputting a value to the same address.
 +
 
 +
This loop had to be repeated for each value.
  
 
The values (known as allophones) where included in a table in the handbook along with examples of common words.
 
The values (known as allophones) where included in a table in the handbook along with examples of common words.
Line 53: Line 65:
  
 
Port FBFEh WRITE:
 
Port FBFEh WRITE:
   bit7-6 Reserved (must be zero)
+
   bit7-6 Not used (should be zero)
 
   bit5-0 Allophone number
 
   bit5-0 Allophone number
 +
* A new allophone number can be send when Status.Bit7=0.
 +
* Only lower 6bit of databus are connected in the dk'tronics version.
 +
* The remaining upper 2bit are GNDed via a 0 Ohm resistor.
 +
 +
For details on the speech chip, see:
  
 
* [[SP0256]]
 
* [[SP0256]]
Line 62: Line 79:
 
* [[SP0256 Pin-Outs]]
 
* [[SP0256 Pin-Outs]]
  
The interface does NOT contain an oscillator, instead, it is probably driven by the 4MHz signal on the expansion port (?). Thus producing shorter sounds with higher pitch as when using the recommended 3.12MHz oscillator.
+
The interface does NOT contain an oscillator.
  
Note: The |SPED command inserts a crude software-delay between the separate allophones (ie. it is NOT a hardware-feature that changes OSC1/OSC2 clock speed or so).
+
Instead, OSC1 (SP0256 Pin27) is wired to the CPC's 4MHz clock signal (Expansion port Pin50).
  
== Supported Games ==
+
Thus producing shorter sounds with higher pitch as when using the recommended 3.12MHz oscillator.
  
* Jumpjet (Anirog Software)
+
Note: The |SPED command inserts a crude software-delay between the separate allophones (ie. it is NOT a hardware-feature that changes OSC1/OSC2 clock speed or so).
  
== Other speech synthesisers for the CPC ==
+
== Software support ==
 +
=== Games ===
 +
* [[Alex Higgens World Pool]]
 +
* [[Jump Jet]] (Anirog Software)
 +
* [[Roland in Space]]
  
* [[Amstrad SSA-1 Speech Synthesizer]]
+
=== Serious Software ===
* [[TMPI speech synthesizer]] (TechniMusique)
+
* [[FutureOS]] (limited support)
  
 
== Pictures ==
 
== Pictures ==
  
<gallery caption="dk'tronics Speech Synthesizer">
+
<gallery caption="dk'tronics Speech Synthesizer (Boxed)">
  
 
Image:Dk tronics speech 1.JPG|
 
Image:Dk tronics speech 1.JPG|
Line 85: Line 106:
 
</gallery>
 
</gallery>
  
<gallery caption="dk'tronics Speech Synthesizer (ROM Version)">
+
<gallery caption="dk'tronics Speech Synthesizer (cassette)">
 +
 
 +
Image:Speech Software Tape - side B (Dk'Tronics).jpg|Fast Side
 +
Image:Speech Software Tape - side A (Dk'Tronics).jpg|Slow Side
 +
 
 +
</gallery>
 +
 
 +
<gallery caption="dk'tronics Speech Synthesizer (464 ROM Version)">
  
 
Image:30-08.2009 001.jpg|
 
Image:30-08.2009 001.jpg|
Image:30-08.2009 002.jpg|
 
Image:30-08.2009 003.jpg|
 
Image:30-08.2009 004.jpg|
 
Image:30-08.2009 005.jpg|
 
Image:30-08.2009 006.jpg|
 
Image:30-08.2009 007.jpg|
 
 
Image:30-08.2009 008.jpg|
 
Image:30-08.2009 008.jpg|
Image:30-08.2009 009.jpg|
 
Image:30-08.2009 010.jpg|
 
Image:30-08.2009 011.jpg|
 
Image:30-08.2009 012.jpg|
 
Image:30-08.2009 013.jpg|
 
 
Image:30-08.2009 014.jpg|
 
Image:30-08.2009 014.jpg|
  
 
</gallery>
 
</gallery>
  
<gallery caption="dk'tronics Speech Synthesizer (Normal Version)">
+
<gallery caption="dk'tronics Speech Synthesizer (464 Normal Version)">
  
 
Image:30-08.2009 101.jpg|
 
Image:30-08.2009 101.jpg|
Image:30-08.2009 102.jpg|
 
 
Image:30-08.2009 103.jpg|
 
Image:30-08.2009 103.jpg|
Image:30-08.2009 104.jpg|
 
Image:30-08.2009 105.jpg|
 
Image:30-08.2009 106.jpg|
 
Image:30-08.2009 107.jpg|
 
 
Image:30-08.2009 108.jpg|
 
Image:30-08.2009 108.jpg|
Image:30-08.2009 109.jpg|
+
Image:SpeechSynthesizer_Front.jpg|Front
Image:30-08.2009 110.jpg|
+
Image:SpeechSynthesizer_Back.jpg|Back
Image:30-08.2009 111.jpg|
+
Image:SpeechSynthesizer_Left.jpg|Left
Image:30-08.2009 112.jpg|
+
Image:SpeechSynthesizer_Right.jpg|Right
 +
Image:SpeechSynthesizer_Top.jpg|Top
 +
Image:SpeechSynthesizer_PCB_Top.jpg|PCB Top
 +
Image:SpeechSynthesizer_PCB_Bottom.jpg|PCB Bottom
 +
</gallery>
  
 +
<gallery caption="dk'tronics Speech Synthesizer (6128 ROM Version)">
 +
Image:DKSPEECH_6128_Top.jpg|Top
 +
Image:DKSPEECH_6128_Front.jpg|Front
 +
Image:DKSPEECH_6128_Back.jpg|Back
 +
Image:DKSPEECH_6128_PCB_Top.jpg|PCB Top
 +
Image:DKSPEECH_6128_PCB_Bottom.jpg|PCB Bottom
 
</gallery>
 
</gallery>
 +
* Note: The unit pictured has a 32Kb Eprom but the rom contents are the same as the one in the downloads below, but repeated twice.
 +
<br>
 +
* [[Dk'tronics Speech More Images|More Images and Close-up Views]]
  
== Downloads ==
+
== Reviews ==
  
* [[media:DKSPEECH.ROM‎|DK'Tronics Speech ROM]]
+
* Review on Page 11 in [[Amstradbladet 1985, Issue 3]] (Danish)
 +
* Advert/Announcement in [[:File:Amstrad Computer User8503 021.jpg|ACU March 1985]]
  
* [[file:DKTronics_Speech_Synth_Docs.pdf]] - DK'Tronics User Manual (English)
+
----
  
== Reviews ==
+
<gallery caption="dk'Tronics synth compared to the Amstrad SSA1">
 +
image:Amstrad Computer User8507 014.jpg|(1/3)
 +
image:Amstrad Computer User8507 015.jpg|(2/3)
 +
image:Amstrad Computer User8507 016.jpg|(3/3)
 +
</gallery>
  
On Page 11 in [[Amstradbladet 1985, Issue 3]] (Danish)
+
== Other speech synthesizers for the CPC ==
  
<gallery>
+
* [[Amstrad SSA-1 Speech Synthesizer]] (Amstrad)
image:Amstrad Computer User8507 014.jpg|dk'Tronics synth compared to the Amstrad SSA1
+
* [[MHT Speech Synthesizer]] (MHT Ingenieros)
image:Amstrad Computer User8507 015.jpg
+
* [[TMPI speech synthesizer]] (TechniMusique)
image:Amstrad Computer User8507 016.jpg
+
 
image:Amstrad Computer User8507 017.jpg
+
== Manual ==
</gallery>
+
 
 +
* [[Media:Speech Programming - Edition 2 (Dk'Tronics) Manual.pdf|Speech Programming - Edition 2 (Dk'Tronics) Manual]] (pdf)
 +
* [[Media:DK'Tronics Peripheral - Technical Manual (Edition 1).pdf|DK'Tronics Peripheral - Technical Manual (Edition 1)]] (pdf)
 +
* [[Media:DKTronics_Speech_Synth_Docs.pdf|DKTronics Speech Synth Docs]] (pdf)
 +
 
 +
== Downloads ==
 +
 
 +
* [[Media:Speech Synthesizer (tape) (Dk'Tronics).zip|Speech Synthesizer (tape) (Dk'Tronics).zip]]  (CDT for Emulators)
 +
* [[Media:DKSPEECH.ROM‎|DK'Tronics Speech ROM]] (Amstrad BIOS Extension)
 +
* [[Media:Sp0256-al2-reversed-bit-order.zip|SP0256-AL2 ROM]] ('''caution''' - the bytes in the file are in reversed bit-order, ie. the "Target" values are unreversed, all other opcodes and parameters are reversed)
 +
 
 +
==Links==
 +
 
 +
*{{CPCPower|4724}}
  
[[Category:Hardware]] [[Category:Peripherals]] [[Category:Music and sound]]
+
[[Category:FutureOS]]
 +
[[Category:Manual]]
 +
[[Category:Music and sound]]
 +
[[Category:Peripherals]]

Latest revision as of 08:48, 11 February 2018

Dk'tronics Speech Synthesizer based on SPO256-AL2 chip.

Overview

The Dk'tronics speech synthesizer came with the standard handbook which gave instructions for all Dk'tronics add-ons.

The speech synthesizer also had the classic Dk'tronics casing as all their CPC products had, with the exception of a fly-lead which could be connected to the stereo output of the CPC.

It also had two mono outputs for the supplied speakers, a volume control on the right hand side and the balance could be adjusted with a small screw-driver through a hole below the volume.

Two versions of the synthesizer were available. One where the software was supplied on a cassette and a second version with the software on an internal ROM within the unit.

When the ROM version was connected and working properly, it reported the message 'Speech ROM Ver. 1.1' on the screen.

Dk'tronics changed suppliers of the speakers more than once, so several different versions of the speakers exist, including one version with a swiveled bracket for wall or desk mounting.

Software

The software supplied on cassette or ROM gave the user 11 new RSX (bar) commands to manipulate the SPO256 either directly or using it's 'text to speech' ability (with questionable success).

The commands available :

  • |SPEAK - Loaded the ROM software, listed the commands and said the sentence 'DK'tronics speech synthesizer' (badly)
  • |SPON - Used to turn on the read buffers interrupt
  • |SPOF - You can guess what that one did yourself
  • |FEED,n - Feed data directly into the speech buffer (up to 30 comma separated values between 5 and 63)
  • |FLUS - Cleared both the speech and text buffers
  • |SPED,n - Controls the speed of the text (n being a value between 0 and 15 where 0 is the fastest speed)
  • |OUTM,1 - Redirected the print command's output to the speech to text converter
  • |OUTM,2 - Redirect both the print and all other text (List etc.) to the converter
  • |OUTM,3 - Redirected all text (as with 2), but also printed to the screen in parallel
  • |LEFT,v - Reported the available memory left in the buffer (where v is a variable)
  • |SAY, "text" - Was the standard command to send text to the synthesizer (where x is the text to be spoken)
  • PRINT "`text`" - PRINT with reversed-single-quotes, works same as |SAY
  • The cassette version seems to support only PRINT, the ROM version supports both PRINT and |SAY

However on the 464 the user was required to assign the text to a variable, whereas 664 and 6128 users could use the command directly:

464 a$="Sample text": |Say, @a$

664/6128 |Say, "Sample text"

Although the speech to text converter was very much a hit and miss affair (some words sounded perfect, whereas other words were barely recognisable), with some careful mis-spelling of words and a little speed manipulation, it was possible to achieve clear and understandable sentences.

Another method of producing speech without loading the software, was to feed the buffer directly.

This could be done by polling the address &FBFE for it to drop below the value 128 and then feeding the buffer directly by outputting a value to the same address.

This loop had to be repeated for each value.

The values (known as allophones) where included in a table in the handbook along with examples of common words.

The handbook also included programming examples in both BASIC and Assembly.

Technical

Uses I/O port: #FBFE

Port FBFEh READ:

 N/A    Status 1 (none, SP0256.Pin8 is not connected) ;SBY Pin, Standby
 bit7   Status 2 (0=Ready to Receive Data, 1=Busy)    ;LRQ Pin, Load Request
 bit6-0 Not used (garbage, probably usually high-z)

Port FBFEh WRITE:

 bit7-6 Not used (should be zero)
 bit5-0 Allophone number
  • A new allophone number can be send when Status.Bit7=0.
  • Only lower 6bit of databus are connected in the dk'tronics version.
  • The remaining upper 2bit are GNDed via a 0 Ohm resistor.

For details on the speech chip, see:

The interface does NOT contain an oscillator.

Instead, OSC1 (SP0256 Pin27) is wired to the CPC's 4MHz clock signal (Expansion port Pin50).

Thus producing shorter sounds with higher pitch as when using the recommended 3.12MHz oscillator.

Note: The |SPED command inserts a crude software-delay between the separate allophones (ie. it is NOT a hardware-feature that changes OSC1/OSC2 clock speed or so).

Software support

Games

Serious Software

Pictures

  • Note: The unit pictured has a 32Kb Eprom but the rom contents are the same as the one in the downloads below, but repeated twice.


Reviews


Other speech synthesizers for the CPC

Manual

Downloads

Links