Speech Control for Virtual Instruments Using the TMS320C30 DSP

Similar documents
Implementation of a CELP Speech Coder for the TMS320C30 using SPOX

Dual Access into Single- Access RAM on a C5x Device

Hardware UART for the TMS320C3x

TMS320C5x Memory Paging (Expanding its Address Reach)

Reading a 16-Bit Bus With the TMS320C5x Serial Port

C Routines for Setting Up the AIC on the TMS320C5x EVM

Performance Analysis of Line Echo Cancellation Implementation Using TMS320C6201

TMS320 DSP DESIGNER S NOTEBOOK. Serial ROM Boot APPLICATION BRIEF: SPRA233. Alex Tessarolo Digital Signal Processing Products Semiconductor Group

Bit-reversed Addressing without Data Alignment on the C3x

Faster Scan Conversion Using the TMS320C80

TMS320C5x Interrupt Response Time

Writing TMS320C8x PP Code Under the Multitasking Executive

TMS320 DSP DESIGNER S NOTEBOOK. Multipass Linking APPLICATION BRIEF: SPRA257. Tom Horner Digital Signal Processing Products Semiconductor Group

The PCMCIA DSP Card: An All-in-One Communications System

Creating Single Section for Boot Load When.const Section is Defined

SN5446A, 47A, 48, SN54LS47, LS48, LS49 SN7446A, 47A, 48, SN74LS47, LS48, LS49 BCD-TO-SEVEN-SEGMENT DECODERS/DRIVERS

Debugging Shared Memory Systems

TMS320C62x, TMS320C67x DSP Cache Performance on Vocoder Benchmarks

Techniques for Profiling on ROM-Based Applications

Nested Loop Optimization on the TMS320C6x

Developing Plug-and-Play COM Ports using TI Plug-and-Play Controllers

27 - Line SCSI Terminator With Split Reverse Disconnect

Impact of JTAG/ Testability on Reliability

SN54BCT760, SN74BCT760 OCTAL BUFFERS/DRIVERS WITH OPEN-COLLECTOR OUTPUTS


Getting Started Guide: TMS-FET470A256 IAR Kickstart Development Kit

Using the bq3285/7e in a Green or Portable Environment

A Multichannel/Algorithm Implementation on the TMS320C6000 DSP

System Testability Using Standard Logic

DatasheetDirect.com. Visit to get your free datasheets. This datasheet has been downloaded by

Using Boundary Scan on the TMS320VC5420

Implementing JTAG Testing with MPEG2Lynx

Using LDOs and Power Managers in Systems With Redundant Power Supplies

Configuring Code Composer Studio for OMAP Debugging

bq2056 Designed to Go Parts List General Description bq2056 Charge Algorithm Current Voltage

Connecting TMS320C54x DSP with Flash Memory

74AC11139 DUAL 2-LINE DECODER/DEMULTIPLEXER

SN54F38, SN74F38 QUADRUPLE 2-INPUT POSITIVE-NAND BUFFERS WITH OPEN-COLLECTOR OUTPUTS

74AC11240 OCTAL BUFFER/LINE DRIVER WITH 3-STATE OUTPUTS

EV Evaluation System User Guide. Contents. Kit Contents. Introduction

A DSP/BIOS AIC23 Codec Device Driver for the TMS320C6416 DSK

As of October 1, 1998, our address is:

A DSP/BIOS AIC23 Codec Device Driver for the TMS320C5510 DSK

Using the TMS320C5509 USB Bootloader

Logic Solutions for IEEE Std 1284

Understanding the TMS320C54x Memory Map and Examining an Optimum C5000 Memory Interface

1996 Digital Signal Processing Solutions

Increase Current Drive Using LVDS

SN74ALS533A, SN74AS533A OCTAL D-TYPE TRANSPARENT LATCHES WITH 3-STATE OUTPUTS SDAS270 DECEMBER 1994

SN54ALS573C, SN54AS573A, SN74ALS573C, SN74AS573A OCTAL D-TYPE TRANSPARENT LATCHES WITH 3-STATE OUTPUTS

