ISD-SR3000 [ETC]
;ISD-SR3000
Embedded Speech Recognition Processor
Adva nc e d Informa tion
EMBEDDED SPEECH RECOGNITION PROCESSOR FOR COMMAND AND
CONTROL APPLICATIONS
The ISD-SR3000 is a complete embedded
speech recognition processor. It consists of a
speech recognition engine, a speech com-
pression engine, and a recording function.
The ISD-SR3000 hardware includes a paral-
lel PISC/DSP core with an optimized instruc-
tion set, a flexible CODEC interface, and a
serial host controller interface.
The speaker-independent commands, the
audio prompts, and the speaker-defined voic-
etags are storedinexternalmemory, allowing
for maximum application flexibility. Typical
storage requirements are 2kB for each pre-
defined command, 2.5kB for each audio
prompt, and 3kB for each voicetag, including
the model, recording, and data. Application
commands are divided into topics (menus),
with active vocabulary size governed by the
size of the external SRAM. A development
system, the ISD-DS3000, is available. The
development system includes tools for com-
piling and sizing commands and prompts, as
well as sample C-code for host control pro-
gram development.
The speech recognition engine uses sophis-
ticated Hidden Markov Models (HMMs),
which enables recognition of continuous
speech and connected digits. An application
consists of speaker-independent commands
(chosen by the application developer), con-
nected digits and speaker-defined com-
mands. The speaker-defined commands
allow users to sore and recognize voicetags
that can be used for custom commands or
name list management. The speaker-defined
commands use the HMMs, providing much
more robust performance compared to con-
ventional speaker-dependent commands.
IDEAL EMBEDDED SPEECH APPLICATIONS
Accessible appliances Automotive command and control
•
•
•
•
•
•
Desktop phones
Home automation
Cordless phones
Information kiosks
•
•
•
•
Cellular car kits
Cellular handsets
Instrumentation control
Internet appliances
IMPORTANT NOTICE: This p roduct c onc e p t a nd sp e c ific a tions a re p re lim ina ry a nd subje c t to c ha ng e without notic e . Ple a se
c onta c t ISD be fore using this inform a tion in a ny p roduc t de sig n.
Se p te mb e r 2000
ISD · 2727 No rth First Stre e t, Sa n Jo se , CA 95134 · TEL: 408/ 943-6666 · FAX: 408/ 544-1787 · http :/ / www.isd .c o m
Introduc tion
ISD-SR3000 PRODUCT FEATURES
Speech Recognition Attributes
•
•
•
Speech recognition processor optimized for command and control applications
All speech recognition processing performed on chip
Supports speaker-independent continuous speech
- Command vocabulary selected from a large (>100k word) dictionary
- Number of commands and voicetags determined by external memory availability
- Multiple topics and finite state grammar supported
- Connected digit recognition with no domain restrictions
Supports speaker defined voicetags
- Phonetic models of user speech input created “on the fly”
- More robust than typical speaker-dependent word models
- Used for phone books and customized commands
•
Recognition always active
- Allows for voice activation with keyword command
for
- Push-to-talk option
battery applications
•
•
Zero power voicetag storage
Hidden Markov Models and triphones used to optimize accuracy while maintaining real-time
recognition
Recognition Processor Attributes
•
•
•
•
•
•
•
Recognition engine optimized for feature extraction and real-time acoustic model search
Interfaces to µ-Law, A-Law or linear voice CODEC
Serial interface to host microcontroller
Single +5V or +3.3V power supply
Current: 40mA (typical) during active recognition
Package: 100-pin QFP
Temperature range: 0 to +70°C
Voice Solutions in Silicon™
ii
Introduc tion
Application Attributes
•
Advanced API enables sophisticated VUI development
- True hands-free control
- Optional activation by voice
- Standard, easy to use interface for voice activated appliances
- Minimizes adaptation time for users
- Accelerated application development by providing standard interface software
•
•
Flexible API provides high level commands suitable for a wide variety of applications
Measure accuracy >99% per digit for connected digit strings
Figure i: Stand-alone Speech Recognition System Diagram
+3.3V
V
CC
EMCS
ADDR
CONT
RESET
BMCS
IOCS
16 Mbit
FLASH/ROM
ISD-SR3000
64kB
SRAM
W26L010A
Speaker
CDOUT
CDIN
D 0-15
Mic Preamp
and Speaker
Amplifier
ADDR 0-15
CCLK
CFSO
CODEC
MC145481
Micro-
phone
MWCLK
MWDIN
MWRQST
MWCS
MWRDY
MWDOUT
Host
Microcontroller
W77LE58
V
SS
Voice Solutions in Silicon™
iii
Table of Contents
Chapter 1—HARDWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-1
1.1
PIN ASSIGNMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-1
1.1.1 Pin-Signal Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-1
1.2
DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-3
1.2.1 Resetting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-3
1.2.2 Clocking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-4
1.2.3 Power-Down Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-5
1.2.4 Power and Grounding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6
1.2.5 Memory Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-7
1.2.6 The Codec Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-7
1.2.7 Expansion Memory Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-11
1.3
SPECIFICATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-19
1.3.1 Absolute Maximum Ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-19
1.3.2 Electrical Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-19
1.3.3 Switching Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-21
1.3.4 Synchronous Timing Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-24
1.3.5 Timing Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-27
Chapter 2—SOFTWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-1
2.1
2.2
OVERVIEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-1
RECOGNITION ENGINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-2
2.2.1 Types of Recognition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
2.2.2 Grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-2
2.2.3 Vocabulary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-3
2.2.4 Language. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-3
2.2.5 Additional Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
2.3
2.4
2.5
INITIALIZATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-4
RECO ENGINE MANAGEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-4
HOST CONTROLLER INTERFACE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-5
2.5.1 Input Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-6
2.5.2 Output Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-6
2.5.3 Signal Use in the Interface Protocol. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-7
2.5.4 Interface Protocol Error Handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-8
2.5.5 Echo Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-8
ISD-SR3000
2.6
2.7
MEMORY INTERFACE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9
CODEC INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9
2.7.1 Supported Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9
2.8
SPEECH OUTPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9
2.8.1 International Vocabulary Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10
2.8.2 Vocabulary Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10
2.8.3 IVS Vocabulary Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11
2.9
THE STATE MACHINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13
2.9.1 Command Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14
2.9.2 Synchronous Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14
2.9.3 Asynchronous Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14
2.9.4 ISD-SR3000 Status and Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-15
2.10
2.11
2.12
2.13
SR3000 PROCESSOR COMMANDS--QUICK REFERENCE TABLE . . . . . . . . . 2-16
COMMAND DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-20
TUNABLE PARAMETERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-64
EXAMPLE OPERATION PROCEDURES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-68
2.13.1 ISD-SR3000 Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-68
2.13.2 Normal Operation Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-68
2.13.3 Add Voice Tag Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-71
Chapter 3—International Vocabulary Support and the IVS Tool . . 3-1
3.1
3.2
3.3
INTERNATIONAL VOCABULARY SUPPORT (IVS). . . . . . . . . . . . . . . . . . . . . . . . 3-1
IVS FEATURES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
THE IVS TOOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
3.3.1 How to use the IVS Tool with the ISD-SR3000 Processor. . . . . . . . . . . . . 3-2
Chapter 4—Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1
4.1
ERROR CODES AND EXPLANATIONS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
1—HARDWARE
ISD-SR3000
Chapter 1—Hardware
1.1
PIN ASSIGNMENT
The following sections detail the pins of the ISD-SR3000 processor. Slashes separate the
names of signals that share the same pin.
1.1.1 PIN-SIGNAL ASSIGNMENT
Table 1-1 shows all the pins and the signals that use them in different configurations. It also
shows the type and direction of each signal.
Figure 1-1: 100-MQFP Package Connection Diagram
100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81
1
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
60
59
58
57
56
55
54
53
52
51
NC
NC
NC
NC
NC
NC
NC
NC
NC
A9
2
NC
3
NC
4
NC
5
VssA
6
X2 / CLKIN
X1 / PLI
WR0 / TST
WR1
7
8
ISD-SR3000
9
NC
NC
A10
NC
NC
NC
D0
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
100-MQFP
Top Vie w
MWRDY
MWDOUT
NC
V
D1
D2
SS
MWRQST
V
V
SS
CC
D3
VCCHI
Vc c
D4
MWCLK
MWDIN
CCLK
CDIN
CFS0
CDOUT
CFS1
RESET
NC
D5
D6
D7
A11
A12
NC
NC
NC
NC
NC
NC
NC
NC
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
Note: Pins marked NC should not be connected.
ISD
1-1
1—HARDWARE
ISD-SR3000
Table 1-1: ISD-SR3000 Pin Signal Assignment
Pin Name Signal Name
Type
Description
Address bits 0 through 16
A(0:15)
CCLK
BMCS
A(0:16)
CCLK
BMCS
BMCS
Output
I/O
Codec Master/slave Clock
Base memory chip select
Output
I/O
BMCS/
ENV1
Base memory chip select
Environment Select
CDIN
CDIN
Input
Output
I/O
Data Input from Codec
CDOUT
CFS0
CFS1
D(0:7)
CDOUT
CFS0
CFS1
D(0:7)
EMCS
Data Output to Codec
Codec 0 Frame Synchronization
Codec 1 Frame Synchronization
Data bits 0 through 7
Output
I/O
Output2
EMCS/
ENV0
Expansion Memory Chip Select
EMCS/
ENV0
ENV0
Input1
Environment Select
MWCLK
MWCS
MWDIN
MWDOUT
MWRDY
MWRQST
RESET
TST
MWCLK
MWCS
MWDIN
MWDOUT
MWRDY
MWRQST
RESET
TST
Input3
Input3
Input3
Output
Output
Output
Input3
Input
MICROWIRE Clock
MICROWIRE Chip Select
MICROWIRE Data Input
MICROWIRE DATA Output
MICROWIRE Ready
MICROWIRE Request Signal
Reset
Test pin
VCC
VCC
Power
Power
Power
3.3 V power supply pin
3.3 V analog circuitry power supply pin
VCCA
VCCA
VCCHI
VCCHI
5 V power supply pin. Connect to VCC if 3.3 V power supply
is used.
VSS
VSS
Power
Power
Ground for on-chip logic and output drivers
Ground for on-chip analog circuitry
VSSA
VSSA
X1
X1
Oscillator Crystal Oscillator Interface
Oscillator Crystal Oscillator Interface
X2/CLKIN
X2
1. TTL1 output signa ls provide CMOS le ve ls in the ste a dy sta te , for sm a ll loa ds.
2. Input during re se t. CMOS le ve l input.
3. Sc hm itt trigge r input.
Voice Solutions in Silicon™
1-2
1—HARDWARE
ISD-SR3000
1.2 DESCRIPTION
This section provides details of the functional characteristics of the ISD-SR3000 processor. It
is divided into the following sections:
•
•
•
•
•
•
Resetting
Clocking
Power-Down Mode
Power and Grounding
Memory Interface
Codec Interface
1.2.1 RESETTING
The RESET pin is used to reset the ISD-SR3000 processor.
On application of power, RESET must be held low for at least tpwr after VCC is stable. This en-
sures that all on-chip voltages are completely stable before operation. Whenever RESET is ap-
plied, it must also remain active for not less than tRST, see Table 1-11 and Table 1-12. During
this period, and for 100 ms after, the TST signal must be high. This can be done with a pull-up
resistor on the TST pins
The value of MWRDY is undefined during the reset period, and for 100 ms after. The microcon-
troller should either wait before polling the signal for the first time, or the signal should be pulled
high during this period.
Upon reset, the ENV0 and ENV1 input pins are sampled to determine the operating environ-
ment. During reset, the EMCS/ENV0 and BMCS/ENV1 pins are used for the ENV0 and ENV1
inputs signals respectively. An internal pull-up resistor sets ENV0 and ENV1 to 1. An external
Ω
5.1k resistor connected to Vss can be used to set them to 0.
After reset, the same pin is used for EMCS.
SYSTEM LOAD ON ENV0
For any load on the ENV0 pin, the voltage should not drop below VENVh. Therefore, applya load
on the ENV0 pin that ensures the voltage does not go below 2.4V.
Figure 1-2 shows a recommended circuit for generating a reset signal when the power is turned
on.
ISD
1-3
1—HARDWARE
ISD-SR3000
Figure 1-2: Recommended Power-On Reset Circuit
V
CC
V
CC
ISD-SR3000
RESET
V
SS
1.2.2 CLOCKING
The ISD-SR3000 processor provides an internal oscillator that interacts with an external clock
source through the X1 and X2/CLKIN pins. Either an external single-phase clock signal or a
crystal oscillator may be used as the clock source.
EXTERNAL SINGLE-PHASE CLOCK SIGNAL
If an external single-phase clock source is used, it should be connected to the CLKIN signal as
shown in Figure 1-3, and should conform to the voltage-level requirements for CLKIN stated in
“Electrical Characteristics”on page 1-19.
Note: the CLKIN signal is not 5V tolerant.
Figure 1-3:External Clock Source
ISD-SR3000
X1
X2/CLKIN
Single -pha se Cloc k Signa l
Cloc k Ge ne ra tor
CRYSTAL OSCILLATOR
A crystal oscillator is connected to the on-chip oscillator circuit via the X1 and X2 signals, as
shown in Figure 1-4.
Voice Solutions in Silicon™
1-4
1—HARDWARE
ISD-SR3000
Figure 1-4:Connections for an External Crystal Oscillator
ISD-SR3000
X2
X1
R1
C2
C1
crysta l
Keep stray capacitance and inductance, in the oscillator circuit, as low as possible. The crystal
resonator, and the external components, should be as close to the X1 and X2/CLKIN pins as
possible, to keep the trace lengths in the printed circuit to an absolute minimum.
You can use crystal oscillators with maximum load capacitance of 20pF, although the oscillation
frequency may differ from the crystal’s specified value.
The following table lists the components in the crystal oscillator circuit.
Table 1-2: Components of Crystal Oscillator Circuit
Component
Values
Tolerance
Crystal Resonator
Resistor R1
4.096MHz
Ω
10M
33pF
5%
Capacitors C1, C2
20%
1.2.3 POWER-DOWN MODE
Power-down mode is useful during a power failure or in a power-saving model when the power
source for the processor is a backup battery or in battery-powered devices, while the processor
is in idle mode.
In power-down mode, the clock frequency of the ISD-SR3000 processor is reduced and some
ofthe processormodules are deactivated. Asa result, the ISD-SR3000 consumesconsiderably
less power than in normal-power mode. Recognition is not active during power-down mode, so
the ISD-SR3000 must return to normal power mode to resume speech recognition.
Note: In power-down mode all the chip select signals, CS0 to CS3, are set to 1. To guarantee that there
is no current flow from these signals to the Flash devices, the power supply to these devices must not be
disconnected
.
The ISD-SR3000 stores voicetags and all memory management information in Flash memory.
When Flash memory is used for memory management, power does not need to be maintained
to the processor to preserve stored voicetags.
To keep power consumption low during power-down mode, the RESET, MWCS, MWCLK and
MWDIN signals should be held above VCC – 0.5 V or below VSS + 0.5 V.
ISD
1-5
1—HARDWARE
ISD-SR3000
1.2.4 POWER AND GROUNDING
POWER PIN CONNECTIONS
The ISD-SR3000 can operate over two supply voltage ranges 3.3V ±10% and 5V ±10%. The
five power supply pins (VCC, VSS, VCCA, VSSA and VCCHI) must be connected as shown in Fig-
ure 1-5 when operating in a 3.3 V environment, and as shown in Figure 1-6 when operating in
a 5V environment. Failure to correctly connect the pins may result in damage to the device.
The capacitor and resistor values are given in Table 1-3.
Table 1-3: Components of Supply Circuit
Component
Resistor R1
Values
Tolerance
Ω
10
5%
CapacitorsC1, C2, C3, C4, C5,
C6, C7
0.1µF
Ceramic
20%
CapacitorsC8, C9, C10, C11,
C12, C13, C14
1µF Tantalum 20%
Figure 1-5:13. 3V Power Connection Diagram
C10
+
3.3V Supply
C6
+
C9
R1
C5
+
C8
C1
V
VSS
97
VCC VCCA
87 86
VCC
95
SS
85
VSSA
VSS
17
76
66
+
VCCHI
VSS
C7
19
20
ISD-SR3000
C13
+
VCC
C11
C4
+
64
V
CC
40
42
VSS
VCC
3.3V Supply
C3
+
C12
Note: all Vcc pins in Figure 1-5 should be connected to a 3.3V supply
Voice Solutions in Silicon™
1-6
1—HARDWARE
ISD-SR3000
Figure 1-6:15V Power Connection Diagram
C10
+
C6
C9
+
R
1
C5
+
C8
C1
V
V
V
V
V
SS
SS
CC
CC CCA
97
95
87
86 85
76
V
SSA
V
SS
17
C14
5 V Supply
+
V
SS
V
CCHI
ISD-SR3000
66
64
C7
19
20
C13
+
V
C11
C4
CC
+
V
CC
40
42
V
V
SS
CC
C3
+
C12
For optimal noise immunity, the power and ground pins should be connected to VCC and the
ground planes, respectively, on the printed circuit board. If VCC and the ground planes are not
used, single conductors should be run directly from each VCC pin to a power point, and from
each GND pin to a ground point. Avoid daisy-chained connections. The ISD-SR3000 does not
perform recognition in power-down mode.
When you build a prototype, using wire-wrap or other methods, solder the capacitors directly to
the power pins of the ISD-SR3000 processor socket, or as close as possible, with very short
leads.
1.2.5 MEMORY INTERFACE
The ISD-SR3000 supports flash or ROM devices for storing voicetags, vocabulary, prompts,
and acoustic models, such that power can be removed from the system without any data loss.
The ISD-SR3000 supports AMD-compatible parallel flash devices, depending upon the re-
quired amount of memory. The recommended flash size is 16Mb, but larger sizes may be re-
quired for some applications. Organization can be 1Mb X 16 or 2Mb X 8. The recommended
device is Am29LV160D, which is organized as 1Mb X 16, and operates on a 3V power supply.
1.2.6 THE CODEC INTERFACE
The ISD-SR3000 provides an on-chip interface for analog and digital telephony, supporting
master and slave CODEC interface modes. In master mode, the ISD-SR3000 controls the op-
eration of the CODEC for use in analog telephony or stand-alone applications. In the slave
mode, the ISD-SR3000 CODEC interface is controlled by an external source. This mode is
ISD
1-7
1—HARDWARE
ISD-SR3000
used in digital telephony (i.e., ISDN or DECT lines). The slave mode is implemented with re-
spect to IOM-2TM/CGI specifications.
See Table 1-4 for CODEC options for the ISD-SR3000 (ISD supports compatible CODECS in
addition to those listed below).
The CODEC interface supports the following features:
•
•
•
•
•
•
•
•
Master Mode or Slave Mode.
8- or 16-bit channel width.
Long (variable) or short (fixed) frame protocol.
Single or double bit clock rate.
Single or dual channel CODECS
One or two CODECS
Multiple clock and sample rates.
One or two frame sync signals
This CODEC interface uses five signals: CDIN, CDOUT, CCLK, CFSO, and CFS1. The CDIN,
CDOUT, CCLK, and CFSO pins are connected to the first CODEC. The second CODEC (for
speakerphone applications) is connected to CDIN, CDOUT, CCLK, and CFS1 pins. Data is
transferred to the CODEC (for speakerphone applications) through the CDOUT output pin.
Data is read from the CODEC through the CDIN input pin. The CCLK and CFSO pins are output
in Master mode and input in Slave mode. The CFS1 is an output pin.
SHORT FRAME PROTOCOL
When the short frame protocol is configured, eight or sixteen data bits are exchanged with each
CODEC in each frame (i.e., the CFSO cycle). Data transfer begins when CFSO is set to 1 for
one CCLK cycle. The data is then transmitted, bit by bit, via the CDOUT pin. Concurrently, the
received data is shifted in through the CDIN pin. Data is shifted one bit per CCLK cycle. After
the last bit has been shifted, CFS1 is set to 1 for one CCLK cycle. Then, the data from the sec-
ond CODEC is shifted out via CDOUT, concurrently with the inward shift of the data received
via CDIN.
LONG FRAME PROTOCOL
When long frame protocol is configured, eight or sixteen data bits are exchanged with each CO-
DEC, as for the short frame protocol. However, for the long frame protocol, data transfer starts
by setting CFSO to 1 for eight or sixteen CCLK cycles. Short or long frame protocol is available
in both Master and Slave modes.
Voice Solutions in Silicon™
1-8
1—HARDWARE
Manufacturer
ISD-SR3000
Table 1-4: Typical Supported CODEC Devices
CODEC Device
Name
Operating
Voltage
Characteristics
Single CODEC
Conversion Type
National
TP3054
5V
µ-Law
Semiconductor
OKI
MSM7533V
MX93002FC
T7503
Dual CODEC
Dual rail CODEC
Dual CODEC
Single CODEC
5V
5V
5V
3V
µ-Law, A-Law
µ-Law
Macronix
Lucent
Motorola
µ-Law
MC145481
µ-Law
Channel Width
The CODEC interface supports both 8-bit and 16-bit channel width in Master and Slave modes.
Figure 1 shows how the CODEC interface signals behave when short frame protocol is config-
ured.
Slave Mode
The ISD-SR3000 supports digital telephony applications including DECT and ISDN by provid-
ing a Slave mode of operation. In Slave mode operation, the CCLK signal is input to the SR-
3000 and controls the frequency of the CODEC interface operation. The CCLK may be any fre-
quency between 500kHz and 4MHz. Both long and short frame protocols are supported with
only the CFS1 output signal width affected. The CFSO input signal must be a minimum of one
CCLK cycle.
In slave mode, a double clock bit rate feature is available as well. When the CODEC interface
is configured to double clock bit rate, the CCLK input signal is divided internally by two and the
resulting clock used to control the frequency of the CODEC interface operation.
Table 1-5: Typical CODEC Applications
Long/
Short
Frame
Channel
Width
(No.Bits)
No. of
Frame
Syncs
CODEC
Type Channels Slave
No. of
Master/
CCLK Freq. Sample
Application
Bit Rate
(MHz)
Rate (Hz)
Protocol
Analog
single
single
1
1
Master
8
short or
long
1
1
2.048
8000
8000
1
1
µ-Law
Linear
Master 16
short
2.048
ISD
1-9
1—HARDWARE
ISD-SR3000
Figure 1-7:1Codec Protocol-Short Frame—8-Bit Channel Width
Voice Solutions in Silicon™
1-10
1—HARDWARE
ISD-SR3000
1.2.7 EXPANSION MEMORY ADDRESSING
FUNCTIONAL OVERVIEW
The ISD-SR3000 requires memory subsystems with enhanced physical address space and a
paging scheme. The typical memory requirement for the system is 2Mbytes of ROM to store
the application database, and an additional 64Kbytes of SRAM to enable the software to per-
form sophisticated search on the database.
The diagram below describes the connection of the ISD-SR3000 to external memory space of
2Mbytes. This connection is typical for a recognition application. The external ROM holds the
acoustic models (1Mbyte). The flash holds all the topics tables (vocabulary), speech prompts,
and voicetag recordings that support the specific application (1Mbyte). The SRAM is used by
the ISD-SR3000 as extension for the memory and is used to carry out the HMM algorithm
(64Kbytes).
Figure 1-8: ISD-SR3000 connection for external memory space of 2Mbytes
Note: If the application does not support user-created voicetags, the Flash can be replaced with a ROM.
ISD
1-11
1—HARDWARE
ISD-SR3000
BLOCK DIAGRAM
Figure 1-9: Address Extension Lines Block Diagram
Bi directional
Data bus
D0-D7
Data
Write
Direction
selector
D0-D7
Data
Read
R
Local PaDgine bRusegister
Dou0t bus
/
W#
1
W
E
2
AF0
AF1
AF2
AF3
AF4
D0-D7
D
Sel
e
c
o
d
i
n
g
L
D0-D7
Local PaDgine bRusegister
Dou1t bus
1
8
X
4
to
1
M
U
X
W
E
8
X
4
to
1
M
U
X
D0-D7
IOCS
Active Low
D0-D7
low
A1-A7
Local PaDgine bRusegister
Dou2t bus
CFEN0
1
W
E
A16/DDin
CFEN1
D0-D7
CFEN2
D0-D7
Local PaDgine bRusegister
Dou3t bus
15
A
1
o
g
i
W
E
CSINTROM
EMCS
D0-D7
Se
4
c
2
Delay N
WR0
WR
EMWR
Delay N
1
1
#
W
Voice Solutions in Silicon™
1-12
1—HARDWARE
ISD-SR3000
INTERFACE SIGNALS
Table 1-6:1ISD-SR3000 Extended Address Lines Interface Signals
Signal Name
Type
Source Unit/Signal
Description
D[7:0]
I/O
ISD-SR3000
Data Bus
Address Bus
A[7:1]
IOCS
I
I
ISD-SR3000
ISD-SR3000
I/O Expansion Chip Select to
access the I/O registers
EMCS
I
I
ISD-SR3000
ISD-SR3000
Expansion Memory Chip select
DDIN / A16
Serve as direction in I/O operation
of SR3000; otherwise is bit 16 of
address bus
A15
I
I
ISD-SR3000
ISD-SR3000
Address line
WR[0:1]
AF[4:0]
Write signal for external memory
Extended Address bus
O
To external Extended
memory
CFEN
O
O
O
O
O
To external Extended
memory
Extended Memory CS could use
for Flash CS
CREN
To external Extended
memory
Extended Memory CS could use
for ROM CS
CSEN
To external Extended
memory
Extended Memory CS could use
for RAM CS
EMWR
CSINTROM
To external Extended
memory
Write signal to external SRAM
To internal ROM
Chip select for internal ROM
(Added ROM for DSPM)
ISD
1-13
1—HARDWARE
ISD-SR3000
INTERNAL DESCRIPTION
Detailed Description
The Memory Extension unit contains four page registers to perform memory decoding and con-
trol functions, memory mapping and paging.
The page registers are mapped into the I/O Expansion space defined by an active IOCS signal
(*Addresses TBD*)
from the ISD-SR3000. Only address lines A1-A7 are used, while A16 be-
comes DDIN (data direction signal; low for reads). The registers are both writable and readable.
The software accesses the page registers using store or load operations to the respective I/O
ports from the ISD-SR3000. The decoding logic generates the proper signals to write and read
the page registers, which are accessed by the ISD-SR3000 when store and load commands
are executed.
The paging operation works as follows:
•
•
When the ISD-SR3000 accesses the expansion memory space (indicated by EMCS going
active), the decoding logic will select one out of the four page registers, based on the state
of A[16:15].
The contents of the selected page register will be use to generate the proper Chip select
and the extended address lines AF[4:0].
•
•
•
Bits 0 to 4 of the page register connect to AF4 to AF0 respectively.
Chip Select field is bits 5 to 7 and are used to generate the Chip Select lines
The chip select signal CFEN will assert low if and only if the value inside the Page register,
which is driving the bus, has a logic 1 at the bit 5 and the signal EMCS is low.
•
•
•
The chip select signals CFRN will assert low if and only if the value inside the Page register,
which is driving the bus, has a logic 1 at bit 6 and the signal EMCS is low.
The chip select signals CFSN will assert low if and only if the value inside the Page register
which is driving the bus has a logic 1 at bit 7 and the signal EMCS is low.
When bits 5, 6, and 7 on the page register are all at logical 0 and the EMCS is asserted low,
the signal CSINROM is asserted low.
Table 1-7: Paging Operation
Local Page
Register
7
6
5
4
3
2
1
0
CFSN
CFRN
CFEN
AF[4]
AF[3]
AF[2]
AF[1]
AF[0]
The mapping of the address from the ISD-SR3000 to the expansion memory is:
•
•
•
•
Address 0x10000-0x17fff use page register 0.
Address 0x18000-0x1ffff use page register 1.
Address 0x20000-0x27fff use page register 2.
Address 0x28000-0x2ffff use page register 3.
Voice Solutions in Silicon™
1-14
1—HARDWARE
ISD-SR3000
Table 1-8: Address Mapping from ISD-SR3000 to Expansion Memory
Page Reg #0
Page Reg #1
Page Reg #2
Page Reg #3
A15
A16
0
0
0
1
1
0
1
1
The signalEMWR is write strobe to external memory. The external SRAM chip can support byte
or word access. In order to support this mode 3 signals are used: LB to support writing to low
byte of the bus, UB to support writing the high byte of the bus, and WR strobe signal. Since the
ISD-SR3000 block can supply WR[0-1] signal for the low or high byte of the bus , the WR strobe
signal needs to be generated, which is the logical AND operation of the two signals. (for more
details, refer to the Winbond W26L010A data sheet).
Note that the block is operational only if the MCFG register of the ISD-SR3000 is programmed
in extension memory mode, 64K x 16 RAM.
The following figures illustrate the timing of Extended Memory Read and Write cycles. Note the
timing of AF[7:5], which result of the qualification of the respective page register outputs with
the delayed EMCS strobe.
Flow Charts
The software on the SR3000 that uses the SR3000 Extended address unit should do the following:
1.
2.
3.
Set the MCFG.EMC register to 64kbytes x 16 bits RAM mode. Mode 111 at MCFG.EMC.
Set the page register to page xxxxxxxx. For example to the internal ROM use 0x00.
To read or write from external memory use load or store operation from the expansion memory. For the
internal ROM the address should be 0x10000 – 0x17fff.
Unit Register Space
The following registers are accessed at addresses <0xFBF2 - 0XFBF*> in the SR3000 I/O ad-
dress space for write operation and addresses <0xFF9e - 0XFFbe> in the SR3000 I/O address
space for read operation.
ISD
1-15
1—HARDWARE
ISD-SR3000
Table 1-9: Unit Register Space
Register Name
Address
Size
(bits)
Description
R/W
R/W
R/W
R/W
R/W
Reset
Value
Local Page register 0
Local Page register 1
Local Page register 2
Local Page register 3
0xFBF2
0xff8e
8
8
8
8
Page register
Page register
Page register
Page register
0
0
0
0
0xFBF4
0xff9e
0xFBF8
0xffae
0xFBFA
0xffbe
R – read only
W – Write only
R/W read and write
RAC read auto clear for interrupt status registers
Reset Activity
On reset all the registers should be set to their default values 0 and all chip select signals should
be inactive.
Power Save Features
On power down, all chip select signals must be high to ensure minimal power consumption by
the external peripheral.
Voice Solutions in Silicon™
1-16
1—HARDWARE
ISD-SR3000
Timing Diagrams
Figure 1-10: Read operation to externals memory using the SR3000 extended memory unit
ISD
1-17
1—HARDWARE
ISD-SR3000
Figure 1-11: Write operation to externals memory using the SR3000 extended memory unit.
SPECIAL SOFTWARE REQUIREMENTS
Note that the block is operational only if the MCFG register of the SR3000 is programmed in
extension memory mode, 64K x 16 RAM.
MICRO ARCHITECTURE AND DESIGN CONSIDERATIONS
The designshould take intoaccountthatthe some ofsignals are connected to external memory
units. Hence the timing diagram should comply with external parts. Required wait states will be
supported using the EXPANSION MEMORY WAIT STATE mechanism.
Voice Solutions in Silicon™
1-18
1—HARDWARE
ISD-SR3000
1.3 SPECIFICATIONS
1.3.1 ABSOLUTE MAXIMUM RATINGS
° °
-65 C to +150 C
Storage temperature
°
°
Temperature under bias
0 C to 70 C
All input or output
voltages, with respect to
GND
–0.5 V to +6.5 V
1.3.2 ELECTRICAL CHARACTERISTICS
TA = 0°C to +70°C, VCC = 5V ±10%, GND = 0V
Note: Absolute maximum ratings indicate limits beyond which permanent damage may occur. Continuous
operation at these limits is not intended; operation should be limited to the conditions specified below.
Table 1-10: Electrical Characteristics
(All Parameters with Reference to VCC = 3.3V)
Symbol
Parameter
Conditions
Min
Typ
Max
80.0
Units
CX
X1 and X2 capacitance1
Active supply current
17.0
40.0
pF
ICC1
Normal operation
mode, running speech
applications2
mA
ICC2
ICC3
IL
Standby supply current
Normal operation
mode, DSPM idle2
30.0
mA
mA
Power-down Mode Supply Power-down Mode2,3
Current
12
Input Load Current
0 V < VIN < VCC
–5.0
–5.0
5.0
5.0
µA
µA
IO (Off) Output Leakage Current (I/ 0 V < VOUT < VCC
O pins in input mode)
tCASa
CAS Active
After R.E. CTTL, T1 or
T2W3
12.0
12.0
nsec
nsec
tCASh
tCASia
CAS Hold
After R.E. CTTL
0.0
CAS Inactive
After R.E. CTTL, T3 or
TERF
tCASLw DRAM, PDM, CAS Width At 0.8 V, both edges
600.0
tWRa
WR0 Active
After R.E. CTTL, T1
tCTp
/
2 + 2
tWRCSh WR0 Hold after EMCS4
R.E. EMCS R.E. to
R.E. WR0
10.0
ISD
1-19
1—HARDWARE
ISD-SR3000
Symbol
Table 1-10: Electrical Characteristics
(All Parameters with Reference to VCC = 3.3V)
Parameter
WR0 Hold
Conditions
Min
Typ
Max
Units
tWRh
After R.E. CTTL
tCTp/2 –
6
tWRia
WR0 Inactive
After R.E. CTTL, T3
tCTp/
2 + 2
VENVh
VHh
ENV0 Input, high voltage
2.0
2.1
V
V
CMOS Input with
hysteresis, logical 1 input
voltage
VHl
CMOS Input with
hysteresis, logical 0 input
voltage
0.8
V
VHys
VIH
Hysteresis Loop Width1
0.5
2.0
V
V
TTL Input, logical 1 input
voltage
VCC +
0.5
VIL
TTL Input, logical 0 input
voltage
–0.5
2.4
0.8
V
V
V
VOH
Logical 1 TTL, output
voltage
IOH = –0.4 mA
IOH = –50 µA5
VOHWC EMCS Logical 1, output
voltage
VCC
0.2
–
VOL
Logical 0, TTL output
voltage
IOL = 4 mA
IOL = 50 µA5
IOL = 50 µA5
0.45
0.2
V
V
V
VOLWC
EMCS Logical 0, output
voltage
0.2
VXH
VXL
CLKIN Input, high voltage External clock6
CLKIN Input, low voltage
External clock6
2.0
V
V
0.8
5. Gua ra nte e d by de sign.
6. IOUT = 0, T = 25°C, V = 3.3 V for V pins a nd 3.3 V or 5 V on VCCHI pins, ope ra ting from a 4.096
A
CC
CC
MHz c rysta l a nd running from inte rna l me m ory with Expa nsion Me m ory disa ble d.
7. All input signa ls a re tie d to 0 (a bove VCC – 0.5 Vor be low VSS + 0.5 V), e xc e pt ENV0, whic h is tie d to
V
.
CC
8. Me a sure d in powe r-down m ode . The tota l c urre nt drive n, or sourc e d, by a ll the ISD-SR3000 proc e ssor’s
output signa ls is le ss tha n 50 µA.
9. Gua ra nte e d by de sign, but not fully te ste d.
10.CLKIN signa l is not 5V tole ra nt.
Voice Solutions in Silicon™
1-20
1—HARDWARE
ISD-SR3000
1.3.3 SWITCHING CHARACTERISTICS
DEFINITIONS
All timing specifications in this section refer to 0.8V or 2.0V on the rising or falling edges of the
signals, as illustrated in Figure 1-12 through Figure 1-18, unless specifically stated otherwise.
Maximum times assume capacitive loading of 50pF. CLKIN crystal frequency is 4.096MHz.
Note: CTTL is an internal signal and is used as a reference to explain the timing of other signals. See Fig-
ure 1-27
.
Figure 1-12: Synchronous Output Signals (Valid, Active and Inactive)
2.0V
CTTL or
MWCLK
2.0V
Sig na l
0.8V
t
Signa l
Note: Signal valid, active or inactive time, after a rising edge of CTTL or MWCLK.
Figure 1-13: Synchronous Output Signals (Valid)
MWCLK
0.8V
2.0V
Sig na l
0.8V
t
Signa l
Note: Signal valid time, after a falling edge of MWCLK.
ISD
1-21
1—HARDWARE
Figure 1-14: Synchronous Output Signals (Hold), after rising edge of CTTL
ISD-SR3000
2.0V
CTTL
2.0V
0.8V
Sig na l
t
Signa l
Note: Signal hold time, after a rising edge of CTTL.
Figure 1-15: Synchronous Output Signals (Hold), after falling edge of MWCLK
2.0V
MWCLK
2.0V
Sig na l
0.8V
t
Signa l
Note: Signal hold time, after a falling edge of MWCLK.
Figure 1-16: Synchronous Input Signals
2.0 V
CTTL or
MWCLK
2.0 V
0.8 V
2.0 V
0.8 V
Sig na l
t
Se tup
t
Hold
Sig na l
Sig na l
Note: Signal setup time, before a rising edge of CTTL or MWCK, and signal hold time after a rising edge
of CTTL or MWCK
Voice Solutions in Silicon™
1-22
1—HARDWARE
ISD-SR3000
Figure 1-17: Asynchronous Signals
2.0 V
0.8 V
Sig na l A
2.0 V
0.8 V
Sig na l B
t
Signa l
Note: Signal B starts after rising or falling edge of signal A.
The RESET has a Schmitt trigger input buffer. Figure 1-18 shows the input buffer characteris-
tics.
Figure 1-18: Hysteresis Input Characteristics
V
out
V
Hys
V
V
Hh
Hl
ISD
1-23
1—HARDWARE
ISD-SR3000
1.3.4 SYNCHRONOUS TIMING TABLES
In this section, R.E. means Rising Edge and F.E. means Falling Edge.
Table 1-11: Output Signals
Symbol Figure
tAh
Description
Address Hold
Reference Conditions Min (ns) Max (ns)
After R.E. CTTL
After R.E. CTTL, T1
After R.E. CTTL
After R.E. CTTL
After R.E. CTTL
After R.E. CTTL
After R.E. CTTL
0.0
tAv
Address Valid
CCLK Active
9.0
tCCLKa
tCCLKh
tCCLKia
tCDOh
tCDOv
tCTp
12.0
CCLK Hold
0.0
CCLK Inactive
CDOUT Hold
CDOUT Valid
CTTL Clock Period1
12.0
0.0
-2.03
12.0
R.E. CTTL to next R.E.
CTTL
30.5
250,000
tEMCSa
tEMCSh
tEMCSia
tFSa
EMCS Active
EMCS Hold
EMCS Inactive
CFS0 Active
CFS0 Hold
After R.E. CTTL, T2W1
After R.E. CTTL
After R.E. CTTL T3
After R.E. CTTL
After R.E. CTTL
After R.E. CTTL
After R.E. CTTL
12.0
0.0
0.0
12.0
25.0
tFSh
tFSia
CFS0 Inactive
25.0
12.0
tMMCLKa
Master MICROWIRE Clock
Active
tMMCLKh
tMMCLKia
tMMDOh
tMMDOv
Master MICROWIRE Clock
Hold
After R.E. CTTL
After R.E. CTTL
0.0
0.0
Master MICROWIRE Clock
Inactive
12.0
Master MICROWIRE Data Out After R.E. CTTL
Hold
Master MICROWIRE Data Out After R.E. CTTL
Valid
12.0
70.0
tMWDOf
tMWDOh
tMWDOnf
tMWDOv
tMWITOp
tMWRDYa
MICROWIRE Data Float1
MICROWIRE Data Out Hold2
MICROWIRE Data No Float2
MICROWIRE Data Out Valid2
MWDIN to MWDOUT
After R.E. MWCS
After F.E. MWCLK
After F.E. MWCS
After F.E. MWCLK
Propagation Time
After R.E. of CTTL
0.0
0.0
70.0
70.0
70.0
35.0
MWRDY Active
0.0
Voice Solutions in Silicon™
1-24
1—HARDWARE
Symbol Figure
ISD-SR3000
Table 1-11: Output Signals
Description Reference Conditions Min (ns) Max (ns)
MWRDY Inactive
tMWRDYia
tPABCh
After F.E. MWCLK
After R.E. CTTL
0.0
0.0
70.0
PB and MWRQST
PB and MWRQST
tPABCv
After R.E. CTTL, T2W1
12.0
1.
In normal operation mode, tCTp must be 30.5 ns; in power-down mode, tCTp must be 50,000 ns.
2. Guaranteed by design, but not fully tested.
3. Negative hold times are allowed since they are relative to the internal signal CTTL.
Table 1-12: Input Signals
Symbol Figure
Description
CDIN Hold
Reference Conditions
Min (ns) Max (ns)
tCDIh
tCDIs
tDIh
After R.E. CTTL
0.0
25.0
0.0
CDIN Setup
Before R.E. CTTL
Data in Hold (D0:7)
Data in Setup (D0:7)
After R.E. CTTL T1, T3 or TI
tDIs
Before R.E. CTTL T1, T3 or
TI
19.0
tMMDINh
tMMDINs
tMWCKh
tMWCKl
Master MICROWIRE Data
In Hold
After R.E. CTTL
0.0
Master MICROWIRE Data
In Setup
Before R.E. CTTL
At 2.0 V (both edges)
At 0.8 V (both edges)
11.0
MICROWIRE Clock High
(slave)
100.0
100.0
2.5 µs
50.0
MICROWIRE Clock Low
(slave)
tMWCKp
tMWCLKh
tMWCLKs
MICROWIRE Clock Period R.E. MWCLK to next R.E.
(slave)1
MWCLK
MWCLK Hold
After MWCS becomes
inactive
MWCLK Setup
Before MWCS becomes
active
100.0
tMWCSh
tMWCSs
tMWDIh
tMWDIs
MWCS Hold
MWCS Setup
MWDIN Hold
MWDIN Setup
After F.E. MWCLK
Before R.E. MWCLK
After R.E. MWCLK
Before R.E. MWCLK
75.0
100.0
50.0
100.0
ISD
1-25
1—HARDWARE
ISD-SR3000
Table 1-12: Input Signals
Symbol Figure
tPWR
Description
Reference Conditions
After VCC reaches 4.5 V
Min (ns) Max (ns)
30.0 ms
Power Stable to RESET
R.E.2
tRSTw
tXh
RESET Pulse Width
CLKIN High
At 0.8 V (both edges)
At 2.0 V (both edges)
At 0.8 V (both edges)
10.0 ms
tX1p/2 – 5
tX1p/2 – 5
244.4
tXl
CLKIN Low
tXp
CLKIN Clock Period
R.E. CLKIN to next R.E.
CLKIN
1.
Guaranteed by design, but not fully tested in power-down mode.
2. Guaranteed by design, but not fully tested.
Voice Solutions in Silicon™
1-26
1—HARDWARE
ISD-SR3000
1.3.5 TIMING DIAGRAMS
Figure 1-19: SRAM Write Cycle Timing
T3
T1
T2W1
nxT2W
T2
T3
nxT3H
(Note 2)
(Note 3)
(Note 1)
CTTL
A1-16
(Note 5)
Addre ss
t
Av
EMCS
t
t
EMCSa
EMCSia
t
t
EMCSh
EMCSh
t
DCSh
t
WRCSh
(Note 4)
WR0-1
(Note 6)
t
t
WRia
WRa
t
t
WRh
WRh
D0-15
(Note 5)
Da ta Out
t
Dh
t
Dv
t
Df
1. This cycle may be either TI (Idle), T3 or T3H.
2. 0 < n < 7
3. If n = 0, this cycle may be either TI (Idle) or T1 (with a new address) and tDf and tDh are measured from
the R.E. of CTTL in T3.
4. If n = 1, this cycle is T3H, the address bus does not change its value and tDf and tDh are measured from
the R.E. of CTTL in T3H.
5. Depends on which bytes are written.
6. For an 8-bit data bus, address lines are A0-15 and data lines are D0-7
7. WR1 is not available if expansion memory is configured as 8-bit bus RAM.
ISD
1-27
1—HARDWARE
ISD-SR3000
Figure 1-20: SRAM Read Cycle
T3
T1
T2W1
nxT2W
T2
T3
nxT3H
(Note 2)
(Note 3)
(Note 1)
CTTL
Address
A1-16
(Note 5)
t
Av
EMCS
t
t
EMCSia
EMCSa
t
t
EMCSh
EMCSh
WR0-1
(Note 6)
Da ta In
D0-15
(Note 5)
(Note 4)
t
t
DIh
DIs
1. This cycle may be either TI (Idle), T3 or T3H.
2. 0 < n < 7
3. If n = 0, this cycle may be either TI (Idle) or T1 (with a new address). If n = 1, this cycle is T3H, and
address bus does not change its value.
4. Data can be driven by an external device at T2W1, T2W, T2 and T3.
5. For an 8-bit data bus, address lines are A0-15 and data lines are D0-7.
6. WR0 and WR1 are not available if Expansion Memory is configured as ROM. WR1 is not available
if Expansion Memory is configured as 8-bit bus RAM.
Figure 1-21: CODEC Short Frame Timing
t
t
t
t
4xt
CTp
t
t
t
t
4xt
CTp
t
t
t
t
4xt
CTp
t
t
t
t
4xt
t
t
t
t
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTTL
CCLK
t
CCLKa
t
CCLKia
t
t
CCLKh
CCLKh
CFS0/
CFS1
t
FSia
t
FSa
t
t
FSh
FSh
BIT 7
CDOUT
CDIN
t
t
CDOv
CDOv
t
CDOh
BIT 7
t
t
CDIh
CDIs
Note: This cycle may be either TI (Idle), T2, T3 or T3H.
Voice Solutions in Silicon™
1-28
1—HARDWARE
ISD-SR3000
Figure 1-22: CODEC Long Frame Timing
t
t
t
t
4xt
t
t
t
t
4xt
t
t
t
4xt
t
t
t
t
CTp
t
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTTL
CCLK
tCCLKa
tCCLKh
tCCLKia
tCCLKh
CFS0/
CFS1
t
FSia
FSh
t
FSa
t
t
FSh
BIT 7
BIT 0
CDOUT
CDIN
t
t
CDOv
CDOh
BIT 7
Figure 1-23: Slave CODEC CCLK and CFSO Timing
t
CCLKSp
CCLK
t
t
CCLKSl
CCLKSh
CFS0
t
CFS0Ss
t
CFS0Sh
ISD
1-29
1—HARDWARE
ISD-SR3000
Figure 1-24: MICROWIRE Transaction Timing--Data Transmitted to Output
Voice Solutions in Silicon™
1-30
1—HARDWARE
ISD-SR3000
Figure 1-25: MICROWIRE Transaction Timing--Echoed Transmitted to Output
Figure 1-26: Output Signal Timing for MWRQST
(Note)
ISD
1-31
1—HARDWARE
ISD-SR3000
Figure 1-27: CLKIN and CTTL Timing
Figure 1-28: Reset Timing When Reset is not at Power-UP
Voice Solutions in Silicon™
1-32
1—HARDWARE
ISD-SR3000
Figure 1-29: Reset Timing when reset is at power-on
Figure 1-30: Codec Short Frame Timing
t
t
t
t
4xt
CTp
t
t
t
t
4xt
CTp
t
t
t
t
4xt
t
t
t
t
4xt
t
t
t
t
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTTL
CCLK
t
CCLKa
t
CCLKia
t
t
CCLKh
CCLKh
CFS0/
CFS1
t
FSia
t
t
FSa
FSh
t
FSh
BIT 7
CDOUT
CDIN
t
t
CDOv
CDOv
t
CDOh
BIT 7
t
t
CDIh
CDIs
Note: The CCLK and CFS0 timing is shown for Master Mode only. For Slave Mode, see Figure 1-32.
ISD
1-33
1—HARDWARE
ISD-SR3000
Figure 1-31: Codec Long Frame Timing
t
t
t
t
4xt
t
t
t
t
4xt
t
t
t
4xt
t
t
t
t
CTp
t
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTp
CTTL
CCLK
tCCLKa
tCCLKh
tCCLKia
tCCLKh
CFS0/
CFS1
t
FSia
FSh
t
FSa
t
t
FSh
BIT 7
BIT 0
CDOUT
CDIN
t
t
CDOv
CDOh
BIT 7
Note: The CCLK and CFS0 timing is shown for Master Mode only. For Slave Mode, see Figure 1-32.
Figure 1-32: Slave Codec CCLK and CFS0 Timing
t
CCLKSp
CCLK
CFS0
t
t
CCLKSl
CCLKSh
t
CFS0Ss
t
CFS0Sh
Note: For CFS1, CDIN, CDOUT timing, see Figure 1-30 and Figure 1-31.
Voice Solutions in Silicon™
1-34
1—HARDWARE
ISD-SR3000
Figure 1-33: MICROWIRE Transaction Timing--data transmitted to output
ISD
1-35
1—HARDWARE
ISD-SR3000
Figure 1-34: MICROWIRE Transaction Timing--data echoed to output
Voice Solutions in Silicon™
1-36
2—SOFTWARE
ISD-SR3000
Chapter 2—SOFTWARE
2.1
OVERVIEW
In chapter one, the ISD-SR3000 was described as a hardware component in a system. This
system must include a host controller to handle the Voice User Interface layer that controls the
ISD-SR3000. The ISD-SR3000 recognizes words from a pre-defined fixed list and returns them
to the host controller for handling. It is the host controller’s responsibility to decide how to react
to a set of recognized words that has been returned by the recognition engine.
The ISD-SR3000 software resides in the on-chip ROM. It includes speech recognition, speech
compression, system support functions and a software interface to hardware peripherals. The
following sections in this chapter describe, in detail, the ISD-SR3000 interface, operation pro-
cedures, software, tools and commands set.
Figure 2-35: Partitioning of Hardware Components and Software Code
System under control
Host controller
Application VUI
User Application
Softw are
(Voice User Interface)
ISD-SR3000
Recognition
Compression
Voice
CODEC
Audio I/O
Application
specific
firmw are
Hardw are
Memory Elements
Acoustic models
Voicetag storage
Audio prom pts
Vocabulary
ISD
2-1
2—SOFTWARE
ISD-SR3000
2.2
RECOGNITION ENGINE
ISD-SR3000 uses a segmented triphone recognition process. The sampled speech utterance
is split into distinct phonetic sounds, the smallest units of speech. Because these phonemes
vary in both sound and duration, the processor must be able to determine boundaries between
the sounds. The ISD-SR3000 uses Hidden Markov Models to hypothesize boundaries between
sounds and to form probabilistic models on each possible combination.
The outputs are then classified by determining matches between the phonetic sounds and the
stored phoneme models. The acoustic models for the phonemes are gathered from a large
sample of speakers, allowing for a wide variation across accents, dialect, and gender. This al-
lows the recognizer to associate the sound segments with a number of possible phonemes, en-
abling recognition when words are pronounced differently.
The phonemes are then matched to vocabulary words or phrases using a search routine. The
set of phonemes is compared to the vocabulary models for the active topics, and the recognized
word is returned. If the phonemes do not match any of the active vocabulary words, nothing is
returned. The ISD-SR3000 does not return a score with the word; it either recognizes a word,
or it does not.
2.2.1 TYPES OF RECOGNITION
The ISD-SR3000 is capable of both speaker-independent and speaker defined recognition.
The recognition engine is continuous, allowing for multiple word commands and connected dig-
its. However, there must be recognized silence before and after valid utterances. The length of
the silence is programmed into the host controller, and may be as small as 100ms. The com-
mands and digits are speaker-independent, with models constructed from a large corpus of
speakers. The speaker-defined voicetags and commands are partially speaker-dependent.
However, they are constructed by creating acoustic models “on-the-fly” from the phoneme
base. This means only one training pass is required for entering the voicetags, and recognition
is possible with some variation in the way the name is spoken. The first pass is used to create
the phoneme model, and a second pass is used for recognition confirmation.
2.2.2 GRAMMAR
A grammar is used to define the structure of the commands. The ISD-SR3000 is designed to
work with multiple topics or a finite-state grammar. This type of grammar is designed to limit
perplexity (the number of possible branches during recognition) by pre-defining the number of
allowable words at a given state. For example, a prompt that requires a “yes”or “no”response
has a perplexity of two. Greater perplexities increase the chances for substitution errors. During
recognition, a limited number of topics are active. Topics are groups of words that are active at
a given time. For example, in a voice dialing application, digit topics are active after the user
issues the “dial”command. No other topics are open (except the global topics such as “cancel”
or “help”) so that the recognizer is only trying to recognize digits. This type of grammar and ac-
tive topics inherently increases recognition accuracy.
Voice Solutions in Silicon™
2-2
2—SOFTWARE
ISD-SR3000
Figure 2-36: Topic and Grammar Organization
Command Topics
Call
Dial
Store
Delete
Global Topics
Help
Cancel
Go to sleep
Wake up
Answer
Hangup
Mute
Parameters
Name
Digits
Keyword
Change name
On line
Redial
Figure 2-36 shows an example of organizing the commands into menu structure format. From
this example, it can be seen how topics are linked, and how only specific topics are active. This
is a voice dialing command set furnished as ISD’s sample application. Independent VUIs and
vocabulary can be developed, but it is necessary to follow the grammar syntax as shown here.
2.2.3 VOCABULARY
A vocabulary defines the following characteristics of the ISD-SR3000:
•
•
•
Speaker-independent command words and digits for which ISD-SR3000 responds
Topics under which the commands and digits are organized
Mapping of tokens to the vocabulary
ISD-SR3000 is designed to work with an application specific vocabulary set. The total vocabu-
lary size is determined by available external memory. When the processor recognizes the com-
mands, tokens (values) are returned to the host controller. These tokens represent spoken
words. The host controller maintains a lookup table of the available words and their correspond-
ing token numbers. The host controller can use the tokens to accomplish tasks, such as gen-
erating DTMF for dialing a phone number.
ISD supplies recommended vocabulary sets as part of the VUI for specific applications. The vo-
cabulary sets have been carefully selected to ensure high recognition (avoiding words that may
be phonetically confused) and effective user utility. The accuracy specifications for ISD-
SR3000 are based on the ISD provided commands. It is possible to create custom vocabulary
sets for specific applications. Contact ISD for information about vocabulary development tools.
The vocabulary can be stored either in external ROM or Flash memory.
2.2.4 LANGUAGE
ISD-SR3000 uses a set of acoustic models designed to recognize a given language. Currently,
the supported languages are American English and German. Additional languages require dif-
ferent acoustic models. Contact ISD for availability of additional languages.
ISD
2-3
2—SOFTWARE
ISD-SR3000
2.2.5 ADDITIONAL COMPONENTS
MESSAGE
A message is a compressed recording stored in the ISD-SR3000 memory. This message can
be compressed, when using the R (Record Message) command, at 4.7, 6.7 or 8.7kbits/s.
NOISE TOKENS
Each topic can be supplemented with additional tokens that will absorb the ‘out of vocabulary’
words. These tokens can be added upon user request with ISD’s development tools. These to-
kens are not assigned an index number like the other words in the topic table. Once the engine
recognizes a word as a noise token, the ISD-SR3000 returns the noise topic identifier (0xFD)
instead of the current topic.
CEPSTRA VALUES
The cepstra coefficients are responsible for normalizing the voice input channel. The ISD-
SR3000 contains 15 cepstra values starting from index 0.
VOICE TAG
A voice tag is a recorded message of a user-added word. This message can be compressed,
when using the RR (Record for Reco) command, at 4.7, 6.7 or 8.7kbits/s.
2.3
INITIALIZATION
After the system is powered up, it is the host controller’s responsibility to initialize the ISD-
SR3000. This initialization includes: resetting the chip using the RESET signal, configuring the
hardware environment using the CFG command (CODEC and memory types and parameters,
etc.), and issuing the INIT and TUNE commands. The TUNE and CFG commands are required
only if the system settings are different from the ISD-SR3000’s default values.
ISD-SR3000 Initialization
page 2-68
for anexample illustratingthe sys-
Refer to the section
on
tem initialization procedure for the ISD-SR3000.
2.4
RECO ENGINE MANAGEMENT
After the system has been initialized (including setting the vocabulary for the prompts) it is the
host controller’s responsibility to initialize the recognition engine. This includes loading of top-
ics, enabling topics and activating the recognition engine. It is recommended that you load all
the topics if the system memory size enables it, rather then loading and unloading a topic each
time one needs to be enabled.
Voice Solutions in Silicon™
2-4
2—SOFTWARE
ISD-SR3000
Once the recognition engine is initialized, the host controller should wait for the
EV_RECO_QUEUE bit in the status register to be set. When the ISD-SR3000 sets this bit, it
automatically asserts the MWRQST line as an indication for the host controller to read this reg-
ister (by issuing the GSW command). When the host controller has identified this bit, it should
start retrieving the recognized words (noted as topic number and token number) from the ISD-
SR3000 recognition queue buffer using the GNR command. It is the host controller’s responsi-
bility to interpret the incoming words into grammar commands using predefined tables. (These
tables are created by the ISD development tool). When the host controller interprets a valid
command, it can then respond by executing commands such as stopping the recognition en-
gine, playing a prompt or a tone (only after the recognition engine is disabled), changing menus
and topics, adding or deleting user voice tags (a new acoustic word), operating an external de-
vice, etc. The recognition process is half-duplex. When the ISD-SR3000 is playing back audio,
recognition is not active.
Example Operation Procedures
page 2-68
for examples illustrating
Refer to the section
on
the normal operation procedure for the ISD-SR3000 engine and the adding of a voice tag.
2.5
HOST CONTROLLER INTERFACE
MICROWIRE/PLUS™ is a synchronous serial communication protocol that minimizes the num-
ber of connections, and thus the cost, of communicating with peripherals.
The ISD-SR3000 MICROWIRE interface implements the MICROWIRE/PLUS interface in slave
mode, with an additional ready signal. It enables a host controller to interface efficiently with the
ISD-SR3000 processor application.
The host controller is the protocol master and provides the clock for the protocol. The ISD-
SR3000 processor supports clock rates of up to 400kHz. This transfer rate refers to the bit
transfer. The actual throughput is slower due to byte processing by the ISD-SR3000 processor
and the host controller.
Communication is handled in bursts of eight bits (one byte). In each burst the ISD-SR3000 pro-
cessor is able to receive and transmit eight bits of data. After eight bits have been transferred,
an internal interrupt is issued for the ISD-SR3000 processor to process the byte, or to prepare
another byte for sending. In parallel, the ISD-SR3000 processor sets MWRDY to 1, to signal
the host controller that it is busy with the byte processing. Another byte can be transferred only
when the MWRDY signal is cleared to 0 by the ISD-SR3000 processor. When the ISD-SR3000
processor transmits data, it expects to receive the value 0xAA before each transmitted byte.
The ISD-SR3000 processor reports any status change by clearing the MWRQST signal to 0.
If processor command’s parameter is larger than one byte, the host controller transmits the
Most Significant Byte (MSB) first. If a return value is larger than one byte, the ISD-SR3000 pro-
cessor transmits the MSB first.
ISD
2-5
2—SOFTWARE
ISD-SR3000
SIGNAL DESCRIPTION
The following signals are used for the interface protocol. Input and output are relative to the
ISD-SR3000.
2.5.1 INPUT SIGNALS
MWDIN
MICROWIRE Data In. Used for input only, for transferring data from the host controller to the
ISD-SR3000.
MWCLK
This signal serves as the synchronization clock during communication. One bit of data is trans-
ferred on every clock cycle. The input data is available on MWDIN, and is latched on the clock’s
rising edge. The transmitted data is output on MWDOUT, on the clock’s falling edge. The signal
should remain low when switching MWCS.
MWCS
MICROWIRE Chip Select. The MWCS signal is cleared to 0, to indicate that the ISD-SR3000
is being accessed. Setting MWCS to 1 causes the ISD-SR3000 to start driving MWDOUT with
bit 7 of the transmitted value. Setting the MWCS signal resets the transfer-bit counter of the pro-
tocol. Thus, the MWCS signal is used to synchronize the ISD-SR3000 and the host controller
to recognize the beginning of the byte transfer.
To prevent false detection of access to the ISD-SR3000, due to spikes on the MWCLK signal,
use this chip select signal to toggle the MWCLK input signal (only when the ISD-SR3000 is
open for communication.)
2.5.2 OUTPUT SIGNALS
MWDOUT
MICROWIRE Data Out. Used for output only, for transferring data from the ISD-SR3000 to the
host controller. When the ISD-SR3000 receives data, it is echoed back to the host controller on
this signal, unless the received data is 0xAA. In this case, the ISD-SR3000 echoes a
command’s return value.
MWRDY
MICROWIRE Ready. When active (0), this signal indicates that the ISD-SR3000 is ready to
transfer (receive or transmit) another byte of data.
This signal is set to 1 by the ISD-SR3000 after each byte transfer has been completed. It re-
mains 1 while the ISD-SR3000 is busy reading the byte, writing the next byte or executing the
received command (after the last parameter has been received). MWRDY is cleared to 0 after
reset. For proper operation after a hardware reset, this signal should be pulled up.
Voice Solutions in Silicon™
2-6
2—SOFTWARE
MWRQST
ISD-SR3000
MICROWIRE Request. When active (0), this signal indicates that new status information is
available. MWRQST is deactivated (set to 1), after the ISD-SR3000 receives a GSW (Get Sta-
tus Word) command from the host controller. After reset, this signal becomes active (0) to indi-
cate that a reset occurred. MWRQST, unlike all the signals of the communication protocol, is
an asynchronous line that is controlled by the ISD-SR3000 firmware.
2.5.3 SIGNAL USE IN THE INTERFACE PROTOCOL
After reset, both MWRQST and MWRDY are cleared to 0.
The MWRQST signal is activated to indicate that a reset occurred. The EV_RESET bit in the
status register is used to indicate a reset condition.
The GSW command should be issued after reset to verify that the EV_RESET event occurred,
and to deactivate the MWRQST signal.
While the MWCS signal is active (0), the ISD-SR3000 reads data from MWDIN on every rising
edge of MWCLK. The ISD-SR3000 also writes every bit back to MWDOUT. This bit is either the
same bit, which was read from MWDIN (in this case it is written back as a synchronization echo
after some propagation delay), or it is a bit of a value the ISD-SR3000 transmits to the host con-
troller (in this case it is written on every falling edge of the clock).
When a command has more than one parameter/return-value, the parameters/return-values
are transmitted in the order of appearance. If a parameter/return-value is more than one byte
long, the bytes are transmitted from the most significant to the least significant.
The MWRDY signal is used as follows:
1.
Active (0) MWRDY signals the host controller that the last eight bits of data transferred
to/from the voice module were accepted and processed (see below).
2.
The MWRDY signal is deactivated (set to 1 by the ISD-SR3000) after 8-bits of data were
transferred to/from the ISD-SR3000. The bit is set following the falling edge of the eighth
MWCLK clock-cycle.
3.
4.
The MWRDY signal is activated (cleared to 0) by the ISD-SR3000 when it is ready to re-
ceive the first parameter byte (if there are any parameters) and so on until the last byte
of parameters is transferred. An active MWRDY signal after the last byte of parameters
indicates that the command was parsed and (if possible) executed. If that command has
a return value, the host controller must read the value before issuing a new command.
When a return value is transmitted, the MWRDY signal is deactivated after every byte,
andactivatedagainwhenthe ISD-SR3000 is ready tosend another byte or receive a new
command.
The MWRDY signal is activated (cleared to 0) after reset, and after a protocol time-out.
The MWRQST signal is used as follows:
ISD
2-7
2—SOFTWARE
ISD-SR3000
1. The MWRQST signal is activated (cleared to 0), when the status word is changed.
2. The MWRQST signal remains active (0), until the ISD-SR3000 receives a GSW command.
Figure 2-37 illustrates the sequence of activities during a MICROWIRE data transfer.
Figure 2-37: Sequence of Activities During a MICROWIRE Byte Transfer
2.5.4 INTERFACE PROTOCOL TIME-OUTS
Depending on the ISD-SR3000’s state, if more than 100 milliseconds elapse between the as-
sertion of the MWRDY signal of the 8th bit of the next byte pertaining to the same command
transaction, a time-out event occurs, and the ISD-SR3000 responds as follows:
1.
2.
3.
4.
5.
Sets the error bit in the status word to 1.
Sets the EV_TIMEOUT bit in the error word to 1.
Activates the MWRQST signal (clears it to 0).
Activates the MWRDY signal (clears it to 0).
Waits for a new command. (After a time-out occurs, i.e. the host controller received
MWRQST during the command transfer, or result reception, the host controller must wait
at least four milliseconds before issuing the next command.)
2.5.5 ECHO MECHANISM
The ISD-SR3000 echoes back to the host controller all the bits received by the ISD-SR3000.
Upon detection of an error in the echo, the host controller should stop the protocol clock, which
eventually causes a time-out error (i.e., ERR_TIMEOUT bit is set in the error word).
Voice Solutions in Silicon™
2-8
2—SOFTWARE
ISD-SR3000
Note: When a command has a return value, the ISD-SR3000 transmits bytes of the return value instead
of the echo value.
The ISD-SR3000 transmits a byte as an echo when it receives the value 0xAA from the host
controller. Upon detection of an error, the ISD-SR3000 activates the MWRQST signal and sets
the ERR_COMM bit in the error word.
2.6
MEMORY INTERFACE
The ISD-SR3000 memory is externally stored on a ROM or a FLASH device. These devices
are addressed through an Expansion Memory mechanism containing four registers that yields
to a 20 bit address bus, A(0:19), and 16 bit of data bus, D(0:15). For a detailed description and
references, please refer to section 1.2.7.
2.7
CODEC INTERFACE
2.7.1 SUPPORTED FUNCTIONALITY
The ISD-SR3000 processor supports two operational modes: the master mode and the slave
mode. In master mode, the ISD-SR3000 provides the clock and the synchronization signals. It
supports a list of single channel and dual channel CODECs, as listed in Table 1-4. In slave
mode, the control signals are provided by an external source.
The CODEC interface is designed to exchange data in short frame format as well as in long
frame format. The channel width may be either 8 bits (u-Law format or A-Law format), or 16 bits
(linear format). In slave mode the clock may be divided by two, if required (two bit rate clock
mode). The ISD-SR3000 processor supports up to 2 voice channels.
See “THE CODEC INTERFACE” on page 1-7 for a detailed description of the supported CO-
DEC devices and the hardware connectivity.
Use the CFG command to define the CODEC mode (master or slave), the data frame format
(short or long), the channel width (8 bits or 16 bits), the clock bit rate (single or dual) and the
See “SR3000 pro-
number and type of CODEC (one or two, single channel or dual channel).
cessor commands--quick reference table” on page 2-16
.
2.8
SPEECH OUTPUT (AUDIO PROMPTS)
Speech output is the technology that is used to create messages or prompts out of predefined
words and phrases stored in a vocabulary.
ISD
2-9
2—SOFTWARE
ISD-SR3000
There are two kinds of predefined messages: fixed messages (e.g., help information, indication
prompts etc.) and programmable messages (e.g., time-and-day stamp, or the “You have n en-
tries in your phone book” announcement).
A vocabulary includes a set of predefined words and phrases required to construct messages
in any language. Applications can support more than one language by using a separate vocab-
ulary for each language.
2.8.1 INTERNATIONAL VOCABULARY SUPPORT (IVS)
IVS is a mechanism by which the ISD-SR3000 processor utilizes several vocabularies stored
on an external storage device. IVS enables the ISD-SR3000 to synthesize messages with the
same meaning, but in different languages, from separate vocabularies.
Among IVS features:
•
•
•
Multiple vocabularies stored on a single storage device.
Plug-and-play. The same host controller code is used for all languages.
Synthesized and recorded messages use the same voice compression algorithm to achieve
equal quality.
•
•
•
You have <n> messages
.)
Argumented sentences. (For example:
Auto-synthesized time-and-day stamp (driven by the ISD-SR3000 processor’s clock).
Support for various language and sentence structures:
–
have one message
You have two
versus
One versus many. (For example: You
messages
.)
None versus many. (For example:
messages
–
You have no messages
You have two
versus
.)
Number synthesis (English
Twenty-one
–
–
—Eighty
Quatre-vingt
versus French—
).
Einundzwanzig
Word order (English—
versus German—
).
•
Days of the week (Monday through Sunday versus Sunday through Saturday).
2.8.2 VOCABULARY DESIGN
There are several issues, sometimes conflicting, which must be addressed when designing a
vocabulary.
VOCABULARY CONTENT
If memory space is not an issue, the vocabulary could contain all the required sentences, each
recorded separately.
If memory space is a concern, the vocabulary must be compact; it should contain the minimum
set of words and phrases required to synthesize all the sentences. The least memory is used
when phrases and words that are common to more than one sentence are recorded only once,
and the IVS tool is used to synthesize sentences out of them.
Voice Solutions in Silicon™
2-10
2—SOFTWARE
ISD-SR3000
A good combination of sentence quality and memory space is achieved if you take the “com-
pact” approach, and extend it to solve pronunciation problems. For example, the word twenty
You have twenty names
You have
is pronounced differently when used in the sentences
twenty-two names
and
. To solve this problem, words that are pronounced differently should be re-
corded more than once, each in the correct pronunciation.
VOCABULARY RECORDING
When recording vocabulary words, there is a compromise between space and quality. The
words should be recorded and saved in a compressed form, and you should use the best voice
compression for that purpose. However, lower compression rates do affect the voice quality.
Another issue to consider is the difference in voice quality between synthesized and recorded
audio (e.g. between stored audio prompts and recorded names). It is more pleasant for the hu-
man ear to hear both messages with the same sound quality.
VOCABULARY ACCESS
Sometimes compactness and high quality are not enough. There should be a simple and flex-
ible interface to access the vocabulary elements. Not just the vocabulary, but the code to ac-
cess the vocabulary should be compact.
When designing for a multi-lingual environment, there are even more issues to consider. Each
vocabulary should be able to handle language-specific structures and designed in a coopera-
tive way with the other vocabularies so that the code to access each vocabulary is the same.
Monday. 12:30 P.M.,
When you use the command to synthesize the sentence
care in what language the message is played back.
you should not
2.8.3 IVS VOCABULARY COMPONENTS
This section describes the basic concept of an IVS vocabulary, its components, and the rela-
tionships between them.
BASIC CONCEPTS
An IVS vocabulary consists of words, sentences, and special codes that control the behavior of
the algorithm which ISD-SR3000 processor uses to synthesize sentences.
WORD TABLE
The words are the basic units in the vocabulary. Create synthesized sentences by combining
words in the vocabulary. Each word in the vocabulary is given an index which identifies it in the
word table.
Note that, depending on the language structures and sentences synthesized, you may need to
record some words more than once in the vocabulary. For example, if you synthesize the sen-
ISD
2-11
2—SOFTWARE
ISD-SR3000
you have twenty names
you have twenty-five names
twenty
is pro-
should be defined as two different words.
tences:
and
twenty
, the word
nounced differently. In this example,
NUMBER TABLES
The number tables allow you to treat numbers differently depending on the context.
Example 1:
one
name number one
The number 1 can be announced as
as in
or as first as in
first name
.
Example 2:
no
you have no names
oh
as in
The number 0 can be announced as
as in
or as
monday, eight oh five A.M
.
A separate number table is required for each particular type of use. The number table contains
the indices of the words in the vocabulary that are used to synthesize the number. Up to nine
number tables can be included in a vocabulary.
SENTENCE TABLE
The sentence table describes the predefined sentences in the vocabulary. The purpose of this
table is to make the host controller that drives the ISD-SR3000 processor independent of the
language being synthesized. For example, if the Flash and/or ROM memory contains vocabu-
laries in various languages, and the first sentence in each vocabulary means you have n mes-
sages, the host controller switches languages by issuing the following command to ISD-
SR3000 processor:
SPT <storage_media>, <vocabulary_id> -Select a new vocabulary
The host controller software is thus independent of the grammar of the language in use. The
sentences consist of words, which are represented by their indices in the vocabulary.
The following figure shows the interrelationship between the three types of tables.
Voice Solutions in Silicon™
2-12
2—SOFTWARE
ISD-SR3000
Figure 2-38: The Interrelationship between the Word, the Number, and the Sentence
Tables
Se nte nc e Ta b le
Word Ta b le
You ha ve
OPT_NUMBER CONTROL_SING
NAMES
five
twe nty
You ha ve
na m e s
na m e s
Numb e r Ta b le
CONTROL AND OPTION CODES
The list of word indices alone cannot provide the entire range of sentences that the ISD-
SR3000 processor is able to synthesize. IVS control and option codes send special instructions
to control the speech synthesis algorithm’s behavior in the processor.
For example, if the sentence should announce the time of day, the ISD-SR3000 processor
should be able to substitute the current day and time in the sentence. These control words do
not represent recorded words, rather they instruct the processor to take special actions.
2.9
THE STATE MACHINE
The ISD-SR3000 processor functions as a state machine. It changes state either in response
to a command sent by the host controller, after execution of a command is completed, or as a
result ofaninternal event (e.g. memory full or power failure). The ISD-SR3000 processor states
are listed below.
RESET
The ISD-SR3000 processor is initialized to this state after a full hardware reset by the RESET
signal.
ISD
2-13
2—SOFTWARE
ISD-SR3000
IDLE
This is the state from which most commands are executed. As soon as a command and all its
parameters are received, the ISD-SR3000 processor starts executing the command.
PLAY
In this state, a prompt is played.
SYNTHESIS
In this state, an individual word or sentence is synthesized from a vocabulary.
RECORD
In this state, a user’s speech is recorded and stored.
RECO
In this state, speech recognition is active.
TONE_GENERATE
In this mode, the ISD-SR3000 synthesizes Tones or Dual Tones to the output.
2.9.1 COMMAND EXECUTION
An ISD-SR3000 command is represented by an 8-bit opcode. Some commands have parame-
ters, and some commands return values to the host controller. Commands are either synchro-
nous or asynchronous.
2.9.2 SYNCHRONOUS COMMANDS
A synchronous command must complete execution before the host controller can send a new
command
A synchronous command sequence starts when the host controller sends an 8-bit opcode to
the ISD-SR3000 processor, followed by the command’s parameters (if any).
The ISD-SR3000 processor executes the command and, if required, transmits a return value to
the host controller. Upon completion, the ISD-SR3000 processor notifies the host controller that
it is ready to accept a new command by asserting the MWRDY signal.
2.9.3 ASYNCHRONOUS COMMANDS
An asynchronous command runs in the background. During execution of an asynchronous
command, other commands can be executed according to the source state in the command ta-
ble.
Voice Solutions in Silicon™
2-14
2—SOFTWARE
ISD-SR3000
2.9.4 ISD-SR3000 STATUS AND REGISTERS
STATUS WORD
The 16-bit Status Word indicates events that occur during normal operation. The ISD-SR3000
processor asserts the MWRQST signal to indicate a change in the Status Word. This signal re-
mains asserted until the ISD-SR3000 processor receives a GSW command. The status word
is cleared during reset, and upon successful execution of the GSW command.
ERROR WORD
The 16-bit Error Word indicates errors that occurred during execution of a command. If an error
is detected, the command is not processed, the EV_ERROR bit in the Status Word is set to 1,
and the MWRQST signal is asserted. The error bits will remain active in the error register until
the register is read (using the GEW command).
RECO ERROR WORD
This 16-bit Reco Error Word indicates errors that have occurred in the reco engine. If an error
is detected, the ERR_RECO bit in the Status Word is set to 1, and the MWRQST signal is as-
serted. The Reco Error Word will remain in the Reco Error register until the register is read (us-
ing the GRE command).
ERROR HANDLING
When the host controller detects that the MWRQST signal has been asserted, the host control-
ler should issue the GSW (Get Status Word) command, which de-asserts the MWRQST signal.
Then the host controller should test the EV_ERROR and the ERR_RECO bits in the data (the
Status Word contents) returned by the GSW command. If the EV_ERROR bit is set, the host
controller should issue the GEW (Get Error Word) command to read the Error Word for details
of the error. If the ERR_RECO is set, the host controller should issue the GRE (Get Reco Error)
command to read the Reco Error Word for details of the error.
ISD
2-15
2—SOFTWARE
ISD-SR3000
2.10 SR3000 PROCESSOR COMMANDS--QUICK REFERENCE TABLE
Ta ble 2-13: Re c o Comma nd s
Command
Command Parameters
Return Value
Opcode
Hex
Result
State
Description
Source State
Name S/A
Description
Bytes Description Bytes
AAW
S
Add Acoustic 49
Word
Idle
No
change
Topic_ID
List_ID
1+1
2
Token Id
1
4
CEPG S Get Cepstra
Values
4B
Idle, Reco
No
change
Cepstra
Index
Cepstra
Value
CEPS
DAW
S
S
Set (Restore) 4C
Cepstra Values
Idle, Reco
Idle
No
change
Cepst_Index 2 + 4 None
Cepst_Value
-
-
Delete
4A
No
change
Topic_ID
List_ID
1+1+1 None
Acoustic Word
in a list
Token ID
DAWL S Delete All
Acoustic
4F
Idle
No
change
Topic_ID
List_ID
1+1
None
-
Words in a List
GRE
GNR
S
S
Get RECO
Error code
56
41
All States
Idle, Reco
Idle, Reco
None
None
-
Error word
2
Get Next
Recognition
No
change
-
Topic ID
Token ID
1+1
2
GNWL S Get Number of 4E
Added
No
change
Topic_ID
List_ID
1+1
Numer Of
Words
Acoustic
Words in a list
GPC
GRV
GVQ
S
S
S
Gets the
phoneme
count
54
52
51
Idle, Reco
Reset, Idle
Reco, Idle
No
change
None
None
None
-
-
-
Num of
Phonemes
2
2
2
Get RECO
Program
Version
No
change
Reco
Version
Get Num of
arguments in
the VQ buffer
No
change
Number of
VQ
RE
A
S
A
Recognition
Enable
40
50
57
Idle
Idle
Idle
RECO
None
None
-
-
None
None
None
-
-
-
ROL
RR
Recognize
Offline
No
change
Record
Message for
Reco
RECORD Compression 1
Rate
SRI
S
Stop Reco
5A
Reco
Idle
None
-
None
-
Immediately
Voice Solutions in Silicon™
2-16
2—SOFTWARE
ISD-SR3000
Ta ble 2-13: Re c o Comma nd s
Command
Command Parameters
Return Value
Opcode
Hex
Result
State
Description
Source State
Idle, Reco
Idle, Reco
Idle
Name S/A
Description
Bytes Description Bytes
TOPD S Topic Disable 44
No
change
Topic_ID
1
1
1
1
1
None
None
None
None
None
-
-
-
-
-
TOPE
TOPL
TOPS
S
S
S
Topic Enable 43
No
change
Topic_ID
Topic_ID
Topic_ID
Topic_ID
Topic Load
Topic Save
5B
4D
No
change
Idle
No
change
TOPU S Topic Unload 5C
Idle
No
change
Note: For the column labeled S/A, S = Synchronous command and A = Asynchronous command.
Ta ble 2-14: IVS a nd Me ssa ge (Voic e Ta g s) Comma nd s
Command
Command Parameters
Return Value
Opcode
Hex
Source
State
Result
State
Description
Name S/A
Description Bytes Description Bytes
CP
S
S
S
S
S
Check
Prompts
2B
0A
0B
Idle
No change None
No change None
-
Test
Results
1
DM
Delete
Message
Idle
Idle
Idle
Idle
-
None
DMS
GML
GMS
Delete
Messages
No change Tag_Ref,
Tag_Mask
2+2
None
-
Get Message 19
Length
No change None
-
Message
Length
2
Get Memory
Status
12
No change Type
1
Remaining 2
memory
blocks
GMT
GNM
GTM
INFG
S
S
S
S
Get Message 04
Tag
Idle
Idle
Idle
Idle
No change None
-
Message
tag
2
Get Number of 11
Messages
No change Tag_Ref,
Tag_Mask
2+2
Num of
messages
2
Get Tagged
Message
09
No change Tag_Ref,
2+2+1 Massage
found
1
Tag_Mask, Dir
No change Offset
Num of bytes
Tag data
3E
1+1
Num
information get
byte1...byte of
n
bytes
INFS
S
Tag data
information set
3D
Idle
No change Offset,
Num of bytes
byte1...byten
1+1+N None
-
ISD
2-17
2—SOFTWARE
ISD-SR3000
Ta ble 2-14: IVS a nd Me ssa ge (Voic e Ta g s) Comma nd s
Command
Command Parameters
Return Value
Opcode
Hex
Source
State
Result
State
Description
Name S/A
Description
Bytes Description Bytes
PM
R
A
A
Play Message 03
Idle
Idle
PLAY
RECORD
None
-
None
-
-
Record
0C
Tag (message 2 + 1 None
Message
Tag),
Compression_
rate
S
S
A
S
Stop
0
AllStates IDLE
except
reset
None
-
None
-
-
-
SAS
SMT
Say
Argumented
Sentence
1E
Idle
SYNTHESIS Sentence_n,
Mask ref
1 + 2 None
Set Message 05
Tag
Idle
No change Tag_Ref
2
None
None
SO
A
S
Say One Word 07
Idle
Idle
SYNTHESIS Word_number 1
-
-
SPT
Set Prompts
Type
20
No change Type, Id
1 + 1 None
SS
A
A
Say Sentence 1F
Say Words 21
Idle
Idle
SYNTHESIS Sentence_n
1
None
-
-
SW
SYNTHESIS N,
word1...wordn
1 + N None
Note: For the column labeled S/A, S = Synchronous command and A = Asynchronous command.
Ta ble 2-15: Ge ne ra l Comma nd s
Command
Command Parameters
Return Value
Opcode
Hex
Result
State
Description
Source State
Name S/A
Description
Bytes Description Bytes
CCIO
CFG
GEW
GHV
S
S
S
S
Configure
Codec I/O
34
01
1B
02
Idle
No
change
Config_value 1
None
-
Configure
ISD-SR3000
Reset
No
change
Config_value 3
None
-
Get Error
Word
All States
Reset, Idle
No
change
None
None
-
-
Error word
Version
2
1
Get
No
Hardware
Version
change
GSV
GSW
GT
S
S
A
Get System 53
Version
Reset, Idle
All States
Idle
No
change
None
None
Tone
-
Version
2
2
-
Get Status 14
Word
No
change
-
Status
Word
Generate
Tone
0D
TONE_
GENERA (single Tone
TE or DTMF)
1
None
Voice Solutions in Silicon™
2-18
2—SOFTWARE
ISD-SR3000
Ta ble 2-15: Ge ne ra l Comma nd s
Command
Command Parameters
Return Value
Opcode
Hex
Result
State
Description
Source State
Name S/A
Description
Bytes Description Bytes
GTD
S
Get Time
and Day
0E
Idle
No
change
Time_day_
option
1
1
-
Time and
day
2
2
-
GTUNE S Get Tunable 06
Parameter
Idle, Reset
Reset
No
change
Index
None
None
Parameter
_ value
INIT
S
Initialize
System
13
Idle
None
PDM
S
Go To
1A
Idle
No
-
None
-
Power-Down
Mode
change
SETD
TUNE
S
S
Set Time
and Day
0F
15
Idle
No
change
Time_and_da 2
y
None
None
-
-
Tune
Parameters
Reset, Idle
No
change
Index,
1 + 2 None
Parameter_
value
VC
S
Volume
Control
28
Idle, Play,
Synthesis,
Tone
No
change
vol_level
1
-
(increment/
decrement)
Generate,
Reco, Record
Note: For the column labeled S/A, S = Synchronous command and A = Asynchronous command.
ISD
2-19
2—SOFTWARE
ISD-SR3000
2.11 COMMAND DESCRIPTION
The commands are listed in alphabetical order. All command opcodes are one byte in length.
All opcodes, parameters and examples are shown using hex values for 8 bit and larger quanti-
ties, and binary values for bit values, unless otherwise noted.
Each command description includes an example application of the command. The examples
display the opcode issued by the host controller and the response returned by the ISD-SR3000
processor. For commands that require a return value from the ISD-SR3000 processor, the start
of the return value is indicated by a thick vertical line. When a return value is required, the host
controller must pass value AA (hex) to the ISD-SR3000 engine as a place-holder for each byte
to be returned.
Page Location for Command Descriptions
Command Page Number in this Chapter
Command
Page Number in this Chapter
AAW
CCIO
CEPG
CEPS
CFG
CP
page 2-21
page 2-21
page 2-23
page 2-24
page 2-25
page 2-26
page 2-27
page 2-27
page 2-28
page 2-33
page 2-30
page 2-31
page 2-32
page 2-33
page 2-33
page 2-34
page 2-35
page 2-36
page 2-36
page 2-37
page 2-38
page 2-39
page 2-39
page 2-41
page 2-42
page 2-45
GTM
page 2-44
page 2-45
page 2-46
page 2-47
page 2-48
page 2-48
page 2-49
page 2-50
page 2-50
page 2-51
page 2-52
page 2-52
page 2-53
page 2-54
page 2-55
page 2-56
page 2-56
page 2-57
page 2-58
page 2-59
page 2-59
page 2-60
page 2-61
page 2-61
page 2-62
page 2-63
INFG
INFS
INIT
PDM
PM
DAW
DAWL
DM
R
RE
ROL
RR
DMS
GEW
GHV
GML
GMS
GMT
GNM
GNR
GNWL
GPC
GRE
GRV
GSV
GSW
GT
S
SAS
SETD
SMT
SO
SPT
SRI
SS
SW
TOPD
TOPE
TOPL
TOPS
TOPU
TUNE
VC
GTD
GTUNE
Voice Solutions in Silicon™
2-20
2—SOFTWARE
ISD-SR3000
Add Acoustic Word
0x49
AAW
Opcode:
Syntax:
AAW topic_id list_id [Token_ID]
Synchronous
Type:
Description:
Parameters:
Adds a new dynamic word (user recorded word) to list list_id in topic topic_id
The topic_id, list_id and token_id parameters are one byte each.
Example
id is 05.
: Add a new acoustic word to list 0 in topic 3. The new word was added and the token
Source
Code
Byte Sequence
AAW 0300
Host Controller
ISD-SR3000
49
49
03
03
00
00
AA
05
Configure Codec I/O
0x34
CCIO
Opcode:
Syntax:
Type:
CCIO config_value
Synchronous
Description:
Configures the voice sample paths in various states. It should be used to change
the default ISD-SR3000 processor configuration.
Parameters:
The config_value parameter is one byte and is encoded as follows.
ISD
2-21
2—SOFTWARE
ISD-SR3000
BIT
0
DESCRIPTION
Loopback control
0: Loopback disabled (default)
1: Loopback enabled. In the RECORD state, the input samples are echoed back
unchanged (i.e., no volume control) to the codec. This is useful for debugging
the analog and codec circuitry.
1
Input control
0: Input from line codec.
1: Input from microphone (default).
Output Control
Bits
3 - 2
3
0
2
0
Settings
Automatic configuration. When in RECO/RECORD mode output
disabled to the 2 codecs. In IDLE mode, outputs to both (default).
0
1
1
1
0
1
Output to codec 0 only
Output to codec 1 only
Output to both codecs.
4 - 7
Reserved. Must be set to 0.
Example:
Configure the codec to have loop back enabled.
Source
Code
Byte Sequence
CCIO 01
Host Controller
ISD-SR3000
34
34
01
01
Voice Solutions in Silicon™
2-22
2—SOFTWARE
ISD-SR3000
Get Cepstra Values
0x4B
CEPG
Opcode:
Syntax:
Type:
CEPG cepstra_index [cepstra_value]
Synchronous
Description:
Normalizes the speech environment as it comes in from the microphone. This
parameter is automatically updated by the ISD-SR3000. The host controller
should save the values (via the CEPS command) in the event the settings are
required again.
Parameters:
The cepstra_index is 2 bytes and the returned parameter cepstra_value is 4
bytes (MSB first).
Example:
Get the cepstra values (0300A184) of Cepstra index 2.
Source
Code
Byte Sequence
CEPG 0002 AAAA AAAA
Host Controller
ISD-SR3000
4b
4b
00
00
02
02
AA
03
AA
00
AA
A1
AA
84
ISD
2-23
2—SOFTWARE
ISD-SR3000
Set (Restore) Cepstra Values
CEPS
Opcode:
Syntax:
0x4C
CEPS cepstra_index cepstra_value
Type:
Synchronous
Description:
Parameters:
Restore the value of cepstra cepstra_index by the value cepstra_value.
The cepstra_index is a two byte parameter and the cepstra_value is a four byte
parameter (MSB first).
Example:
Set the cepstra values for Cepstra index 4.
Source
Code
Byte Sequence
CEPS 0004 03002433
Host Controller
ISD-SR3000
4c
4c
00
00
04
04
03
03
00
00
24
24
33
33
Voice Solutions in Silicon™
2-24
2—SOFTWARE
ISD-SR3000
Configure ISD-SR3000
0x01
CFG
Opcode:
Syntax:
Type:
CFG config_value
Synchronous
Description:
Configures the ISD-SR3000 processor for various hardware environments. It
should be used to change the default ISD-SR3000 processor configuration.
Parameters:
The config_value parameter is a 24-bit word and is encoded as follows.
BIT
DESCRIPTION (the sign “X”refers to a don’t care)
Memory type
Bits
3 - 0
3
0
1
2
0
0
1
0
0
0
0
0
Settings
No Memory
AMD’s AM29F800/AM29F160 Flash (default)
Reserved
All other
15 - 4
16
Reserved.
Clock bit rate
0: One bit rate clock (default)
1: Two bit rate clock.
17
CODEC configuration
0: Short-frame format (default)
1: Long-frame format (guaranteed by design, but not tested).
CODEC type
Bits
19 - 18
Bits
19
0
18
0
Settings
16-bit linear
µ-Law (default)
A-Law
0
1
1
0
1
1
Reserved
ISD
2-25
2—SOFTWARE
ISD-SR3000
20
CODEC Interface Mode
0: Master CODEC interface (default)
1: Slave CODEC interface.
CODEC type
Bits
22 - 21
22
0
21
0
Settings
One single CODEC
Two single CODECs (default)
One dual CODEC
Reserved
0
1
1
0
1
1
23
Reserved. Must be set to 0.
Example: Configure the ISD-SR3000 processor to work with:
•
•
•
One single linear CODEC that supports short frame format
One AMD AM29F800
Master Mode
Source
Byte Sequence
Code
CFG 01 00 00 08
Host Controller
ISD-SR3000
01
01
00
00
00
00
08
08
Check Prompts
CP
Opcode:
Syntax:
Type:
0x2B
CP [return_value]
Synchronous
Description:
Checks (checksum) if the IVS data of the currently selected vocabulary was
correctly programmed to the ROM or Flash device. If the vocabulary data is
correct, the return value is 1. Otherwise the return value is 0. If the current
vocabulary is undefined, ERR_INVALID is reported.
Parameters:
return_value is one byte long
Example:
2-26
Check the prompt to be in order (returned value is 1).
Voice Solutions in Silicon™
2—SOFTWARE
ISD-SR3000
Source
Byte Sequence
Code
CP
2B
2B
Host Controller
ISD-SR3000
AA
01
Delete Acoustic Word in list
0x4A
DAW
Opcode:
Syntax:
Type:
DAW topic_id list_id token_id
Synchronous
Description:
Deletes the identifying token token_id of a specific word in list list_id of topic
topic_id. This command doesn’t erase the recorded message associated with
the token token_id (see the DM command for details on deleting a message).
Parameters:
topic_id, list_id and token_id are one byte long.
Example
: Delete acoustic word 9 in list 1 of topic 3.
Source
Code
Byte Sequence
DAW 03 01 09
Host Controller
ISD-SR3000
4a
4a
03
03
01
01
09
09
Delete All Acoustic Words in List
0x4F
DAWL
Opcode:
Syntax:
Type:
DAWL topic_id list_id
Synchronous
Description:
This command erases all the tokens from topic topic_id that are associated with
list list_id (each parameter is one byte long).
Parameters:
ISD
2-27
2—SOFTWARE
ISD-SR3000
Example: Delete all acoustic words in list 1 of topic 5.
Source
Byte Sequence
Code
DAWL 05 01
Host Controller
ISD-SR3000
4f
4f
05
05
01
01
Delete Message (voicetag)
DM
Opcode:
Syntax:
Type:
0x0A
DM
Synchronous
Description:
(Messages are synonymous with voicetags).
Deletes the current message. Deleting a message clears its message tag.
Deleting the current message does not cause a different message to become
current. The current message remains undefined until you issue a new
command; for example, issue the GTM command to skip to the next message.
The memory space released by the deleted message is immediately available for
recording new messages.
Parameters:
Example:
Delete the current message.
Source
Code
Byte Sequence
DM
Host Controller
ISD-SR3000
0A
0A
Voice Solutions in Silicon™
2-28
2—SOFTWARE
ISD-SR3000
Delete Messages (voicetags)
0x0B
DMS
Opcode:
Syntax:
Type:
DMS Tag_Ref Tag_Mask
Synchronous
Description:
Deletes all messages whose message tags match the tag_ref parameter. Only
bits set in tag_mask are compared, i.e. a match is considered successful if:
message tag
tag_mask tag_ref
tag_mask
and
and
=
where and is a bitwise AND operation
After the command completes execution, the current message is undefined. Use
the GTM command to select a message to be the current message.
The memory space released by the deleted message is immediately available for
recording new messages.
Parameters:
Tag_Ref Tag_Mask are each two bytes long
Example:
Deleting all the messages associated with topic 8:
Source
Code
Byte Sequence
DMS 0800 FF00
Host Controller
ISD-SR3000
0B
0B
08
08
00
00
FF
FF
00
00
ISD
2-29
2—SOFTWARE
ISD-SR3000
Returns the 16-bit error word
0x1B
GEW
Opcode:
Syntax:
Type:
GEW [error_word]
Synchronous
Description:
Indicates errors that occurred during execution of the last command. If an error is
detected, the command is not processed; the EV_ERROR bit in the status word
is set to 1, and the MWRQST signal is activated (driven low).
The GEW command reads the error word. All bits in the error word are cleared to
zero during reset and after execution of each GEW command.
If errors ERR_COMMAND or ERR_PARAM occur during the execution of a
command that has a return value, the return value is undefined. The host
controller must still read the return value to ensure proper synchronization.
Parameters:
The 16-bits of the error word are as follows:
BIT
0
DESCRIPTION
ERR_ROL
0: No error
1: Recording too short
1
2
3
ERR_OPCODE
0: No opcode errors
1: Illegal opcode. The ISD-SR3000 processor does not recognize the opcode.
ERR_COMMAND
0: No command errors
1: Illegal command sequence. The command is not legal in the current state.
ERR_PARAM
0: No parameter errors
1: Illegal parameter. The value of the parameter is out of range or is not appropriate
for the command.
4
5
0 or 1: Bit 4 is reserved and should be disregarded
ERR_COMM
0: No communications error
1: host controller MICROWIRE communication error
6
ERR_TIMEOUT
0: No timeout error
1: Time out error. Depending on the ISD-SR3000’s processor’s state, more than
100 milliseconds elapsed between the arrival of two consecutive bytes (for
commands that have parameters).
Voice Solutions in Silicon™
2-30
2—SOFTWARE
7
ISD-SR3000
ERR_INVALID
0: No context error
1: Command can not be performed in current context.
8-9
10
0 or 1: Bits 8 and 9 are reserved and should be disregarded.
ERR_VQ_OVERFLOW: VQ buffer is full (frames will be missed).
ERR_FLASH_MAP: error in directory page of Flash.
11
12
ERR_Q_FULL: queue of recognized words is full (clear using GNR command).
Bits 13 to 15 are reserved and should be disregarded.
13-15
Example:
error.
ISD-SR3000’s error word is repeated and it returns the code for a communications
Source
Code
Byte Sequence
GEW
Host Controller
ISD-SR3000
1B
1B
AA
00
AA
20
Get Hardware Version; returns a one byte value indicating the ISD-SR3000
hardware version
GHV
Opcode:
Syntax:
02
GHV [Hw_Version]
Type:
Synchronous
Description:
Parameters:
Returns the hardware version
The single byte, Hw_Version, return values are as follows:
BIT
DESCRIPTION
0 - 7
Magic number, which specifies the ISD-SR3000 processor’s hardware version
ISD
2-31
2—SOFTWARE
ISD-SR3000
Example:
Get the ISD-SR3000 processor’s magic number. The ISD-SR3000 responds that it
is version 1.
Source
Byte Sequence
Code
GHV
02
Host Controller
ISD-SR3000
AA
01
02
Get Message Length
GML
Opcode:
Syntax:
Type:
0x19
GML [message_length]
Synchronous
Description:
Returns the length of the current voicetag in multiples of 4 Kbytes (blocks).
The returned value includes the voicetag directory information (64 bytes for the
first block and 32 bytes for every other block), the voicetag data, and the entire
last block of the voicetag, even if the voicetag occupies only a portion of the last
block. Since a memory block includes 2048 bytes, the returned length may be
bigger than the actual voicetag length by up to 2047 bytes. The minimum length
of a voicetag is one block. If the current voicetag is undefined, the error
ERR_INVALID is generated. See the Glossary for a complete description of this
error.
Parameters:
message_length is 2 bytes long
Example: Get the length of the current voicetag. The ISD-SR3000 responds: 4. (The voicetag
occupies 8192 = 4 x 2048).
Source
Byte Sequence
Code
GML
19
Host Controller
ISD-SR3000
AA
00
AA
04
19
Voice Solutions in Silicon™
2-32
2—SOFTWARE
ISD-SR3000
Get Memory Status
0x12
GMS
Opcode:
Syntax:
Type:
GMS type [mem_status]
Synchronous
Description:
Returns the total number of remaining memory blocks as a type 16bit unsigned
integer. The parameter type must be 0. The estimated remaining recording time
may be calculated as follows:
Time = (Num_of_blocks x 2048 x 8) / (Compression_rate x 1000)
Parameters:
Example:
A command is issued to return the number of remaining memory blocks. The ISD-
SR3000 responds: 40 blocks.
Source
Byte Sequence
Code
GMS 00 AA AA
Host Controller
ISD-SR3000
12
12
00
00
AA
00
AA
28
Get Message Tag
GMT
Opcode:
Syntax:
Type:
0x04
GMT [Tag_Ref]
Synchronous
Description:
Returns the 16-bit tag associated with the current voicetag. If the current
voicetag is undefined, ERR_INVALID is reported.
Parameters:
Tag_Ref is 2 bytes long
ISD
2-33
2—SOFTWARE
ISD-SR3000
Example:
Source
Get the current message tag.
Byte Sequence
Code
GMT AA AA
Host Controller
ISD-SR3000
04
04
AA
00
AA
0E
Get Number of Messages
0x11
GNM
Opcode:
Syntax:
Type:
GNM Tag_Ref Tag_Mask [Num_Of_Messages] which are 2 bytes each
Synchronous
tag_ref
Description:
Returns the number of voicetags whose message tags match the
tag_mask
parameters. Only bits set in
successful if:
are compared. A match is considered
message tag
tag_mask tag_ref tag_mask
and
and
=
where “and”is a bitwise AND operation.
tag_ref
tag_mask
The
and
parameters are each two bytes. The return value is
also two bytes long.
tag_mask
If
= 0, the total number of all existing messages is returned, regardless
tag_ref
of the
value.
Parameters:
Tag_Ref, Tag_Mask and Num_Of_Messages are all two bytes each
Example:
Get the number of voicetags which have bit 0 cleared, and bit 1 set in their message
tags. The ISD-SR3000 processor responds there are five voicetags that satisfy the request.
Source
Byte Sequence
Code
GNM FF FE 00 03 AA AA
Host Controller
ISD-SR3000
11
11
FF
FF
FE
FE
00
00
03
03
AA
00
AA
05
Voice Solutions in Silicon™
2-34
2—SOFTWARE
ISD-SR3000
Get Next Recognition
0x41
GNR
Opcode:
Syntax:
Type:
GNR [topic_id token_id]
Synchronous
Description:
Gets the token for the next word recognized. This command should be issued by
the host controller after it is interrupted by ISD-SR3000, following ISD-SR3000’s
recognition of a word (as evidenced by the EV_RECO_QUEUE bit being set in
the Status Word - see the GSW command). If the GNR command is issued when
the EV_RECO_QUEUE bit is not set, the GNR command will execute but the
data returned will not be valid.
Parameters:
The GNR command returns 2 bytes, defined as follows:
BYTE
0
DESCRIPTION
The Topic number in which the recognition event occurred. The ISD-SR3000
contains the following special topic indicators:
0XFD - a pause was found
0XFE - a noise was found
1
The Token number that recognition event matches. The special token number zero
hex (00h) means a pause was found.
Example:
indicates:
The next recognition event is requested from ISD-SR3000. ISD-SR3000’s response
•
•
this recognition event is from Topic 01
the Token recognized is Token number 03
Source
Byte Sequence
GNR
Code
Host Controller
ISD-SR3000
0x41
AA
01
AA
03
0x41
ISD
2-35
2—SOFTWARE
ISD-SR3000
Get Number Added Acoustic Words
0x4E
GNWL
Opcode:
Syntax:
Type:
GNWL topic_id list_id [num_of_words]
Synchronous
Description:
Returns the number of acoustic words, num_of_words, that exist in list list_id in
the topic of topic_id.
Parameters:
topic_id and list_id are one byte each. num_of_words is two bytes.
Example:
Get number of added acoustic words (returned four) for list 1 in topic 2.
Source
Code
Byte Sequence
GNWL 0201 AAAA
Host Controller
ISD-SR3000
4e
4e
02
02
01
01
AA
00
AA
04
Gets Phoneme Count
0x54
GPC
Opcode:
Syntax:
Type:
GPC [num_of_phonems]
Synchronous
Description:
Indicates the number of phonemes, num_of_phonems (two bytes long). This
number is associated with the last processed recorded word (using the ROL
command).
num_of_phonems is two bytes
Parameters:
Voice Solutions in Silicon™
2-36
2—SOFTWARE
ISD-SR3000
Example:
Get the phoneme count (returned nine).
Source
Code
Byte Sequence
GPC AA AA
Host Controller
ISD-SR3000
54
54
AA
00
AA
09
Get RECO Error code
0x56
GRE
Opcode:
Syntax:
Type:
GRE [Reco_Error]
Synchronous
Description:
Returns the reco engine error word Reco_Error, which contains the errors that
occurred in the recognition engine.
Parameters:
Reco_Error is two bytes long.
Value (in Hex) DESCRIPTION
0x9E4B
DWL error; bad phoneme on word. This indicates an unknown phoneme was
returned from the ROL command.
0x9E4C
0x9E4D
DWL error; too many senones. You have reached the number of senones limitation.
DWL error; too many words. You have reached the limitation (50) number of words
in one list.
0x9E56
DWL error; unknown word. This occurs when deleting an unknown word from a
dynamic list (using the DAW command).
0x9E57
0xD120
DWL error; unknown list. The list you have defined does not exist in the topic.
Bad Reco environment. This might occur when trying to issue RE or ROL in a noisy
environment.
0xD8F1
SR Error; This error will appear after running the reco engine using the RE
command when no topic was enabled.
ISD
2-37
2—SOFTWARE
ISD-SR3000
Example
sued.
: Get the Reco_Error register values (0x9E57) indicating that an unknown list was is-
Source
Code
Byte Sequence
GRE AA AA
Host Controller
ISD-SR3000
56
56
AA
9E
AA
57
Get RECO program version
0x52
GRV
Opcode:
Syntax:
GVR [reco_program_version]
Synchronous
Type:
Description:
Parameters:
Returns the version of the recognition engine.
reco_program_version is two bytes long.
Example:
Get the reco revision (returned 0123).
Source
Code
Byte Sequence
GRV AA AA
Host Controller
ISD-SR3000
52
52
AA
01
AA
23
Voice Solutions in Silicon™
2-38
2—SOFTWARE
ISD-SR3000
Get System Program Version
0x53
GSV
Opcode:
Syntax:
GSV [system_program_version]
Synchronous
Type:
Description:
Parameters:
This command returns the ISD-SR3000 system firmware version
system_program_version is two bytes long
Example: Get the ISD-SR3000 system version (returned 0300).
Source
Byte Sequence
Code
GSV AA AA
Host Controller
ISD-SR3000
52
52
AA
03
AA
00
Get Status Word
GSW
Opcode:
Syntax:
Type:
0x14
GSW [status_word]
Synchronous
Description:
The ISD-SR3000 processor has a 16-bit status word to indicate events that
occur during normal operation. The ISD-SR3000 processor asserts the
MWRQST signal (driven low), to indicate a change in the status word. This signal
remains active until the ISD-SR3000 processor receives a GSW command.
The status word is cleared during reset and upon successful execution of the
GSW command.
Parameters:
The GSW command returns a 16-bit status word, defined as follows:
ISD
2-39
2—SOFTWARE
ISD-SR3000
BIT
5
DESCRIPTION
EV_NORMAL_END
0: When this bit is zero, it means either:
a) no command is underway, or
b) a command is being processed but has not yet completed, or
c) a command completed but had an error (as indicated by a ‘1’ in the EV_ERROR
bit)
1: Normal completion of an operation, e.g., end of playing of a prompt.
6
7
EV_MEMFUL
0: Memory is not full (when using the R command)
1: Memory is full
EV_ERROR
0: No error detected
1: Error detected in the last command. The host controller must issue the GEW
command to return the error code and clear the error condition.
10
11
EV_MEMLOW
0: The ROL memory is not full (when using the RR command)
1: The ROL memory is full (when using the RR command)
EV_RECO_QUEUE
0: There are no arguments in the ISD-SR3000 recognition queue.
1: Reco has one or more recognition arguments in its queue.
Use command GNR to retrieve items from the queue.
14
EV_RESET
0: Normally, this bit changes to 0 after performing the INIT command.
1: When the ISD-SR3000 processor completes its power-up sequence and enters
the RESET state, this bit is set to 1, and the MWRQST signal is activated (driven
low).
Normally, this bit changes to 0 after performing the INIT command. If this bit is set
during normal operation of the ISD-SR3000 processor, it indicates an internal ISD-
SR3000 processor error. The host controller can recover from such an error by re-
initializing the system.
15
ERR_RECO
0: No reco error
1: Reco error has occurred. The reco register contains the detailed information.
(Use the GRE command to read the reco error register.)
All other bits
0 or 1: BIts are reserved and should be disregarded. These bits may return any mix
if 0 and1.
Voice Solutions in Silicon™
2-40
2—SOFTWARE
ISD-SR3000
Example: ISD-SR3000’s error word is requested and returns code 0x20, indicating normal
command completion (EV_NORMAL_END) status.
Source
Byte Sequence
Code
GSW
14
Host Controller
ISD-SR3000
AA
00
AA
20
14
Generate Tone
GT
Opcode:
Syntax:
Type:
0x0D
GT Tone
Asynchronous
Description:
Generates the tone specified by the 1-byte tone parameter. The ISD-SR3000
state changes to TONE_GENERATE. The tone generation continues until an S
command is received. A DTMF or a single frequency tone may be generated as
shown below.
Parameters:
Tone is one byte long. To generate a DTMF or a single frequency code, encode
the bits as follows:
BIT
0
DESCRIPTION
1 Specify a DTMF
DTMF code, where the DTMF code is encoded as follows:
Value (Hex) DTMF Digit
4-1
0 to 9
0 to 9
A
B
C
D
E
F
A
*
#
B
C
D
5-7
0
ISD
2-41
2—SOFTWARE
ISD-SR3000
BIT
0
DESCRIPTION
0 Specify a single tone
5-1
3-30 The value in bits 1-5 is multiplied by 100 to generate the required frequency
(300Hz-3000Hz).
7-6
0
Note: The ISD-SR3000 processor does not check for the validity of the tone specification. Invalid specifi-
cation yields unpredictable results.
Example:
ISD-SR3000 generates a single-frequency 1600Hz tone.
Source
Code
Byte Sequence
GT 20
Host Controller
ISD-SR3000
0D
0D
20
20
Get Time and Day
0x0E
GTD
Opcode:
Syntax:
Type:
GTD [time_day_option]
Synchronous
Description:
Returns the time and day as a 2-byte value [time_day_value]. time_day_option
must be set to: 0
This will get the system time and day.
Parameters:
The time_day_option is one byte long. The time_day_value is two bytes long and
is encoded as follows:
Voice Solutions in Silicon™
2-42
2—SOFTWARE
ISD-SR3000
BIT
DESCRIPTION
2-0
Day of the week (1 through 7)
Hour of the day (0 through 23)
Minute of the hour (0 through 59)
00: The time was not set.
7-3
13-8
15-14
11: The time was set, i.e., the SETD (Set Time and Day) command was executed.
Note: If the current message is undefined, and time_day_option is 1, an ERR_INVALID error is reported.
Example
: Get the current system time-and-day stamp. The ISD-SR3000 processor responds
A M
that the system date is the first day of the week and the time is 5:40 . .
Source
Byte Sequence
Code
GTD 00 AA AA
Host Controller
ISD-SR3000
0E
0E
00
00
AA
E8
AA
29
ISD
2-43
2—SOFTWARE
ISD-SR3000
Get Tagged Message
0x09
GTM
Opcode:
Syntax:
Type:
GTM Tag_Ref Tag_Mask Dir [Result]
Synchronous
Description:
Selects the current message, according to instructions in Dir, to be the first, nth next or
nth previous message, which complies with the equation:
message tag and tag_mask = tag_ref and tag_mask
where “and” is a bitwise AND operation.
Dir is one of the following:
0: Selects the first (oldest) message.
-64: Selects the last (newest) message.
n: Selects the nth next message starting from the current message.
–n: Selects the nth previous message starting from the current message.
To select the nth message with a given tag to be the current message, you must first
select the first message that complies with the above equation, and then issue another
GTM command with n – 1 as a parameter, to skip to the nth message.
The result value Result reports 1 when the message pointer is set. If the message
pointer is not set, Result reports 0.
Parameters:
Tag_Ref (2 bytes), Tag_Mask (2 bytes), Dir (1 byte) and Result (1 byte)
Note: If a message is found, it becomes the current message and 1 (TRUE) is returned. If no message is
found, the current message remains unchanged and 0 (FALSE) is returned.
If Dir is not 0, and the current message is undefined, the return value is unpredictable. After the com-
mand execution, the current message may either remain undefined or change to any existing mes-
sage. The only exception is when the GTM command is executed just after the DM command. (See
the DM command for further details.)
Example: Assuming the user arranged the message tag as an indication number received from the AAW
command (using the upper byte to notate the topic number and the lower byte as the token number), the
following will set the message pointer to the message with Tag_Ref = [0x02 0x06], noting a previously
added voice tag message associated with acoustic word 6 in topic 2. The results show that the pointer is
set to the desired message.
Source
Byte Sequence
Code
GTM 0206 FFFF 00 AA
Host Controller 09
02
02
06
06
FF
FF
FF
FF
00
00
AA
01
ISD-SR3000
09
Voice Solutions in Silicon™
2-44
2—SOFTWARE
ISD-SR3000
Get Tunable Parameter
0x06
GTUNE
Opcode:
Syntax:
GTUNE Index [parameter_value]
Synchronous
Type:
Description:
Gets the value of the tunable parameter identified by Index as the value,
parameter_value. This command may be used to read and identify the
parameter value that was set to tune the ISD-SR3000.
If Index does not point to a valid tunable parameter, ERR_PARAM is set in the
error word.
The GTUNE command may be used in IDLE state or RESET state. If TUNE
command was not used to set the tunable parameters, then the GTUNE
command will read the default parameter value.
Parameters:
Index is one byte long and parameter_value is 2 bytes long
Example
: Get the value of the return noise tokens flag (index number 0x53). The results indi-
cate it to be enabled.
Source
Byte Sequence
Code
GTUNE 53
Host Controller
ISD-SR3000
06
06
53
53
AA
00
AA
01
Tag Data Information Get
0x3E
INFG
Opcode:
Syntax:
Type:
INFG data_offsett Num_Of_Bytes [byte1...byten]
Synchronous
Description:
Retrieves the data information (Num_Of_Bytes bytes long) stored in the tag
data_offsett
header, located at offset
, of the current message.
Parameters:
data_offsett and Num_Of_Bytes are one byte long. The maximum number of
bytes that can be stored in a message header is 74. This means that:
74>(data_offsett + Num_Of_Bytes).
Note
: the maximum number of bytes allowed to be written in one transaction is 32 bytes.
ISD
2-45
2—SOFTWARE
ISD-SR3000
Example:
sage.
Get the two byte data, ‘0123’, located at offset ‘0’ from the header of the current mes-
Source
Code
Byte Sequence
INFG 00 2 AA AA
Host Controller
ISD-SR3000
3E
3E
00
00
2
2
AA
01
AA
23
Tag Data Information Set
0x3D
INFS
Opcode:
Syntax:
Type:
INFS data_offsett Num_Of_Bytes byte1...byten
Synchronous
Description:
data_offsett
of
Resets the data information in the tag header, starting from offset
the current message, for length of Num_Of_Bytes bytes.
Note: the data in the Flash memory is set to FF and, by writing to it, the data is
changed to 0. After resetting a bit in the Flash, you cannot set it to 1. (The
memory is set back to FF after the erasing procedure).
Parameters:
data_offsett and Num_Of_Bytes are one byte long. The maximum number of
bytes that can be stored in a message header is 74. This means:
74>(data_offsett + Num_Of_Bytes).
Note
: the maximum number of bytes allowed to be written in one transaction is 32 bytes.
Example:
sage.
Set the two byte data, ‘0123’, starting at offset ‘0’ from the header of the current mes-
Source
Code
Byte Sequence
INFS 00 02 01 23
Host Controller
ISD-SR3000
3D
3D
00
00
02
02
01
01
23
23
Voice Solutions in Silicon™
2-46
2—SOFTWARE
ISD-SR3000
Initialize System
0x13
INIT
Opcode:
Syntax:
Type:
INIT
Synchronous
Description:
Execute this command after the ISD-SR3000 processor has been configured
(see the CFG command). INIT Performs a soft reset of the ISD-SR3000
processor, which includes:
•
•
•
Initializing the message directory information.
Setting the volume level that is controlled by the VC commands, to 0.
Switching to IDLE state.
Note: Messages are not deleted. To delete the messages, use the DM and DMS
commands.
The current message is undefined after INIT execution.
The tunable parameters are not affected by this command. They are set to their
default values only during RESET.
Parameters:
Example:
Source
ISD-SR3000 is initialized.
Byte Sequence
Code
INIT
Host Controller
ISD-SR3000
13
13
ISD
2-47
2—SOFTWARE
ISD-SR3000
Go to Power-down mode
PDM
Opcode:
Syntax:
Type:
0x1A
PDM
Synchronous
Description:
Switches the ISD-SR3000 processor to power-down mode. Sending any
command while in power-down mode returns the ISD-SR3000 processor to
normal operation mode. If an event report is pending (i.e., MWRQST is active)
and it is not processed by the host controller prior to issuing the PDM command,
the event is lost.
Parameters:
Example:
This command tells ISD-SR3000 to go into power-down mode.
Source
Code
Byte Sequence
PDM
Host Controller
ISD-SR3000
1A
1A
Play Message
0x03
PM
Opcode:
Syntax:
Type:
PM
Asynchronous
Description:
Begins playback of the current message. The ISD-SR3000 processor state
changes to PLAY. When playback is complete, the ISD-SR3000 processor sets
the EV_NORMAL_END bit in the status word, and activates (clears to 0) the
MWRQST signal. The state then changes to IDLE. Playback can be stopped with
the S command. If the current message is undefined, ERR_INVALID is reported.
Parameters:
Voice Solutions in Silicon™
2-48
2—SOFTWARE
ISD-SR3000
Example:
Play the current message.
Source
Code
Byte Sequence
PM
Host Controller
ISD-SR3000
03
03
Record Message
0x0C
R
Opcode:
Syntax:
Type:
R Tag_Ref Compression_Rate
Asynchronous
Description:
Records a new voicetag with message tag [Tag_Ref] and compression rate
Compression_Rate. The ISD-SR3000 processor state changes to RECORD.
The R command continues execution until stopped by the S command.
If the memory becomes full, recording stops and EV_MEMFULL is set in the
status word. The compression rate may be defined as 0 for PCM recording or
either 1,2,3 for compression rates 4.7 Kbits/s, 6.7 Kbits/s, 8.7 Kbits/s
respectively. See “VCD”for a description of the compression algorithm.
Parameters:
Tag_Ref is two bytes long and Compression_Rate is one byte long.
Example:
Record a new voicetag with a message tag 0x2001.
Source
Code
Byte Sequence
R 20 01 03
Host Controller
ISD-SR3000
0C
0C
20
20
01
01
03
03
ISD
2-49
2—SOFTWARE
ISD-SR3000
Enable Recognition
0x40
RE
Opcode:
Syntax:
Type:
RE
Asynchronous
Description:
Turns the ISD-SR3000 recognition engine on, thus allowing it to start listening for
command keywords.
Parameters:
Example:
This command tells ISD-SR3000 to start the recognition engine.
Source
Code
Byte Sequence
RE
Host Controller
ISD-SR3000
40
40
Recognize Offline
0x50
ROL
Opcode:
Syntax:
Type:
ROL
Synchronous
Description:
Takes the last RR-recorded voicetag and produces a phonetic representation of
the voicetag. Once this command is finished (indication of normal end in the
status register), the controller can check the number of phonemes (GPC) and
then add the phonetic representation to a list in a topic using the AAW command.
Note: This command execution duration is several seconds long and depends on
the recording time.
Parameters:
Voice Solutions in Silicon™
2-50
2—SOFTWARE
ISD-SR3000
Example:
Initiate the ROL command.
Source
Code
Byte Sequence
ROL
Host Controller
ISD-SR3000
50
50
Record for Reco
0x57
RR
Opcode:
Syntax:
Type:
RR Compretion_Rate
Asynchronous
Description:
Records a new voicetag with a message tag for recognition. The ISD-SR3000
processor state changes to RECORD. The RR command continues execution
until stopped by the S command. The recording buffer is limited to a maximum of
8 seconds of A-Law or µ-Law, or 4 seconds of Linear speech. If the recording
reaches these limits, the MEMORY_LOW bit is set (this buffer is erased by the
ROL command). The result of the record is stored in a special buffer and can be
used later for Recognition off-line. (See ROL command). Hence, after issuing the
RR command, you must immediately call the ROL. You may never send two
consecutive commands of RR or DM, and DMS may never follow the RR
command. If any of these command violations occur, the ERR_COMMAND bit is
set in the error register.
If the memory becomes full, recording stops and EV_MEMFULL is set in the
status word. The compression rate may be defined as 0 for PCM recording or
either 1,2,3 for compression rates 4.7 Kbits/s, 6.7 Kbits/s, 8.7 Kbits/s
respectively.
Parameters:
Compretion_Rate is one byte long.
Example:
Record a new voicetag at compression rate of 8.7 Kbits/s (recommended).
Source
Code
Byte Sequence
RR 03
Host Controller
ISD-SR3000
57
57
03
03
ISD
2-51
2—SOFTWARE
ISD-SR3000
Stop
S
Opcode:
Syntax:
Type:
0x00
S
Synchronous
Description:
Stops execution of the current asynchronous command and switches the ISD-
SR3000 processor to the IDLE state.
Parameters:
Note: After recognition is enabled, the Stop command can take up to one second until the ready is active.
Example
: Stop the current activity and return the ISD-SR3000 processor to the IDLE state.
Source
Code
Byte Sequence
S
Host Controller
ISD-SR3000
00
00
Say Argumented Sentence
0x1E
SAS
Opcode:
Syntax:
Type:
SAS sentence_n tag_ref
Asynchronous
Description:
Announces sentence number sentence_n of the currently selected vocabulary
and passes arg to it. When playing is complete, the ISD-SR3000 processor sets
the EV_NORMAL_END bit in the status word and activates the MWRQST signal.
If the current vocabulary is undefined, ERR_INVALID is reported.
Tag_Ref can be replaced by an argument in the event the sentence was built
differently by the IVS tool (See Chapter 3 for a detailed description of all the
available arguments.)
Parameters:
sentence_n topic is one byte long and Tag_Ref (or Argument) is two bytes long
Voice Solutions in Silicon™
2-52
2—SOFTWARE
ISD-SR3000
Example:
Announce the first sentence in the sentence table of the currently selected vocabu-
lary with ‘3’ as the actual parameter topic and ‘6’ as the token ID.
Source
Byte Sequence
Code
SAS 0306
Host Controller
ISD-SR3000
1E
1E
00
00
03
03
06
06
Set Time and Day
SETD
Opcode:
Syntax:
Type:
0x0F
SETD time_and_day
Synchronous
Description:
Sets the system time and day as specified by the 2-bytes time_and_day
parameter.
Parameters:
The time_and_day parameter is encoded as follows:
BIT
DESCRIPTION
2-0
Day of the week (1 through 7)
Hour of the day (0 through 23)
Minute of the hour (0 through 59)
Must be set to 1.
7-3
13-8
15-14
Note: If time_and_day value is not valid, ERR_PARAM is set in the error word.
Example
: Set time and day to Monday 1:30AM (where Monday is the first day of the week.)
Source
Code
Byte Sequence
SETD DE09
Host Controller
ISD-SR3000
0F
0F
DE
DE
09
09
ISD
2-53
2—SOFTWARE
ISD-SR3000
Set Message Tag
0x05
SMT
Opcode:
Syntax:
Type:
SMT Tag_Ref
Synchronous
Description:
Sets the tag of the current message. To change the message tag, you should
first get the tag using the GMT command, read the tag, modify it and write it
back.
Parameters:
Tag_Ref is two bytes long.
Note: Message tag bits can only be cleared. Message tag bits are set only when a message is first creat-
ed. If the current message is undefined, ERR_INVALID is reported.
Example
:Change bit3 settingsinthe currentpointedmessage. Note thatthe ISD-SR3000 pro-
cessor ignores bits in the tag that are set to 1- only bit 3 is modified in the message tag.
Source
Byte Sequence
Code
SMT FF F7
Host Controller
ISD-SR3000
05
05
FF
FF
F7
F7
Voice Solutions in Silicon™
2-54
2—SOFTWARE
ISD-SR3000
Say One Word
0x07
SO
Opcode:
Syntax:
Type:
SO word_number
Asynchronous
Description:
Plays the word number word_number in the current vocabulary. When playback
of the selected word has been completed, the ISD-SR3000 processor sets the
EV_NORMAL_END bit in the status word and activates the MWRQST signal. If
word_number is not defined in the current vocabulary, or if it is an IVS control or
option code, ERR_PARAM is set in the error word. If the current vocabulary is
undefined, ERR_INVALID is reported.
word_number is one byte long. word_number may be any value from 0 through
the index of the last word in the vocabulary.
Parameters:
Example:
This command tells ISD-SR3000 to announce the first word in the word table of the
currently selected vocabulary.
Source
Byte Sequence
Code
SO 00
07
Host Controller
ISD-SR3000
00
00
07
ISD
2-55
2—SOFTWARE
ISD-SR3000
Set Prompts Type
0x20
SPT
Opcode:
Syntax:
Type:
SPT type id
Synchronous
Description:
Selects the vocabulary table to be used for voice synthesis. The vocabulary type
is set according to the type parameter:
0: For compatibility only.
1: External vocabulary in ROM.
2: External vocabulary in Flash.
3-7: Reserved.
The host controller is responsible for selecting the current vocabulary, using the
SPT command, before using any of the play commands, e.g.- SAS, SO, SS, SW.
Each external vocabulary table has a unique id that is part of the vocabulary
IVS User’s Guide
internal header (See the
for more details). If type is 1 or 2, the
ISD-SR3000 processor searches for the one byte id parameter in each
vocabulary table header until a match is found. If the id parameter does not point
to a valid IVS vocabulary, ERR_PARAM is set in the error word.
Parameters:
type and id are one byte long.
Example
: Select the vocabulary with vocabulary-id 3, which resides on a Flash as the current
vocabulary.
Source
Byte Sequence
Code
SPT 02 02
Host Controller
ISD-SR3000
20
20
02
02
03
03
Stop Recognition Immediately
SRI
Opcode:
Syntax:
Type:
0x5A
SRI
Synchronous
Description:
Stops recognition immediately by flushing all internal buffers. It is the same as
the regular S command in all other aspects.
Parameters:
Voice Solutions in Silicon™
2-56
2—SOFTWARE
ISD-SR3000
Example: Stop recognition process and immediately return the ISD-SR3000 processor to the
IDLE state .
Source
Byte Sequence
Code
SRI
5A
Host Controller
ISD-SR3000
5A
Say Sentence
1F hex
SS
Opcode:
Syntax:
Type:
SS sentence_n
Asynchronous
Description:
Say sentence number sentence_n of the currently selected vocabulary. If the
sentence has an argument, 0 is passed as the value for this argument. When
playing has been completed, the ISD-SR3000 processor sets the
EV_NORMAL_END bit in the status word and activates the MWRQST signal. If
sentence_n is not defined in the current vocabulary, ERR_PARAM is set in the
error word. If the current vocabulary is undefined, ERR_INVALID is reported.
Parameters:
sentence_n is one byte long
Example: This command tells ISD-SR3000 to announce the first sentence in the sentence ta-
ble of the currently selected vocabulary.
Source
Byte Sequence
Code
SS 00
1F
Host Controller
ISD-SR3000
00
00
1F
ISD
2-57
2—SOFTWARE
ISD-SR3000
Say Words
SW
Opcode:
Syntax:
Type:
0x21
SW n word1...wordn
Asynchronous
Description:
Plays
n
words, indexed by word1 to wordn. On completion, the
EV_NORMAL_END bit in the status word is set and the MWRQST signal goes
low. If one of the words is not defined in the current vocabulary, or if it is an IVS
control or option code, or if n > 20, ERR_PARAM is reported. If the current
vocabulary is undefined, ERR_INVALID is reported.
Parameters:
The parameters n, word1 through wordn, are each one byte
Example:
Announce, twice, the first word in the word table of the currently selected vocabulary.
Source
Code
Byte Sequence
SW 02 00 00
Host Controller
ISD-SR3000
21
21
02
02
00
00
00
00
Voice Solutions in Silicon™
2-58
2—SOFTWARE
ISD-SR3000
Topics Disable
0x44
TOPD
Opcode:
Syntax:
Type:
TOPD topic_id
Synchronous
Description:
Disables selected topics. If the topic number does not exist, this command sets
page 2-30
bit ERR_PARAM in the Error Word (see the GEW command on
).
topic_id identifies the topic to be disabled. The special value FF (hex) disables all
topics.
Parameters:
topic_id is one byte
Example:
ISD-SR3000 is instructed to disable Topic number 10 (hex).
Source
Code
Byte Sequence
TOPD 10
Host Controller
ISD-SR3000
0x44
0x44
10
10
Topic Enable
0x43
TOPE
Opcode:
Syntax:
Type:
TOPE topic_id
Synchronous
Description:
Enables selected topics. If the topic number does not exist, this command sets
page 2-30
bit ERR_PARAM in the Error Word (see the GEW command on
). The
value topic_id identifies the topic to be enabled. The special value FF (hex)
enables all topics.
Parameters:
topic_id is one byte long
ISD
2-59
2—SOFTWARE
ISD-SR3000
Example:
ISD-SR3000 is instructed to enable Topic number 05 (hex).
Source
Code
Byte Sequence
TOPE 05
Host Controller
ISD-SR3000
43
43
05
05
Topic Load
0x5B
TOPL
Opcode:
Syntax:
Type:
TOPL topic_id
Synchronous
topic_id
Description:
Loads topic
from external ROM/FLASH to the RAM.
NOTE: A topic must be loaded to the ISD-SR3000 RAM before it can be enabled
with the TOPE command.
Parameters:
topic_id is one byte long
Example:
Load topic 8 from the external non volatile memory.
Source
Code
Byte Sequence
TOPL 08
Host Controller
ISD-SR3000
5b
5b
08
08
Voice Solutions in Silicon™
2-60
2—SOFTWARE
ISD-SR3000
Topic Save
0x4D
TOPS
Opcode:
Syntax:
Type:
TOPS topic_id
Synchronous
topic_id
into the external non volatile memory. It is strongly
Description:
Saves topic
recommended to use this command for a topic with a dynamic list after adding a
new word (using the AAW command)
Parameters:
topic_id is one byte long
Example:
Save topic 8 to the external non volatile memory.
Source
Code
Byte Sequence
TOPS 08
Host Controller
ISD-SR3000
4d
4d
08
08
TOPU
Topic Unload
0x5C
Opcode:
Syntax:
Type:
TOPU topic_id
Synchronous
Description:
Unloads topic topic_id from the RAM.
NOTE: The host controller must load a topic before enabling it.
Parameters:
topic_id is one byte long.
ISD
2-61
2—SOFTWARE
ISD-SR3000
Example:
Load topic 8 from the external non volatile memory.
Source
Code
Byte Sequence
TOPU 08
Host Controller
ISD-SR3000
5c
5c
08
08
Tune
0x15
TUNE
Opcode:
Syntax:
Type:
TUNE index parameter_value
Synchronous
Description:
Sets the value of the tunable parameter identified by index to the value,
parameter_value. This command may be used to tune the DSP algorithms or
change other parameters. If you do not use TUNE, the ISD-SR3000 processor
uses default values. If index does not point to a valid tunable parameter,
ERR_PARAM is set in the error word.
Parameters:
index is one byte long and parameter_value is 2-byte long
Note: The tunable parameters are assigned with their default values on application of power. The INIT
command does not affect these parameters.
Example:
Change the ISD-SR3000 to enable the return of noise tokens.
Source
Code
Byte Sequence
TUNE 53 0001
Host Controller
ISD-SR3000
15
15
53
53
00
00
01
01
Voice Solutions in Silicon™
2-62
2—SOFTWARE
ISD-SR3000
Volume Control
0x28
VC
Opcode:
Syntax:
Type:
VC vol_level
Synchronous
Description:
Controls the energy level of all the voice outputs. The resolution is ±3 dB. The
actual output level is composed of the tunable VCD_PLAY_LEVEL variable, plus
the VOL_LEVEL. For example, if the tunable variable VCD_LEVEL is 6, and
vol_level is -2, then the output level equals VCD_PLAY_LEVEL + VOL_LEVEL =
4.
Parameters:
vol_level is one byte long
Example:
ISD-SR3000 is instructed to set the vol_level to +5 (hex).
Source
Code
Byte Sequence
VC 05
Host Controller
ISD-SR3000
28
28
05
05
ISD
2-63
2—SOFTWARE
ISD-SR3000
2.12 TUNABLE PARAMETERS
The tunable parameters are arguments that control some of the ISD-SR3000’s functionality.
These parameters can be read using the GTUNE command or changed using the TUNE com-
mand.
Table 2-16: Tunable Parameters Page Reference by Parameter Name (in Alphabetical Order)
Index
Number
Page Number in this
Chapter
Parameter Name
Channel 0 Delay: CFRD0
72
73
74
76
26
75
83
15
20
88
page 2-66
page 2-66
page 2-66
page 2-66
page 2-65
page 2-66
page 2-66
page 2-65
page 2-65
page 2-66
Channel 1 Delay: CFRD1
Channel 2 Delay: CFRD2
Data Valid Delay: CFET
DTMF Generation: DTMF_GEN_TWIST_LEVEL
Frame Synch Delay: CFSD
Noise Token Enable: Noise_Report_Flag
Tone Generation: TONE_GEN_LEVEL
VCD Playback and Voice Synthesis: VCD_PLAY_LEVEL
Dynamic Word Usage: WITH_DYNAMIC_WORDS
Voice Solutions in Silicon™
2-64
2—SOFTWARE
ISD-SR3000
Table 2-17: Tunable Parameters LIsted by Index Number
Description
Index
Parameter Name
Default
15
Tone Generation:
TONE_GEN_LEVEL
Controls the energy level at which DTMF and other tones
are generated. Each unit represents 3 dB. The default level
is the reference level.
6
For example, if you set this parameter to 4, the energy level
is 6 dB less than the default level. The actual output level is
the sum of TONE_GEN_LEVEL and the vol_level
parameter, controlled by the VC command. The tones are
distorted when the level is set too high.
Legal values: 0 < TONE_GEN_LEVEL + vol_level <12.
20
VCD Playback and Voice
Synthesis:
VCD_PLAY_LEVEL
Controls the energy during playback and external voice
synthesis. Each unit represents 3 dB. The default level is
the reference level.
6
For example, if you set this parameter to 4, the energy level
is 6 dB less than the default level. The actual output level is
the sum of VCD_PLAY_LEVEL and the vol_level parameter
(controlled by the VC command). Speech is distorted when
the level is set too high.
Legal values: 0 < VCD_PLAY_LEVEL + vol_level < 12.
26
DTMF Generation:
A one-byte value that controls the twist level of a DTMF
66
DTMF_GEN_TWIST_LEVEL tone, generated by the GT command, by controlling the
energy level of each of the two tones (low frequency and
high frequency) composing the DTMF tone. The Least
Significant Nibble (LSN) controls the low tone and the Most
Significant Nibble (MSN) controls the high tone. The energy
level of each tone, as measured at the output of a TP3054
codec (before the DAA) connected to the ISD-SR3000
processor, is summarized in the following table:
Nibble Value
Tone Energy (dB-Volts)
0
0
1
2
3
4
5
6
7
–17.8
–14.3
–12.9
–12.4
–12.0
–11.9
–11.85
–11.85
8 - 15
The volume of the generated DTMF tone during
measurements was 6. (TONE_GEN_LEVEL+vol_level = 6).
Note: the vol_level parameter is controlled by the VC
command.
For the default level, the high tone is –14.3 dBV and the low
tone is –12.4 dBV, which gives a DTMF twist level of 1.9 dB.
The energy level of a single generated tone is the level of
the low tone.
ISD
2-65
2—SOFTWARE
ISD-SR3000
Index
Parameter Name
Description
Default
72
Channel 0 Delay:
CFRD0
The delay of codec channel 0 from Frame Synch 0 (CFS0)
to start of valid data.
1
Legal values: 0 to 255
73
74
75
76
Channel 1 Delay:
CFRD1
The delay of codec channel 1 from Frame Synch 0 (CFS0)
to start of valid data.
Legal values: 0 to 255
9
Channel 2 Delay:
CFRD2
The delay of codec channel 2 from Frame Synch 0 (CFS0) 17
to start of valid data.
Legal values: 0 to 255
Frame Synch Delay:
CFSD
The delay of Frame Synch 1 (CFS1) from Frame Synch 0
(CFS0).
Legal values: 0 to 255
16
25
Data Valid Delay:
CFET
The delay between Frame Synch 0 (CFS0) to end of valid
data of all channels.
Legal values: 0 to 255
83
88
Noise Token Enable:
Noise_Report_Flag
When set to one, this tunable enables the return of noise
tokens when they have identified by the ISD-SR3000.
0
1
Dynamic Word Usage:
WITH_DYNAMIC_WORDS
This tunable is used when working with applications that do
not support dynamic words.
Note: without changing this tunable, the application will
require the XYZ table in the Flash, which is unnecessary for
non-dynamic-word applications. This table is in use when
extracting the phonemes from a recorded voice tag.
Voice Solutions in Silicon™
2-66
2—SOFTWARE
ISD-SR3000
2.13 EXAMPLE OPERATION PROCEDURES
2.13.1 ISD-SR3000 INITIALIZATION
•
•
Reset the ISD-SR3000 processor by activating the RESET signal.
Issue a CFG (Configure ISD-SR3000) command to change the configuration according to
your environment.
•
•
Issue an INIT (Initialize System) command to initialize the ISD-SR3000 firmware.
Issue a TUNE (Tune Parameter) command to change some of the ISD-SR3000 tunable
Tunable Parameters
parameters (only if you must change their default values. Refer to the
page 2-64
table on
.)
2.13.2 NORMAL OPERATION PROCEDURE
The following application contains grammar and prompts as follows:
Grammar (tokens are automatically indexed, in alphabetical order, by the compiler(s)
<Topic 1
>
Commands:
HANG UP, MUTE, ANSWER PHONE, STORE NAME, CALL NAME
0- ANSWER
1- CALL
2- HANG
3- MUTE
4- NAME
5- PHONE
6- STORE
7- UP
<Topic 2>
0- NO
1- YES
ISD
2-67
2—SOFTWARE
ISD-SR3000
<Topic 3>
0- EIGHT
1- FIVE
2- FOUR
3- NINE
4- OH
5- ONE
6- SEVEN
7- SIX
8- THREE
9- TWO
A- ZERO
<Topic 4>
0- Dynamic List
-------------------------------------------------------
Prompts (by their hexidecimal values)-
0 to 9- Zero, One, ....., Nine
A- Go Ahead
B- Muted
C- Good By
D- Please Say The Name You Want To Store
E- Please Repeat The Name
F- Please Say The Telephone Number
10- Is This Correct
To initialize the recognition engine, the host controller will send the following commands to load
topics 1, 2, 3 and 4 to the RAM, and enable topic 1:
Voice Solutions in Silicon™
2-68
2—SOFTWARE
ISD-SR3000
TOPL 1
TOPE 1
TOPL 2
TOPL 3
TOPL 4
Once all the desired topics are loaded and enabled, the host controller should enable the rec-
ognition:
RE
At this point the recognition engine starts processing the incoming data from the system CO-
DEC. When the user pronounces the command “Answer Phone”, the MWRQST signal goes
low and the host controller should perform the following commands:
Note: return values are marked with brackets.
GSW [08 00]
The status word returned 08 00 indicating that a recognition result is in the recognition buffer.
The host controller should retrieve the words until the buffer is empty (noted by FF FF) as fol-
lows:
GNR [01 00]
GNR [01 05]
GNR [FD 00]
GNR [FF FF]
Using this internal look up table, the host controller interprets the words to be ANSWER PHONE
and responds by playing a prompt “Go Ahead”.
Note: the host controller must first stop the recognition engine before playing a prompt; it is recommended
that you use the immediate stop command (SRI) for the quickest completion of the stop command.
SRI
SW 1 A
At this point the host controller should wait for the EV_NORMAL_END bit to be set in the status
register (0x20), indicating that the prompt finished playing (The host controller will get the status
register after the MWRQST line is asserted)
GSW [00 20]
The host controller can now enable the recognition engine and wait for the next command. The
following set of commands will demonstrate a similar procedure, but this time the user will say
“HANG UP” and the prompt will be “Good Bye”:
RE
(Wait for MWRQST to go low)
Note
: Every time a required token is entered into the reco queue, the EV_RECO_QUEUE is
set, causing the MWRQST to go low. This means that a fast reading of the reco queue can
cause or result in several assertions of the MWRQST.
ISD
2-69
2—SOFTWARE
ISD-SR3000
GSW [08 00]
GNR [01 02]
GNR [01 07]
GNR [FD 00]
GNR [FF FF]
SRI
SW 1 B
(Wait for MWRQST to go low)
GSW [00 20]
RE
(Wait for MWRQST to go low)
2.13.3 ADD VOICE TAG PROCEDURE
In this section we will describe the procedure for adding a new user word, the voicetag. This
example assumes that the recognition engine is enabled, the user said “STORE NAME”and
the ISD-SR3000 asserted the MWRQST signal:
GSW [08 00]
GNR [01 06]
GNR [01 04]
GNR [FD 00]
GNR [FF FF]
SRI
SW 1 D
(Wait for MWRQST to go low)
GSW [00 20]
These first few commands are similar to the previously described procedure for extracting
words from the ISD-SR3000. After the host controller identifies the “STORE NAME”command,
Record for Reco
it should execute the
command:
RR
The host controller should wait for 4 seconds before stopping the recording (using the Stop
command). Then the host controller should disable all of the topics, load and enable only topic
0 (the phonemes topic) and run the ROL command for extracting the phoneme sequence from
the recording:
S
TOPD FF
TOPL 0
TOPE 0
ROL
(Wait for MWRQST to go low)
At this stage the host controller can retrieve the number of phonemes extracted from the re-
cording for evaluating whether to continue with the procedure or prompt the user to record
Voice Solutions in Silicon™
2-70
2—SOFTWARE
ISD-SR3000
again. The more phonemes the voice tag has, the better the received recognition results. (A
recommended threshold number is seven phonemes). Assuming the host controller received
12 phonemes and continued, it then should add the phoneme information of the voice tag to a
dynamic list in a topic (as topic 4 with dynamic list number 0) using the AAW command. The
return value would be a token number that identifies the new word.
GPC [00 0A]
AAW 04 00 [01]
After the host controller added the new word to a topic, it will now conduct a verification proce-
dure by disabling all topics and enabling the one with the new word. It will then prompt the user
to repeat the name.
TOPD FF
TOPE 4
SW 1 E
(Wait for MWRQST to go low)
GSW [00 20]
RE
(Wait for MWRQST to go low)
GSW [08 00]
GNR [04 01]
GNR [FF FF]
After the host controller confirms the returned token to be the same as the AAW command pre-
viously returned, it should set the tag of the recorded message to correspond with the token
and topic so that in the future it can easily play this message again.
SRI
SMT 04 01
The host controller can now continue to prompt the user for information to be associated with
the new word, in our case a telephone number. After the host controller plays the appropriate
prompt, it disables all topics and enables the digit topic.
SRI
SW 1 5
(Wait for MWRQST to go low)
GSW [00 20]
TOPD FF
TOPE 3
RE
(Wait for MWRQST to go low)
GSW [08 00]
GNR [03 05]
ISD
2-71
2—SOFTWARE
ISD-SR3000
GNR [03 09]
GNR [03 08]
GNR [03 02]
GNR [FF FF]
The host controller will interpret this number sequence to be ”1234”. The host controller can
confirm its findings with the user by playing back the numbers to the user and prompting the
user with a yes/no question: “Is this correct”(prompt number 10). The host controller then en-
ables the yes/no topic and waits for an answer.
SW 5 1 2 3 4 10
(Wait for MWRQST to go low)
GSW [00 20]
TOPD FF
TOPE 2
RE
(Wait for MWRQST to go low)
GSW [08 00]
GNR [02 01]
GNR [FF FF]
The host controller received a “Yes” answer and must now either store the information in its
memory or attach it to the recording of the voice tag by using the INFS command as follows:
INFS 0 4 1 2 3 4
This commandwill store the information on the message informationheader startingfromoffset
0 and can later be extracted by the host controller using the INFG command.
Now that a new word has been added to topic 4, the host controller must ask the ISD-SR3000
to save this topic (TOPS command) back into its non volatile memory so that the next time the
system loads, the updated topic will be loaded.
TOPS 4
This finalizes the procedure for adding a user voice tag to the ISD-SR3000, and the host con-
troller can continue to the next state in its state machine. Ifthe nextstate isreturningtothe main
menu, the following commands should be assigned:
TOPD FF
TOPE 1
RE
Voice Solutions in Silicon™
2-72
IVS
3—
ISD-SR3000
Chapter 3—INTERNATIONAL VOCABULARY SUPPORT (IVS)
and the IVS Tool
3.1
INTERNATIONAL VOCABULARY SUPPORT (IVS)
IVS is a mechanism by which the ISD-SR3000 processor utilizes several vocabularies stored
on an external storage device. IVS enables the ISD-SR3000 to synthesize messages with the
same meaning, but in different languages, from separate vocabularies.
3.2
IVS FEATURES
•
•
•
Multiple vocabularies stored on a single storage device.
Plug-and-play. The same Host Controller code is used for all languages.
Synthesized and recorded messages use the same voice compression algorithm to achieve
equal quality.
•
•
•
You have <n> messages
.)
Argumented sentences. (For example:
Auto-synthesized time-and-day stamp (driven by the ISD-SR3000 processor’s clock).
Support for various language and sentence structures:
–
have one message
You have two
versus
One versus many. (For example: You
messages
.)
None versus many. (For example:
messages
–
You have no messages
You have two
versus
.)
Number synthesis (English
Twenty-one
–
–
–
—Eighty
Quatre-vingt
versus French—
).
Einundzwanzig
Word order (English—
versus German—
).
Days of the week (Monday through Sunday versus Sunday through Saturday).
3.3
THE IVS TOOL
The IVS tool includes two utilities:
1.
2.
The DOS-based IVS Compiler
IVSTOOL for Windows. A Windows 95/98/2000 utility
The tools help create vocabularies for the ISD-SR3000 processor. They take you from design-
ing the vocabulary structure, through defining the vocabulary sentences, to recording the vo-
cabulary words.
ISD
3-1
IVS
3—
ISD-SR3000
IVS COMPILER
The IVS compiler runs on MS-DOS (version 5.0 or later) and enables you to insert your own
vocabulary, (i.e., basic words and data used to create numbers and sentences, as directories
and files in MS-DOS). The IVS compiler then outputs a binary file containing that vocabulary.
In turn, this information can be burned into an EPROM or Flash memory to be used by the ISD-
SR3000 software.
IVS VOICE COMPRESSION
Each IVS vocabulary can be compiled with either the 4.7 Kbit/s, the 6.7 Kbit/s or the 8.7 Kbit/s
voice compression algorithm, or in PCM format. Define the bit rate before compilation. The ISD-
SR3000 processor automatically selects the required voice decompression algorithm when the
SV command chooses the active vocabulary.
GRAPHICAL USER INTERFACE (GUI)
The IVS package includes a Windows utility to assist the vocabulary designer to synthesize
sentences. With this utility, you can record words, compose sentences and listen to words and
sentences in the specific compression rate quality selected.
3.3.1 HOW TO USE THE IVS TOOL WITH THE ISD-SR3000 PROCESSOR
The IVS tool creates IVS vocabularies, and stores them as a binary file. This file is burnt into a
ROM device or programmed into a Flash memory device. The ISD-SR3000 processor SPT (Set
Prompt Type) command is used to select the required vocabulary. The SW (Say Words), SO,
SS (Say Sentence) and SAS (Say Argumented Sentence) commands are used to synthesize
the required word or sentence. The typical vocabulary-creation process using the IVS Tool soft-
ware is as follows:
1.
2.
Design the vocabulary.
Create the vocabulary files (as described in detail below). Use IVS TOOL for Windows to
simplify this process.
3.
4.
5.
Record the words using any standard PC sound card and sound editing software, that
can create.wav files.
Run the IVS compiler to compress the.wav files, and compile them and the vocabulary
tables into an IVS vocabulary file.
Repeat steps 1 to 4 to create a separate IVS vocabulary for each language that you want
to use. Note that each language file must have a different ID number. To specify an ID
Number, go to the “Vocabulary ID” option in the Vocabulary/Build Options menu.
6.
Exit IVS Tool and burn the IVS vocabulary files into a ROM (or Flash memory) device.
Note: to concatenate vocabularies with multiple languages into one file, complete the fol-
lowing steps.
Voice Solutions in Silicon™
3-2
IVS
3—
ISD-SR3000
•
Load each vocabulary into flash. You must load the vocabularies in consecutive blocks
onthe flashandthe orderinwhichyouloadthe vocabulariesdictatesthe orderinwhich
they are available on the flash. For example, the first vocabulary you load becomes
vocabulary #1 on the flash.
•
•
The two files are now combined into a single file.
To switch between the two languages in real time operation, use the SPT command.
type id
(See page 2-56 for details.) The SPT
vocabulary IDs.
command switches between specified
Once the vocabularyis inplace, the speechsynthesiscommandsofthe ISD-SR3000 processor
can be used to synthesize sentences.
Figure 3-39 shows the vocabulary-creation process for a single table on a ROM or Flash mem-
ory device.
Figure 3-39: Creation of an IVS Vocabulary
.wa v File
.wa v Files
Editor
Compressed
Files (.vcd)
Number
Ta bles
IVS Compiler
IVS TOOL
for
PC
+
Sound
Ca rd
INJ
Comma nd
IVS Voca bula ry
Files
Windows
Sentence
Ta ble
ROM
Progra mmer
Fla sh
.ini File
ROM
ISD
3-3
4—Glossary
ISD-SR3000
Chapter 4—Glossary
This glossary contains the following information
Topic
Page Number in this Chapter
page 4-2
Error Codes and
Explanations
ISD
4-1
4—Glossary
ISD-SR3000
4.1
ERROR CODES AND EXPLANATIONS
ERR_PARAM (bit 3 in error word) occurrences:
COMMAND
RR (record for reco)
RECORD
PARAMETER
LEGAL VALUE
compression_type
0 - 3
0 - 3
compression_type
word index
SO (Say One Word)
SW (Say Words)
up to number of words in IVS
up to number of words in IVS
word index
number of words
up to MAX_SENT_LEN
(currently 20)
SAS (Say Argumented
Sentence)
sentence number
sentence number
up to number of sentences in
IVS
SS (Say Sentence)
up to number of sentences in
IVS
SETD (Set Date)
minute
hour
0 - 59
0 - 23
1 - 7
day
TUNE
tune_index
up to number of tunables
(currently 86)
SPT (Set Prompt Type)
ivs_type
IVS_external (1)
All Topics Command: TOPS/
TOPD/TOPE/UTOP/LTOP
topic index
up to Max Topics
all except LTOP also check
that the topic is already loaded
ERR_INVALID (bit 7 in error word)
This invalid error occurs in the following conditions:
•
while trying to use a command that refers to the current message when no message is
declared current. These commands include: PLAY, CMT, DM, GML, GMT, INFG, INFS.
•
•
•
when IVS is not set
when using GTD (Get Time and Date) before setting a date
when the RR command is not immediately followed by the ROL command. For example: if
RR is called and followed by TOPS, RR, DMS or DM, then the invalid error is generated.
Voice Solutions in Silicon™
4-2
5—Physical Dimensions
ISD-SR3000
Chapter 5—Device Physical Dimensions
Figure: 5-1:100L PQFP (14x20x2.75mm footprint 3.2mm) IQC
H
D
D
E
H
E
e
b
c
A2
A1
A
G
See Detail
L
Y
Seating Plane
L1
Controlling dimension : Millimeters
Dimension in inch Dimension in mm
Symbol
Min Nom Max
Min Nom
Max
A
0.130
0.018
3.30
0.45
2.87
0.40
0.20
14.10
20.10
0.80
A1
0.014
0.25
2.57
0.20
0.10
13.90
19.90
0.50
0.35
2.72
0.30
0.15
14.00
20.00
0.65
0.010
0.101
0.008
0.004
0.547
0.783
0.020
0.669
0.905
0.025
A2
b
0.107 0.113
0.012 0.016
c
0.006
0.551
0.787
0.026
0.008
0.555
0.791
0.032
0.685
0.921
0.037
D
E
e
H
17.20 17.40
23.20 23.40
0.677
0.913
0.031
0.063
17.00
23.00
0.65
D
H
E
L
0.80
1.60
0.95
L1
Y
0.003
7
0.08
7
0
0
G
ISD
5-1
ISD-SR3000
5—Physical Dimensions
Voice Solutions in Silicon™
5-2
相关型号:
©2020 ICPDF网 联系我们和版权申明