Table of Contents

Advertisement

Quick Links

MSP53C691 Speech
Synthesizer
User's Guide
December 2000
MSDS Speech
SPSU020

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the MSP53C691 and is the answer not in the manual?

Questions and answers

Summary of Contents for Texas Instruments MSP53C691

  • Page 1 MSP53C691 Speech Synthesizer User’s Guide December 2000 MSDS Speech SPSU020...
  • Page 2 IMPORTANT NOTICE Texas Instruments and its subsidiaries (TI) reserve the right to make changes to their products or to discontinue any product or service without notice, and advise customers to obtain the latest version of relevant information to verify, before placing orders, that information being relied on is current and complete. All products are sold subject to the terms and conditions of sale supplied at the time of order acknowledgment, including those pertaining to warranty, patent infringement, and limitation of liability.
  • Page 3 How to Use This Manual Preface Read This First About This Manual This user’s guide provides information on the MSP53C691 mixed signal pro- cessor. This information includes architecture overview, detailed architecture description, assembly language instruction set, code development tools, and customer information.
  • Page 4 Related Documentation From Texas Instruments Information About Cautions This book contains cautions. This is an example of a caution statement. A caution statement describes a situation that could potentially damage your software or equipment. The information in a caution is provided for your protection. Please read each caution carefully.
  • Page 5: Table Of Contents

    ............MSP53C691 Hardware Description .
  • Page 6 2–1 MSP53C691 Interfacing Diagram—4-Bit Mode ........
  • Page 7: Introduction

    Chapter 1 Introduction This chapter briefly describes the features, hardware, and software of the MSP53C691 speech synthesizer. Topic Page Description ...........
  • Page 8: Description

    The MSP53C691 is a standard slave synthesizer from Texas Instruments that accepts compressed speech data from other microprocessors/microcontrol- lers and converts it to speech. This allows the TI MSP53C691 to be used with a master microprocessor/microcontroller in various speech products, includ- ing electronic learning aids, games, and toys.
  • Page 9: Msp53C691 Device

    1.3 MSP53C691 Device The MSP53C691 is optimized to support a four-bit-wide data transfer protocol. The MSP53C691 has two status bits and three control bits which control the communication protocol between the master and the slave. The MSP53C691 also has one bit (data/command) which differentiates between command or speech data feeding into the slave.
  • Page 10: Pin Assignments And Description

    Pin Assignments and Description 1.4 Pin Assignments and Description Figure 1–1 shows the pin assignments for the MSP53C691. Table 1–1 pro- vides pin functional descriptions. Figure 1–1. MSP53C691 Pin Assignments MSP53C691 PM PACKAGE (TOP VIEW) 63 62 61 60 59...
  • Page 11: Msp53C691 Signal Description

    Pin Assignments and Description Table 1–1. MSP53C691 Signal Description (Continued) NAME DESCRIPTION DATA0–DATA3 39–36 25–22 I/O Data bits 0 through 3 (in 4-bit or 8-bit mode) DATA4 or I/O Data bit 4 (in 8-bit mode) DATA/COMMAND Data/command control bit (in 4-bit mode). Low signal indicates command and high signal indicates data.
  • Page 12: Dac Information

    1.5 DAC Information A two-pin push pull that can directly drive a 32-Ω speaker is used in the MSP53C691. Refer to the MSP50x6x Mixed Signal Processor Users Guide , literature number SPSU014, for more information on the D/A and amplifier circuit.
  • Page 13: Msp53C691 Hardware Description

    Chapter 2 MSP53C691 Hardware Description This chapter describes the MSP53C691 hardware, including interface, initial- ization, and timing. Topic Page MSP53C691 Interface Overview ....... .
  • Page 14: Msp53C691 Interface Overview

    INRDY low. The microcontroller sends data to the MSP53C691 by setting R/W low and then pulsing STROBE high-low-high. The MSP53C691 latches the data at the rising edge of the STROBE pulse. The MSP53C691 also sets INRDY high at the rising edge of the STROBE pulse.
  • Page 15: Microprocessor Interface Description

    Microprocessor Interface Description 2.2 Microprocessor Interface Description As mentioned in section 2.1, the MSP53C691 interfaces with the master mi- crocontroller either in 4-bit or in 8-bit mode. 2.2.1 4-Bit Mode The interface between the microcontroller and the MSP53C691 consists of four control lines, two status lines, and four data lines.
  • Page 16: 8-Bit Mode

    Read/write signal from microcontroller RESET Active low reset signal from microcontroller INRDY: Active low indicates that the MSP53C691 is ready to accept data. OUTRDY: Active low indicates that the MSP53C691 is ready to send data. DATA0–DATA7 Data bits 0 through 7 PD4–PD7...
  • Page 17: Read Operation By The Master

    The following events take place during the read operation: 1) The MSP53C691 puts the data to be sent to the master on the internal bus. 2) The MSP53C691 sets OUTRDY low to indicate that it is ready to send data to the microcontroller.
  • Page 18: Write Operation By The Master

    INRDY low when the slave is ready to receive data. The following events take place during the write operation: 1) The MSP53C691 sets INRDY low to indicate that it is ready to receive data from the microcontroller.
  • Page 19: Msp53C691 Device Initialization

    100 kΩ MSP53C691 1 kΩ RESET 1 µF The MSP53C691 is considered to be properly initialized after the following events take place: 1) The microcontroller sets RESET low. 2) The microcontroller sets STROBE high throughout the initialization pro- cess. 3) The microcontroller sets RESET high.
  • Page 20: Microprocessor Interface Timing

    DATA(0–3) DATA4 2.6 Microprocessor Interface Timing The MSP53C691 has a self-contained clock generation system. This flexible clock generation system enables the software to control the clock over a wide frequency range. The implementation uses a phase-locked-loop (PLL) circuit that drives the processor clock to a selectable frequency between the minimum and maximum ranges.
  • Page 21: Oscillator And Pll Connection

    Resistor Trim Operation Connections MSP50C691 OSCIN OSCOUT R (RTO) = 470 kΩ 1%† C (PLL) = 3300 pF† † Keep these components as close as possible to the OSC IN , OSC OUT , and PLL pins. MSP53C691 Hardware Description...
  • Page 22 2-10...
  • Page 23: Msp53C691 Software Description

    Chapter 3 MSP53C691 Software Description This chapter overviews the software and describes the commands used to program the MSP53C691. Topic Page Software Overview ..........
  • Page 24: Software Overview

    Two types of communications are sent to the MSP53C691: speech data streams and commands (with parameters). The command headers and the level 1 and level 2 parameters are always sent to the MSP53C691 a nibble at a time through data lines DATA0–DATA3. However, the speech data is sent over the four-bit data lines (DATA0–DATA3) in four-bit mode, while speech...
  • Page 25: Sequence Of Command Codes And Data Streams

    DATA4 (DATA/COMMAND) bit is low when a command or its pa- rameters are written to the MSP53C691, and the DATA4 (DATA/COM- MAND) bit is high when the speech or FM data is written to the MSP53C691. While sending speech or command in four-bit mode, the data is always sent most-significant nibble first and least-significant nibble last.
  • Page 26: Parameters

    (four nibbles specifying the word to be written in the register). All the command headers and Level 1 and level 2 parameters are sent to the MSP53C691 a nibble at a time with the DATA4 (DATA/COMMAND) bit set low. While...
  • Page 27: Command Codes

    FM bytes needed to fill up the FM buffer. CAUTION The MSP53C691 waits until all of the four nibbles have been sent to the microcontroller. If the microcontroller delays in reading the data from the MSP53C691, the speech operation can be interrupted. Therefore, the microcontroller must read the data as soon as the OUTRDY goes low.
  • Page 28 N 1 N 2 N 3 N 4 —Represents four nibbles, with N 1 being the first nibble sent and N 4 being the 4th nibble sent (MSB and LSB). The numbers in the box represent the actual value of the nibble sent to the MSP53C691.
  • Page 29: Command Codes

    N 1 N 2 N 3 N 4 —Represents four nibbles, with N 1 being the first nibble sent and N 4 being the 4th nibble sent. The numbers in the box represent the actual value of the nibble sent to the MSP53C691.
  • Page 30: Description Of The Command Codes

    The command header for configuring internal registers for the MSP53C691 is one nibble long and of value 1 as shown. This header is sent across the four data lines. The sequence of events to configure the inter- nal registers is as follows: 1) The MSP53C691 pulls INRDY low to request a command or data.
  • Page 31 The data is 16 bits long and is transferred to the MSP53C691 a nibble at a time (most-sig- nificant nibble first). The master must send four nibbles (for 16-bit data) back to back in response to four consecutive lowerings of INRDY.
  • Page 32: Command Header 2-Set/Clear I/O Ports, Pd4 Through Pd7

    DATA1 DATA0 2) The MSP53C691 pulls INRDY low again to receive the level 1 parameter. The level 1 parameter for this command is only one nibble long and is effectively written to the upper four bits of the port (PD4–PD7). This one- nibble parameter defines which pins are being toggled (see examples below).
  • Page 33: Command Header 3-Read Contents Of I/O Ports

    DATA2 DATA1 DATA0 3) The MSP53C691 pulls INRDY low again to receive the level 1 parameters. The level 1 parameter is two nibbles long and defines the address of the port, see the following example: Most significant ( first nibble)
  • Page 34 (DATA0–DATA3) to the master—the first being the most-significant nibble. CAUTION The MSP53C691 waits until all of the four nibbles have been sent to the microcontroller. If the microcontroller delays in reading the data from the MSP53C691, the speech operation can be interrupted. Therefore, the microcontroller must read the data as soon as the OUTRDY goes low.
  • Page 35: Command Header 4-Start Speaking

    3.5.4 Command Header 4—Start Speaking This command is used to command the MSP53C691 to start speaking. This command has several level 1 parameters to describe the mode in which the MSP53C691 speaks. The command header is one nibble long and is written 0100 as shown in the following table.
  • Page 36 The following typical sequence of events takes place while playing CELP, MELP, or ADPCM in four-bit mode: 1) The MSP53C691 pulls INRDY low and waits for a command from the master. 2) The master sends the command header 0x4 (command header for speak- ing in four-bit mode) on the data bus.
  • Page 37 For example, to send the speech data byte 0x24 to the MSP53C691, the master must put 0x12 on the data bus in response to the lowering of INRDY. When the MSP53C691 is again ready to receive the next nibble, the master puts 0x14 on the data bus again.
  • Page 38 The following is a typical sequence of events that takes place while playing CELP, MELP, or ADPCM in eight-bit mode: 1) The MSP53C691 pulls INRDY low and waits for a command from the master. 2) The master sends the command header 0x04 to the MSP53C691. Note that writing 0x04 on the data bus ensures that the DATA4 line is also low, indicating that the value on data lines DATA0–DATA3 is a command.
  • Page 39 (0, 0, 5, and 5) if the speaking of the phrase was successful. 12) INRDY goes low, indicating that the MSP53C691 is ready to receive a new command. At this point the slave changes back to four-bit mode. Now the master can send any command to the slave on the four-bit data bus (DATA0–DATA3) with the DATA4 line pulled low.
  • Page 40 Description of the Command Codes 4) The master sends 0x03 to the MSP53C691 as the level 1 parameter to in- dicate the test mode. Most Significant DATA LINES DATA4 DATA3 DATA2 DATA1 DATA0 Level 1 parameter sent 5) The MSP53C691 interprets the command and initializes itself to get ready to go to the test mode.
  • Page 41 MSP53C691 in response to each lowering of INRDY. The following is a typical sequence of events for FM transfer: 1) The MSP53C691 pulls INRDY low and waits for a command from the mas- ter.
  • Page 42 Third nibble sent Least Significant Fourth nibble sent 8) The MSP53C691 then pulls INRDY low to indicate that it is ready to re- ceive FM data. 9) The master can now start sending FM data from a file in response to each lowering of INRDY.
  • Page 43 Description of the Command Codes 11) When the MSP53C691 needs more FM data, it pulls OUTRDY low to send a nibble back to the master. The master must read the nibble from the bus. The MSP53C691 pulls OUTRDY low three more times to transfer a total of four nibbles to the master.
  • Page 44 Least Significant Last nibble sent 16) Once all of the promised FM bytes has been sent, the MSP53C691 pulls INRDY low again and waits for a command from the master. The master can send a valid command to the MSP53C691 (if desired) or a dummy command (0x00) if it has nothing else to send.
  • Page 45 3) After receiving the command header, the MSP53C691 pulls INRDY low again to request the level 1 parameter from the master. 4) The master sends 0x5 to the MSP53C691 as the level 1 parameter to indi- cate the four-bit transfer mode for playing mixed mode.
  • Page 46 Third nibble sent Least Significant Fourth nibble sent 8) The MSP53C691 then pulls INRDY low again to indicate that it is ready to receive FM data. 9) The master can now start sending FM data from a file in response to each lowering of INRDY.
  • Page 47 Description of the Command Codes 10) The MSP53C691 starts playing FM after the buffer is filled (that is, the first 24 (decimal) bytes from the file has been received). The MSP53C691 still continues to pull INRDY low and waits for speech data or command from the master.
  • Page 48 CELP/MELP data or respond- ing to an FM request. 17) If the master has sent the last nibble of a file to the MSP53C691 buffer, then it can send dummy commands (0x00) in response to INRDY low if it is not servicing an FM request or does not have any valid commands to send.
  • Page 49 20) After the 0x4 has been received, the MSP53C691 pulls INRDY low again requesting the level 1 parameter from the master. 21) The master must now send 6 as the level 1 parameter to the MSP53C691, letting it know that it wishes to speak multiple files.
  • Page 50 If the FM is finished while the MSP53C691 is still speaking a phrase in MELP/ CELP, then the MSP53C691 sends 0, 0, 5, and 3 to let the master know that the playing of FM has ended and continues to pull INRDY low to receive the MELP/CELP speech data.
  • Page 51: Command Header 5-Stop Speaking

    Level 1 parameter sent 5) The MSP53C691 interprets the command and initializes itself to get ready to go to the test mode. 6) The MSP53C691 outputs a pure sine wave tone of 1 kHz frequency through its DAC pins. 3.5.5 Command Header 5—Stop Speaking...
  • Page 52 Command header set 3) The MSP53C691 pulls INRDY low again requesting the level 1 command. 4) The master sends the level 1 command 0x2 to the MSP53C691 if it is ready to stop speaking CELP/MELP but must continue playing FM.
  • Page 53: Command Header 6-Adjust The Volume

    Description of the Command Codes 6) The MSP53C691 pulls OUTRDY low again sending a total of four nibbles: either 0, 0, 5, and 4 indicating the successful stopping of the speaking of the phrase and the command, or 0, 0, 5, and 3 indicating the successful stopping of FM and completion of the command.
  • Page 54: Command Header 7-Return Buffer Status

    DATA2 DATA1 DATA0 5) In return, the MSP53C691 pulls OUTRDY low to send a nibble back to the master. The master reads the nibble from the MSP53C691. The MSP53C691 pulls OUTRDY low again sending a total of four nibbles: 0,...
  • Page 55: Command Header 9-Receive Fm Data

    Note: When the master is ready to wake up the MSP53C691, it must send a dummy byte to the MSP53C691 to respond to the INRDY low. The wakeup time from light sleep is the lowest. The MSP53C691 takes more time to wake up from mid and deep sleep because ramp-up and stabilization of the clock is required in mid and deep sleep.
  • Page 56 INRDY low again three more times after that requesting the remaining three nibbles. 5) After all the four nibbles has been received, the MSP53C691 changes the pitch or speed of the speech file as requested. 6) After that the MSP53C691 pulls INRDY low again to request another com- mand or MELP data.
  • Page 57: Msp53C691 Timing Considerations

    Chapter 4 MSP53C691 Timing Considerations This chapter discusses general timing constrains and waveforms. Topic Page General Constraints ......... . .
  • Page 58: General Constraints

    General Constraints 4.1 General Constraints The sound quality of the speech produced by the MSP53C691 is sensitive to the timing of speech data transfers from the master microprocessor. The speech data is stored in a circular buffer. The buffer sizes are 26 bytes for FM and 68 bytes for CELP, MELP, and ADPCM.
  • Page 59: Msp53C391 Timing Waveforms

    The average time between INRDY low for MELP speech data transfer is 122 µS. The average time between INRDY low for FM speech data transfer only is 183 µS. The average time between INRDY low for ADPCM speech data transfer is 30.5 µS. MSP53C691 Timing Considerations...
  • Page 60: Mix Mode

    MELP and FM is 91.5 µS. NOTE: The time between INRDY low is less than the stated average while a command is being transferred. The parallel port MSP53C691 hardware interface connection is shown in Fig- ure 4–1. Figure 4–1. MSP53C691 Hardware Interface Connection...
  • Page 61: Designing The Master Microcontroller Software

    Appendix A Designing the Master Microcontroller Software This chapter covers the master microcontroller software design. Topic Page Master Code Flow ..........Parallel Port C Reference Code .
  • Page 62 A–5 for playing MELP/CELP and mixed mode as an aid in writing the master code’s interface. A reference code in C is also provided to interface the MSP53C691 to the PC’s parallel port to play MELP/CELP. It is recommended that the suggested flow of the master code be followed as closely as possible.
  • Page 63: Program Flow For The Master Main Routine

    Master Code Flow Figure A–1. Program Flow for the Master Main Routine Start Mainloop Pull Reset Low Pull Reset High Send 0xB Enable Inready/ Outready Interrupt Using Crystal Trim Send 0x1 Send 0x2 Designing the Master Microcontroller Software...
  • Page 64: Program Flow For An Isr Tied To The Falling Edge Of Outrdy

    Master Code Flow Figure A–2. Program Flow for an ISR Tied to the Falling Edge of OUTRDY Start Raise R/W Lower Strobe Read Value From Databus and Store It Raise Strobe Is This the Fourth Nibble Interpret Return Value and Set Flags for Acting on It...
  • Page 65: Program Flow For An Isr Tied To The Falling Edge Of Inrdy To Play Mixed Mode

    Master Code Flow Figure A–3. Program Flow for an ISR Tied to the Falling Edge of INRDY to Play Mixed Mode Start Need to Send Command Header 4 and Level 1 Paremeter 5 Send 4 First and Then 5 Has Slave Been Put to Sleep Wakeup Condition Reached...
  • Page 66: Routine For Sending Data Or Commands To The Slave

    Master Code Flow Figure A–4. Routine for Sending Data or Commands to the Slave Start Lower R/W Place Data on Databus Lower Strobe Raise Strobe Stop Driving Data Bus Raise R/W...
  • Page 67: Program Flow For Isr Tied To The Falling Edge Of Inrdy To Play Celp/Melp Only

    Master Code Flow A.1.2 Flowchart for the Master to Play CELP/MELP All of the flowcharts for playing mixed mode apply, except for the one associated with the ISR tied to the falling edge of INRDY. Sending speech only is a subset of playing mixed mode. The previous flowcharts handle speech only.
  • Page 68 PC’s parallel port. The C code interfaces with the MSP53C691 through the parallel port of the PC and uses a polling method to transfer data to the MSP53C691. Though the PC code uses a polling method to transfer data to the MSP53C691, it is recommended that data transfer be done through interrupt service routines in the actual master microcontroller.
  • Page 69 Parallel Port C Reference Code A.2 Parallel Port C Reference Code /************************************************************** * 604pc.c * Sends speech files to the 604 via the parallel port. This file * uses polling for transferring data to the slave from the PC. * It is recommended that the interrupt service routines of the * master microcontroller are used to transfer the data to the * slave.
  • Page 70 Parallel Port C Reference Code timebasecount,overheadcount; ParData,ParStatus,ParControl; wait30us; timeout; numbytes; thisbyte,sample; byte speechdata[MAXBINSIZE]; byte txcount[MAXBINSIZE]; byte temp_hi, temp_lo; // Declarations speak(void); void sendbyte(byte cmd); recvbyte(void); calibrate(int *tb, int *ovrhd); void MySleep(unsigned int sleep_time); // one of Frank’s void DeviceReset(void); void setECP(void);...
  • Page 71 Parallel Port C Reference Code setECP(); // RESET the device DeviceReset(); // Waiting for 30ms before start polling for INRDY low is necessary Sleep(30); // Wait for INRDY to go low ––– loop here as long as INRDY is high do { stat = _inp(ParStatus) &...
  • Page 72 Parallel Port C Reference Code temp_lo = temp_lo | 0x10; // Make DATA4 line high to signify speech data // Check for INRDY low or OUTRDY low –––– loop until one of them is low do { stat = _inp(ParStatus) & 0x30; while (stat == 0x30);...
  • Page 73 Parallel Port C Reference Code // RW is already low, take STROBE low, apply data, take STROBE high _outp(ParControl,RWLCEL); // drop RW and STROBE _outp(ParData,databyte); // send a byte of data _outp(ParControl,RWLCEH); // drop RW, raise STROBE int recvbyte() _outp(ParControl,RRWHCEH); // bit5 1, RW high, STROBE high _outp(ParControl,RRWHCEL);...
  • Page 74 Parallel Port C Reference Code printf (”MySleep (0) consumes %d ticks\n”, overhead); printf (”One Performance Counter tick = %g seconds\n”, Frequency); printf (”To wait ten usec, wait for %g ticks\n”, (TEN_USEC/Frequency)); #endif overhead = total/CALIBRATE_LOOPS; *tb = time_base; *ovrhd = overhead; return_priority=SetPriorityClass(GetCurrentProcess(),NORMAL_PRIOR- ITY_CLASS);...
  • Page 75 Appendix B FM Synthesis This appendix discusses FM synthesis. Topic Page FM Synthesis Overview ........FM Synthesis Format and Data Preparation .
  • Page 76: Fm Synthesis Overview

    The MSP53C691 can generate one channel of FM synthesis. This appendix presents the command formats used to describe the music.
  • Page 77: Bfm Synthesis

    FM Synthesis Format and Data Preparation TimeValue defines the duration of the note that is played. The valid values for TimeValue are defined in the programming code included at the end of this appendix. The more common values are: n8, which defines an eighth note;...
  • Page 78 FM Synthesis Format and Data Preparation B.2.5 Adjust Output Volume The FADER command is used to scale the volume of the notes played. BYTE FADER, InitialFaderValue,FaderInc Where: FADER is the signal whose output volume is to be adjusted by the com- mand.
  • Page 79: Command Summary

    FM Synthesis Format and Data Preparation B.2.8 Command Summary Table B–1 summarizes the several valid commands. Table B–1.Command Summary Command and Format Description Music Notes: Note: Is the music note. It can range form C0 to C6. Format: BYTE Note,TimeValue,Duration,Velocity TimeValue: Total length of the note.
  • Page 80: Fm Conversion Process

    B.3.1 MD2FM Software MD2FM converts a MIDI format file to FM data accepted by MSP53C691. With this routine users can compose or translate music base on the MIDI format. This routine runs under the DOS environment and uses the following syntax: md2fm songt1 songt1_1 –c1 –t1...
  • Page 81 At channel 1 data, BYTE PatchPNO1 B.3.2 Procedure for Converting MIDI to MSP53C691 FM The following conversion method involves the use of asmx.exe, which is a compiler for MSP50C3x. Note that is only used as a tool for converting all the symbols to actual data.
  • Page 82 Replace all the instances of the PATCH with the desired instrument. 3) Run the .INC file with the executable ASMX.EXE. This creates a binary equivalent of the .INC file. This file can be supplied to the MSP53C691 as an FM file. Note: If you need an ASCII representation of the binary FM file, run the executable BINBYTE.EXE with the binary file as input.
  • Page 83: Fm Ii-Constant Definitions

    FM II—Constant Definitions B.4 FM II—Constant Definitions *************************************************** * FM II *************************************************** Constant Definitions DC,BA98:7654,3210 ––,––––:––––,–––– BIT0 equ #0001 ;00,0000:0000,0001 BIT1 equ #0002 ;00,0000:0000,0010 BIT2 equ #0004 ;00,0000:0000,0100 BIT3 equ #0008 ;00,0000:0000,1000 BIT4 equ #0010 ;00,0000:0001,0000 BIT5 equ #0020 ;00,0000:0010,0000 BIT6 equ #0040 ;00,0000:0100,0000 BIT7...
  • Page 84 FM II—Constant Definitions f12p equ 8 equ 6 equ 4 equ 3 equ 2 equ 1 equ 0 equ 0 ;use for REST event, set velocity = 0 NOFADER equ 0 ;Fader Increment = 0. Musical note index definitions equ 0 equ 1 equ 1 equ 2...
  • Page 85 FM II—Constant Definitions equ 28 equ 29 equ 30 equ 30 equ 31 equ 32 equ 32 equ 33 equ 34 equ 34 equ 35 equ 36 equ 37 equ 37 equ 38 equ 39 equ 39 equ 40 equ 41 equ 42 equ 42 equ 43...
  • Page 86 FM II—Constant Definitions equ 63 equ 64 equ 65 equ 66 equ 66 equ 67 equ 68 equ 68 equ 69 equ 70 equ 70 equ 71 equ 72 equ 73 REST equ 120 Lookup values for Instrument Sound tables PatchFLT1 equ 128+0 ;FM Flute tone 1 PatchBRS1 equ 128+1 ;FM Brass tone 1, Medium slow attack PatchBRS2 equ 128+2 ;FM Brass tone 2, Fast attack...
  • Page 87 FM II—Constant Definitions PatchMT6l equ 128+34 ;FM Metallic tone 6l, plucked string 1 PatchMT6m equ 128+35 ;FM Metallic tone 6m, plucked string 2 PatchMT6n equ 128+36 ;FM Metallic tone 6n PatchMT6o equ 128+37 ;FM Metallic tone 6o, plucked string 3 PatchMT6p equ 128+38 ;FM Metallic tone 6p, plucked string 4 PatchCHM1 equ...
  • Page 88 FM II—Constant Definitions MIX0 equ #E0 ;Control code for Modix (Modulation Index) MIX1 equ #E1 ;isolate bits 0–3 for table lookup MIX2 equ #E2 ; MIX3 equ #E3 ; MIX4 equ #E4 ; MIX5 equ #E5 ; MIX6 equ #E6 ; MIX7 equ #E7 ;...
  • Page 89 FM II—Constant Definitions BPM159 equ 16 ;52 158.691406 0.378092 75.618462 BPM165 equ 17 ;54 164.794922 0.364089 72.817778 BPM171 equ 18 ;56 170.898438 0.351086 70.217143 BPM177 equ 19 ;58 177.001953 0.338979 67.795862 BPM183 equ 20 ;60 183.105469 0.327680 65.536000 BPM189 equ 21 ;62 189.208984 0.317110 63.421935...
  • Page 90 FM II—Constant Definitions ENVL2 equ –2 ;make Envelope length Longer by 2 ENVL3 equ –3 ;make Envelope length Longer by 3 ENVL4 equ –4 ;make Envelope length Longer by 4 ENVL5 equ –5 ;make Envelope length Longer by 5 ENVL6 equ –6 ;make Envelope length Longer by 6 ENVL7 equ –7 ;make Envelope length Longer by 7...
  • Page 91: Editing Tools And Data Preparation

    Appendix C Editing Tools and Data Preparation This appendix discusses the SDS6000 software editing tool and data prepara- tion for the MSP53C691 using different algorithms. Topic Page Editing Tools ..........
  • Page 92 8-Ω speaker with its own amplifier and enclosure, an 8-Ω speaker with its own enclosure if wanting to use the onboard LM386, or the four transistor amplifiers of the hardware. Download the SDS6000 software through the Texas Instruments speech web- site http://www.ti.com/sc/speech.
  • Page 93 The speech data sent to the slave device must match the format defined by TI or generated by a TI’s tool (SDS6000 for MELP, CELP, or ADPCM). The data preparation for the MSP53C691 using different algorithms is discussed in the following paragraphs.
  • Page 94 The ASCII file or its binary representation is used as the compressed speech data for the MSP53C691. The ASCII file can be used in the master microcon- troller assembly code. The assembler of the master microcontroller must con- vert the .BYT file to binary after assembling the master code. The MSP53C691 expects the speech data from the master in binary format.
  • Page 95 1) The parallel port in your PC is set to either bidirectional, ECP, or EPP mode in the BIOS. 2) All the cables are properly connected. 3) The board is powered up. 4) There are no other devices connected to the parallel port(s) of the PC. C.2.3 FM Music can be coded manually or can be converted from MIDI files.
  • Page 97: Pitch And Speed Shifting For 6Xx Melp

    Appendix D Pitch and Speed Shifting for 6xx MELP This appendix discusses MELP speech pitch and speed shifting. Topic Page Pitch Shifting ..........Speed Shifting .
  • Page 98: Pitch Control

    The command for pitch shift is 0xA followed by the parameter 0x2. The value of the parameter for the amount of pitch shift is then transferred to the MSP53C691 in four nibbles (most signifi- cant nibble first).
  • Page 99 To make speech sound higher, make the parameter a negative number using the command: 0xFFF8 ; –8 twos complement sent to the MSP53C691 as F, F, F, and 8. To make speech sound lower, make the parameter a positive number, for ex- ample, 0x0009 sent to the MSP53C691 as 0, 0, 0 and 9.
  • Page 100: Speed Shifting Summary

    Variable: subframesBetweenRepeats can be modified by: 1 / 2 = 50% slower (twice as slow) 1 / 3 = 33.3% slower 1 / 4 = 25% slower 1 / 5 = 20% slower 1 / 6 = 16.7% slower and so on See the following table for a summary on speed shifting.
  • Page 101 Appendix E Guidelines for Optimal TI Speech This appendix discusses the guidelines for obtaining optimal TI speech such as voice talent selection, recording techniques and equipment, and input sig- nal processing. Topic Page Voice Talent Selection ......... Auditions .
  • Page 102: Voice Talent Selection

    Voice Talent Selection E.1 Voice Talent Selection Selecting the right voice talent to record the speech for a product is extremely important. The following criteria must be considered when choosing a voice talent: professional versus amateur, gender-related voice characteristics, dialect, and pronunciation. Professional VS Amateur Voice Talent —Professional voice talent (usually union members) is recommended over amateur voice talent for the following reasons: better pitch and amplitude control, endurance, and better recording...
  • Page 103 Auditions E.2.2 Recording Script If you have to create a recording script, keep the following considerations in mind. Vocabulary —Start with a list of the desired vocabulary, which is generally provided by the customer. Context ( Pronunciation )—When dealing with context pronunciation, the following principles must be considered: Sentence Frame —The beginning and end of the target vocabulary word must not be altered by the sounds in adjacent words.
  • Page 104: Speech Rate And Pausing

    Audio Equipment —Choosing the right microphone and audio equipment enhances the quality of the speech, reduces editing time, and decreases the time-to-market for Texas Instruments vocoders. A rubberized shockmount prevents microphone vibration and a windscreen prevents explosive plosives (such as initial [p]).
  • Page 105 Recording Microphone Preamplifier —Choose a good microphone preamplifier (such as Martech). Other Audio Equipment —Consider a good analog-to-digital converter (such as Lucid), a PCI card, a mixer for analog monitoring and routing (such as Mackie), and a good playback system (such as Mackie). Recording Session —Important considerations for the recording session include microphone placement, audio input levels, voice talent direction, and data capture techniques.
  • Page 106: Preprocessing The Input Signal

    Texas Instruments synthesizers. Amplitude Normalization —Be sure the wave file is fully amplified (100%). Normalize (reduce) the amplitude by approximately 15% (~3 dB) with a good wave editor (such as Cool Edit Pro ).
  • Page 107: Guidelines For Optimal Ti Speech

    Processing Speech on the SDS6000 E.7 Processing Speech on the SDS6000 Use the following procedure to process speech using the SDS6000: 1) Create a new project in the SDS6000. 2) Add the normalized down-sampled .WAV files to the project. 3) Choose the type of analysis to process the files (such as MELP or CELP). 4) Select the appropriate bit rate or compression ratio.
  • Page 108 Editing Speech on the SDS6000 E.8.2 Editing MELP Speech on the SDS6000 MELP Parameter Sets— MELP analysis creates one analysis file containing three sets of parameters: uncoded, coded, and compressed, with the compression factor defined in the MELP Setup dialog box. Uncoded MELP—There is really no uncoded MELP synthesizer.
  • Page 109 Editing Speech on the SDS6000 UV_Flag— Unvoiced flag can be used to make an unvoiced frame a voiced frame. A value of 0 represents an unvoiced frame, while a value of 1 repre- sents a voiced frame. K1–K10—K-parameters correspond to cross-sectional areas of the vocal tract, which extends from the lips to the larynx.
  • Page 110: Hardware Considerations In Product Design

    Hardware Considerations in Product Design E.9 Hardware Considerations in Product Design E.9.1 Speaker Selection The physical properties of the speaker have a substantial influence on the quality of the reproduction of speech. The diaphragm of the speaker should have a large surface area to efficiently produce low frequencies. The mass of the voice coil and diaphragm should be small to efficiently produce high frequencies.
  • Page 111 (low-pass) filter to smooth the samples into a continuous representation of the analog signal. The MSP53C691 has the capability to directly drive a 32-Ω speaker. The speaker is connected between two push-pull outputs. Each of these outputs can toggle between ground and the supply voltage.
  • Page 112 Hardware Considerations in Product Design The supply voltage and the speaker impedance are the primary factors in how much power is delivered to the speaker. The minimum speaker impedance (normally 32 Ω) and the maximum supply voltage are determined by the limits of the TI speech device.

Table of Contents