Using the TMS320 DSP Algorithm Standard in a Dynamic DSP System

Microphone Power Gating. Top. Back SPKR. Figure 1 Example Microphone Placement in a Mobile Phone

C Fast RTS Library User Guide (Rev 1.0)

SN54ALS32, SN54AS32, SN74ALS32, SN74AS32 QUADRUPLE 2-INPUT POSITIVE-OR GATES

SN54LVTH16240, SN74LVTH V ABT 16-BIT BUFFERS/DRIVERS WITH 3-STATE OUTPUTS

1998 Technical Documentation Services

SN75240 DUAL UNIVERSAL SERIAL BUS PORT TRANSIENT SUPPRESSOR SLLS266 FEBRUARY 1997

SN54ALS645A, SN54AS645, SN74ALS645A, SN74AS645 OCTAL BUS TRANSCEIVERS WITH 3-STATE OUTPUTS

Texas Instruments Solution for Undershoot Protection for Bus Switches

SN54ALS04B, SN54AS04, SN74ALS04B, SN74AS04 HEX INVERTERS

SN54ALS74A, SN54AS74, SN74ALS74A, SN74AS74 DUAL D-TYPE POSITIVE-EDGE-TRIGGERED FLIP-FLOPS WITH CLEAR AND PRESET

OMAP SW. Release Notes. OMAP Software Tools OST version 2.5 Release. 16xx/1710/242x platforms. Document Revision: 2.5 Release

IT900 STK4 (Starter Kit)

Application Report. Mixed Signal Products SLOA028

I2C and the TAS3001C. Introduction. The I2C Protocol. Digital Audio Group ABSTRACT

As of October 1, 1998, our address is:

TMS320C6000 DSP Expansion Bus: Multiple DSP Connection Using Asynchronous Host Mode

Designed to GO... Universal Battery Monitor Using the bq2018 Power Minder IC. Typical Applications. Features. Figure 1. bq2018 Circuit Connection

Voltage Translation (5 V, 3.3 V, 2.5 V, 1.8 V), Switching Standards, and Bus Contention

Texas Instruments Voltage-Level-Translation Devices

INVENTORY HISTORY REPORT EXTENSION. User Guide. User Guide Page 1

~ > TEXAS~ SN5427, SN54LS27, SN7427, SN74LS27 TRIPLE 3-INPUT POSITIVE-NOR GATES. Vee INSTRUMENTS POST OFOICE BOX OALLAS.

12MHz XTAL USB DAC PCM2702E

INVENTORY REPORT EXTENSION. User Guide. User Guide Page 1

CUSTOM GOOGLE SEARCH. User Guide. User Guide Page 1

TMS320C6000 DSP General-Purpose Input/Output (GPIO) Reference Guide

Recent Advancements in Bus-Interface Packaging and Processing

WM DS28-EV2-REV1 Schematic and Layout

WM8805_6152_DS28_EV1_REV3 Schematic and Layout. WM8805_6152_DS28_EV1_REV3 Schematic and Layout. Customer Information 1 of 18 June 2007, Rev 3.

DV2003S1. Fast Charge Development System. Control of On-Board P-FET Switch-Mode Regulator. Features. Connection Descriptions. General Description

MC1488, SN55188, SN75188 QUADRUPLE LINE DRIVERS

COMMUNICATIONS WITH THE MULTI- CHANNEL HOST P RT INTERFACE

Evaluation Board for CS4344

TLK10081 EVM Quick Start Guide Texas Instruments Communications Interface Products

TMS320C6000 DSP 32-Bit Timer Reference Guide

WM DT20-EV1. Customer Standalone Board WOLFSON DEVICE(S): DATE: September 2009

WM DS28-EV1-REV2 Schematic and Layout WOLFSON DEVICE(S):

Evaluation Board for CS3308. Description CS Channel. Digitally Controlled Analog Volume Control. PC or External Serial Control Input

Programming the TMS320VC5509 RTC Peripheral

CDB4350 Evaluation Board for CS4350

AN Entering ISP mode from user code. Document information. ARM ISP, bootloader

ADD RELATED PRODUCTS TO CART. User Guide. User Guide Page 1

TMS320VC5409A Digital Signal Processor Silicon Errata

TMS320C54x DSP Programming Environment APPLICATION BRIEF: SPRA182

The TMS320 DSP Algorithm Standard

L293 QUADRUPLE HALF-H DRIVER

TMS320UC5409/TMS320VC5409 Digital Signal Processors Silicon Errata

WM CS20-M-REV2

WM DT16-EV1. Customer Standalone Board WOLFSON DEVICE(S): DATE: August 2009

Application Report. 1 Hardware Description. John Fahrenbruch... MSP430 Applications

Transcription:

Disclaimer: This document was part of the First European DSP Education and Research Conference. It may have been written by someone whose native language is not English. TI assumes no liability for the quality of writing and/or the accuracy of the information contained herein. Speech Control for Virtual Instruments Using the TMS320C30 DSP Authors: D. Santos, J. Costa, R. Vasconcelos, S. Rodrigues, D. Freitas, C. Espain ESIEE, Paris September 1996 SPRA317

IMPORTANT NOTICE Texas Instruments (TI TM ) reserves the right to make changes to its products or to discontinue any semiconductor product or service without notice, and advises its customers to obtain the latest version of relevant information to verify, before placing orders, that the information being relied on is current. TI warrants performance of its semiconductor products and related software to the specifications applicable at the time of sale in accordance with TI s standard warranty. Testing and other quality control techniques are utilized to the extent TI deems necessary to support this warranty. Specific testing of all parameters of each device is not necessarily performed, except those mandated by government requirements. Certain application using semiconductor products may involve potential risks of death, personal injury, or severe property or environmental damage ( Critical Applications ). TI SEMICONDUCTOR PRODUCTS ARE NOT DESIGNED, INTENDED, AUTHORIZED, OR WARRANTED TO BE SUITABLE FOR USE IN LIFE-SUPPORT APPLICATIONS, DEVICES OR SYSTEMS OR OTHER CRITICAL APPLICATIONS. Inclusion of TI products in such applications is understood to be fully at the risk of the customer. Use of TI products in such applications requires the written approval of an appropriate TI officer. Questions concerning potential risk applications should be directed to TI through a local SC sales office. In order to minimize risks associated with the customer s applications, adequate design and operating safeguards should be provided by the customer to minimize inherent or procedural hazards. TI assumes no liability for applications assistance, customer product design, software performance, or infringement of patents or services described herein. Nor does TI warrant or represent that any license, either express or implied, is granted under any patent right, copyright, mask work right, or other intellectual property right of TI covering or relating to any combination, machine, or process in which such semiconductor products or services might be or are used. Copyright 1997, Texas Instruments Incorporated

TRADEMARKS TI is a trademark of Texas Instruments Incorporated. Other brands and names are the property of their respective owners.

CONTACT INFORMATION US TMS320 HOTLINE (281) 274-2320 US TMS320 FAX (281) 274-2324 US TMS320 BBS (281) 274-2323 US TMS320 email dsph@ti.com

Contents Abstract...7 Product Support on the World Wide Web...8 Introduction...9 Description of the Core... 10 Hardware... 10 Operating System... 12 Recognition Software... 12 Virtual Instrumentation System... 13 Conclusion... 13 References...14

Figures Figure 1. System Architecture...9 Figure 2. Core Circuit Diagram... 11

Speech Control for Virtual Instruments Using the TMS320C30 DSP Abstract This application report describes a speech recognition interface for a Microsoft Visual Basic (VB) application. The VB application is a virtual instrument control system that can be used in various environments. The speech recognition interface enhances the ability of the operator to control various system components without manually navigating the graphical user interface (GUI) screens of the VB application. Several options were considered during the analysis but only one option proved to be optimal. The solution described in this paper uses the Texas Instruments (TI TM ) TMS32C30 DSP to handle all speech recognition calculations. The speech recognition component using the TI TMS320C30 DSP was implemented as a co-processor residing on the PC. The VB control system runs on the main PC processor. The controlled instruments are attached to the system through an IEEE 488 parallel bus. This report includes a system level diagram and references. This document was part of the first European DSP Education and Research Conference that took place September 26 and 27, 1996 in Paris. For information on how TI encourages students from around the world to find innovative ways to use DSPs, see TI s World Wide Web site at www.ti.com. Speech Control for Virtual Instruments Using the TMS320C30 DSP 7

SPRA317 Product Support on the World Wide Web Our World Wide Web site at www.ti.com contains the most up to date product information, revisions, and additions. Users registering with TI&ME can build custom information pages and receive new product updates automatically via email. 8 Speech Control for Virtual Instruments Using the TMS320C30 DSP

SPRA317 Introduction Figure 1. System Architecture This paper presents the development of a speech controlled virtual instrumentation system. Voice recognition includes applications in areas such as instrumentation, speech processing and industrial control. This project is a culmination of efforts in an Electrotechnical Engineering Degree program. Because PC performance was a critical consideration in the speech control system, it was decided to design a co-processor in the form of a PC bus extension for the purpose of offloading the speech signal processing calculations. The extension ensures that the PC applications would not be affected by the intense computational requirements of voice recognition. The core consists of two boards and are based on the computing power of the TI TMS320C30 DSP. Figure 1 illustrates the architecture of the developed system. Speech Control for Virtual Instruments Using the TMS320C30 DSP 9

SPRA317 Description of the Core Hardware The DSP extension was developed for the 16 bit PC-AT bus. It has 64 Kbytes of base memory, allows easy expansion, and is shared between the DSP and the PC in a way that a program can be loaded without the use of EPROM's. Initially, the intention was to use a Test Bus Controller however the bus controller was not yet widely available. The DMA solution was not used because the project did not require the transfer of large amounts of data between the TMS320C30 and the PC. Only a small amount of data and a few control signals were required. The voice input is digitized by the analog interface circuit (AIC) resident on the DSP board. Communications between the DSP and the PC are based upon an interrupt protocol. This protocol is supported by several routines in the DSP operating system (OS). The DSP operating system activity is centered around data acquisition by the AIC. When the data arrives, the OS launches a set of routines that initiate the speech recognition program executing in an isolatedword recognition mode. The functions and routines that establish communication with the PC-AT bus are very important and are incorporated in the kernel of the DSP OS. The DSP core is a typical circuit with a TMS320C30 running at 33Mhz, with 64K Words of static RAM. The upgradeable serial AIC has a sampling rate of 8Khz and14 bits of resolution. The DSP has 2 ports: the primary port, which controls the data and program memory, and the expansion port that controls the communication memory and peripheral port. On the primary port the address map is divided in 2 blocks of 8M: on the lower block resides 64K of ram and on the upper block resides a 1M block of static ram. The expansion port has 2 functions: data communications with the PC, which is implemented as an addressable block of memory, and the peripheral port that is addressed as an Input/Output (I/O) port. Figure 2 shows a block diagram of the circuit: 10 Speech Control for Virtual Instruments Using the TMS320C30 DSP

SPRA317 Figure 2. Core Circuit Diagram Two aspects of the core system require a detailed explanation: Bootloader Communications protocol The bootloader has the majority of the EPROM emulator programs: the DSP memory is shared with 2 ports on the PC, a I6bit port to generate the addresses (Address Latch), and a 32bit port (Ram data Latch) for data. The DSP is placed in the reset state during the initial program loading so that the data and address latches on the DSP will have a high impedance. This allows the PC to control the shared RAM during program loading. After the program is loaded, the PC s latches are set to high impedance and the DSP is taken out of the reset state. Once the DSP is out of reset, it begins running the program that was previously loaded into RAM. The communications protocol is interrupt-driven: the sender writes to the Data Latch when it wants to send data. The write generates an interrupt at the receiver. The receiver, via the interrupt routine, reads the Data Latch and writes a response to the same latch in order to generate an interrupt at the sender. This completes the data transfer and notifies the sender that the value has been read. Since the interrupt is the same for both sender and receiver, the interrupt routines must keep track of the phase they are in: waiting for confirmation or waiting for data. Speech Control for Virtual Instruments Using the TMS320C30 DSP 11

SPRA317 Operating System Recognition Software The OS of the DSP consists of a collection of functions and interrupt service routines. The OS runs monitoring functions in the background to ensure the proper operation of the system and to quickly react to real-time events. The main program executes the initialization routines for the different parts of the system when it is first started. After startup, the main program executes in an infinite cycle processing data from the AIC through OS functions. A system error or communications from the PC will interrupt the data processing cycle. An example of a communications interrupt would be the system mode definition such as command recognition or system training. A watchdog timer was implemented to allow the DSP OS to recover from errors that may occur in the code downloaded from the PC. The main procedure will accomplish the recognition of isolated words previously defined by the user. The basis of the recognition is the use of the Hidden Markov Model (HMM). First of all, the system must go through a phase of apprenticeship for every word specified (10 or more samples are necessary for each word). Normalized WAV files were used for system testing. 1) For each file we attempt to determine the beginning and end of each word, following these steps: a) Division of the signal in 256-point frames, with 100-point overlaps. b) Calculation of the signal's energies and number of zero crossings. c) Based on those values the word is encountered. d) Calculation of the signal's noise energy. 2) In the second phase, the Mel-cepstral coefficients and deltaenergies are calculated. 3) Then we realize the vector codification of the frames using K- means algorithms. 4) Next step is the recognition or system training using Viterbi algorithms. 12 Speech Control for Virtual Instruments Using the TMS320C30 DSP

SPRA317 Virtual Instrumentation System Conclusion 5) Finally, we use the HMMs to obtain a final vector of the characteristics of the whole word. This vector is compared with the initially trained table of word vectors. This operation is divided into two modes: recognition or training. Training must be defined at the beginning of the session. Both modes follow the same procedure, except for the training phase when the HMMs matrices must be changed. In the final analysis, recognition consists only of the comparison between the current sample under inspection and the results of the training phase. Both the operating system and the main procedure were written in C language and then compiled using the TMS320 floating-point DSP optimising C compiler from Texas Instruments. The main system also contains a graphical user interface implemented in Microsoft s Visual Basic. The VB application provides access to different electronic virtual instruments through the VB drivers. The actual instruments are physically connected to the PC by an IEEE 488 bus. This approach facilitates the rapid development and implementation of a virtual instrumentation environment. The virtual instruments selected for this project were modeled after Hewlett Packard function generator and the Keithley multimeter. Almost all the functions of the actual instruments were implemented. The virtual instrument program operation consists of receiving a voice command from the DSP. The PC VB program is interrupted by the DSP according to the communications protocol discussed in the hardware section of this report. The VB program decodes the voice command and executes the order. The virtual instrument program can also operate independently of the voice command system. For example, in this mode the program could execute a two-channel analysis. This system exhibits a very empowering functionality regarding the human-machine interface. It provides the capability of supporting the work of people with disabilities as well as relieving an operator from the tedium of manual commands through a simple but effective voice interface. Speech Control for Virtual Instruments Using the TMS320C30 DSP 13

SPRA317 Educational advantages were derived from developing the TI DSP system. The modular design approach and the joint development of hardware/software provided an excellent opportunity to learn without compromise and to simultaneously produce a very competitive product for real-world commercial use. References TM5320C30 Users Guide The Programmer's PC Sourcebook, ThomHogan Visual Basic 3.0 for Windows, Curso Completo, Nuno Nina Windows System Programming, Peter Wilken and Dirk Honekamp 14 Speech Control for Virtual Instruments Using the TMS320C30 DSP