Top Banner
Synthesized speech using a small Microcontroller Chapter 1 1. Introduction Embedded systems play an important role in our day to day life. Due to limited works this systems can be highly optimized by particular needs [27]. Some of the embedded systems applications were controlling the devices with some amount of intelligence built-in [1]. Speech synthesis system has wide range of applications in our daily life. Speech synthesis plays an important role in signal processing. The natural, intelligible synthetic voices in the expanding field of speech technology had a lot of demand [4]. Speech was the natural form of human communication. Automatic speech signal generation on computers is commonly called speech synthesis. Speech synthesis was the artificial production of human speech [2]. Speech synthesizer can be created by concatenating pieces of recorded audio speech that was stored in a database memory. Text-to-speech synthesis was an important object in speech interface, which allows low- bandwidth text to supply a user with easy to gain the information. In speech synthesis field, a number of research programmes have taken place during the last decade [13]. In 1984 an industry expert Mr Drinkwater said that about the synthesis “synthesis is going to be the next bam-burning technology” [2]. Now a day’s synthesis speech was useful for many applications. In 1999 an American business magnate said 1
76

Final Report Venu

Nov 07, 2014

Download

Documents

konda_choudary

final year roject
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Final Report Venu

Synthesized speech using a small Microcontroller

Chapter 1

1. Introduction

Embedded systems play an important role in our day to day life. Due to limited works this

systems can be highly optimized by particular needs [27]. Some of the embedded systems

applications were controlling the devices with some amount of intelligence built-in [1].

Speech synthesis system has wide range of applications in our daily life. Speech synthesis

plays an important role in signal processing. The natural, intelligible synthetic voices in the

expanding field of speech technology had a lot of demand [4]. Speech was the natural form of

human communication. Automatic speech signal generation on computers is commonly

called speech synthesis. Speech synthesis was the artificial production of human speech [2].

Speech synthesizer can be created by concatenating pieces of recorded audio speech that was

stored in a database memory. Text-to-speech synthesis was an important object in speech

interface, which allows low-bandwidth text to supply a user with easy to gain the

information. In speech synthesis field, a number of research programmes have taken place

during the last decade [13]. In 1984 an industry expert Mr Drinkwater said that about the

synthesis “synthesis is going to be the next bam-burning technology” [2]. Now a day’s

synthesis speech was useful for many applications. In 1999 an American business magnate

said that “In a few years personal computers will ... talk back to us” [2].

In the past (Allen et al., 1987), the text to speech synthesis was done from a complete

knowledge of the acoustics of the language being targeted.

For getting text to speech synthesis different techniques were used [5]. Concatenate method

was the simplest method for achieving the synthesis speech. By using this method the speech

was generated by linking pre recorded speech segments to build syllables, phrases, or words

[2].

1

Page 2: Final Report Venu

Synthesized speech using a small Microcontroller

The block diagram for the system was shown in the following figure 1.

Figure 1: Block diagram of the system

From the above figure the system will have four main sections; the microcontroller of the

system would take the commands from user and control the converter. The link between the

user interface (computer) and the microcontroller was two ways because after taking the

some commands from user the system would also respond with proper feedback. After

processing the inputs the output will reflect through the speaker controlled by the

microcontroller which was illustrated by the figure 1.

1.1) Aims

The aim of this project is to implement a user interface to a small microcontroller using

synthesized speech.

1.2) Objective of the project

The objective of the project was to generate the synthesis speech using a small

microcontroller for user interface. For achieving this project to implement a user interface to

control the ISD board and generate the synthesis speech system.

1.3) Deliverables

Design and implement a solid state audio record and playback system.

Identify a method and producing completely synthesized speech and implement it.

2

MICROCONTROLLER Speaker

INPUT OUTPUT

User interface

Converter

Page 3: Final Report Venu

Synthesized speech using a small Microcontroller

1.4) Advantages of the system

This system can be implemented for

I. Speech synthesis system was used to audibly communicate information to the user

because the audio recordings were too expensive and large to storage on disk.

II. This system was used for the blind people to understand the preloaded instructions

which were used in the daily usage.

III. Text to speech was used in the games applications to talk to the user instead of using

text message displayed on the screen.

IV. It was used in the railway stations to announce the information about the train

timings.

V. Conserve the digital storage space. This system was useful for phases that would

occupy too much storage space if they were pre-recorded in digital audio format [6].

3

Page 4: Final Report Venu

Synthesized speech using a small Microcontroller

Chapter 2

2. Problem Analysis

This chapter was highlighted the requirements for developing the system. These requirements

were categorised into two major sections those were hardware requirements and software

requirements. Based on the project deliverables the requirements of the system were given

below and clearly explained. The block box testing’s were also mentioned in the ending of

this chapter.

2.1) Hardware requirements of the system

This project “synthesized speech using a small microcontroller” was a type embedded system

so it would be a combination of electronic hardware and software code. The following figure

was show the system would have electronic hardware capable of control the ISD board.

Figure 2.1(a): Block diagram for audio record/playback system

4

Microcontroller ISD1420 board User

Page 5: Final Report Venu

Synthesized speech using a small Microcontroller

The following figure was show the system would have electronic hardware capable of speech

synthesizer which can controlled by the microcontroller. The block diagram for synthesized

speech using microcontroller was shown in the Figure 2.1(b)

Figure 2.1(b): Text to speech synthesis system block diagram

For this system a synthesizer was used for converting the text to speech.

2.1.1) Speech synthesizer

A synthesizer was required for getting the speech from text; it should be controlled by

microcontroller. The selection of the synthesizer would also be a challenging task there were

many kind of synthesizers available in the market also there were some techniques for

hardware as well as software techniques were there for getting speech from text. Software

approach was good but in implementation quiet complex so hardware approach was followed

in this project. The synthesizer was required for this project which would capable to read the

English words, numbers and mathematical functions. The synthesizer chip should be light

weight and communicate with the host processor. It should have built in rule database for

converting the text to speech.

5

USER SERIAL COMMUNICATION

MICROCONTROLLER

SPEECH CONVERTER

SPEAKER

Page 6: Final Report Venu

Synthesized speech using a small Microcontroller

2.1.2) Microcontroller

Microcontroller was the heart of this project or one can say it was the master as it controls the

other devices so, the selection of the microcontroller would also be a challenging task.

Microcontrollers were available from Microchip’s PIC with a large range of size and features.

In this project the priority was given to microcontroller which one can control the operation

of the ISD board and synthesizing the speech within that microcontroller. If the

microcontroller was smaller and light weight it would be better to keep the PCB small.

Microcontroller with internal features like internal oscillator, interrupts would be better.

Microcontroller should have the I/O pins for connecting to external modules. Before making

any selection the size and power efficiency could be considered.

2.1.3) Speaker

It was a device which converts electrical signal in to sound. Speaker was commonly used to

hear sounds. In this project the speaker should be used for hearing the synthesized speech in

the output. A speaker was required for this project which would be small, light weight and it

should have low impedance, low power ratings.

2.2) Speech synthesis methods:

Speech synthesis methods were used for converting the speech from the text. A synthesis

method which was used in this project, it should be simple and easy to implement the system.

2.3) Serial communication to establish a user interface

A module would be required to establish a user interface to control the system. The system

should be user control so it would be serially communicated with the host PC. RS232 and

MM232r were used for the serial communication.

2.4) Software requirements of the system

Software program was necessary for microcontroller to control the system. MPLAB was the

program development tool which can enable the user to write the program for the PIC

microcontroller. MPLAB provided the C18 compiler for writing the program. The program

was supposed to write for control the ISD board as well as to generate the synthesized

speech.

6

Page 7: Final Report Venu

Synthesized speech using a small Microcontroller

2.4.1) Programming language, development and debugging tool

There were two popular languages (Assembly and embedded C) available for eight bit

microcontrollers, any language can be used for this system. Embedded C was quite similar to

the normal C language but only the difference was in embedded C programming the

initializations and some special functions were used, on the other hand the assembly

instruction set was different to the manufacture of the microcontroller from one to another. It

was necessary before writing the program to know about the register set (SFR) of that

microcontroller. A program could be written in their own way.

The software tool MPLAB along the C18 compiler was providing the assembler and

compiler. Microcontroller did not understand assembly of the C program which was stored in

the ROM of the PIC as a .hex file. The assembler and compiler can converts the instructions

to the machine code. The MPLAB was also available the debugging features. By using the

MBLAB ICD2 programmer and debugger kit the converted hexadecimal file can be loaded

into the microcontroller.

2.5) Black box testing

The output of the system was depending on the corresponding input. For this system the input

would be user commands and the output would be speaker. The black box testing should be

done for the system.

I. The system should be user interface with the system.

II. The ISD board should be controlled by the microcontroller.

III. The speech should be synthesized within a microcontroller.

Figure 2.5: Black box testing of the system7

SYSTEM USER SPEAKER

INPUT OUTPUT

Page 8: Final Report Venu

Synthesized speech using a small Microcontroller

Chapter 3

3. Problem solutions

Based on the hardware and software requirements as mentioned before chapter, the solutions

were given for both hardware and software. According to the deliverables mentioned in the

previous chapter, the first task was to control audio record/playback ISD board and second

one was generate the synthesized speech within the microcontroller. The hardware and

software solution were given below.

3.1) PIC18F1320 Microcontroller

PIC18F1320 was an 8 bit microcontroller developed by Microchip Company and it was

power efficient because used Nano watt technology. This microcontroller was used in this

project because it has external oscillator and many other features [30]. PIC18F

microcontroller support enhanced USART module and supports RS485, RS232 and LIN1.2

which has auto baud rate and also auto wake up start bit. The microcontroller PIC188F1320

has four crystal modules (LP, XT, HS and HSPLL) and high computational performance. It

could be works at high speed up to 16-40MHZ. So PIC18F1320 (Fig 3.1) was used rather

than PIC16F series (it works at low speed). For more information about the PIC the

references 30 and 27 were studied. It had two ports A and B and port B pins were used in this

project. In this project the microcontroller was used to control the audio record/playback

device and generating the synthesized speech.

Figure 3.1: PIC18F13208

Page 9: Final Report Venu

Synthesized speech using a small Microcontroller

3.2) Synthesis method

Speech synthesis technologies can be broadly categorized into three categories. They were

given below [29]:

Concatenate synthesis

Formant synthesis

Articulatory synthesis

3.2.1) Concatenate speech synthesis:

In this technology the speech can be generated by linking pre-recorded speech segments to

make syllables, phrases, or dip hones. Waveform segments were store in a database. It was

the simplest method for speech synthesis [14].

3.2.2) Formant synthesis:

Formants were defined as “resonant frequencies that occur at the main resonant areas of the

vocal tract for a given sound”. It consists of artificial reconstruction of the formant

characteristics to be produced.

3.2.3) Articulatory synthesis:

Articulators were speech organs. It was based on computational models of the human vocal

tract and it was a most natural sounding speech synthesis. But it was complex [4].

Finally concatenate method was identified, which was used for converting the speech from

text [2]. In this project for synthesizing the speech a synthesizer was used. This synthesizer

chip follows the concatenate method because it was a simplest method compare to other

method.

9

Page 10: Final Report Venu

Synthesized speech using a small Microcontroller

3.3) TTS256 Synthesizer chip

Figure 3.3: TTS256 speech synthesizer chip

It was very hard to find out the synthesizer for this task because most of the synthesizers

(WTS701, SP0256 chips) were not available in the market. Finally after a long searching

TTS256 chip was available in speechchips.com. TTS256 was an 8 bit microprocessor and it

was programmed with built in 600 letter-to-sound rule database. TTS256 speech chip was a

28 pin DIP and compatible with PIC, BASIC stamp, OOPic [33]. It can generate the speech

code from ASCII text and it could be read English words, numbers and mathematical

functions. For serial communication parameters it was set the baud rate 9600. The datasheet

mentioned in the ref.[33] was studied. The host microcontroller can send up to 128 characters

to the TTS256 chip via serial port on 18th pin (RX). The text which was entered by user was

spoken when the TTS receives a new line character or the maximum number of characters

(128) has been entered.

3.4) Speaker

Figure 3.4: Speaker

The speaker selected in this project, which was having the following feature.

10

Page 11: Final Report Venu

Synthesized speech using a small Microcontroller

1) It was small and light weight

2) It had low power rating (0.5W) and Impedance (8 ohm)

3.5) MM232R module

It was a single chip asynchronous serial data transfer interface. In MM232R module

FT232RQ chip device was used and it can convert USB to RS232 / RS422 / RS485

converters. RS232 and MM232 were the two solutions for serial communication. MM232R

was support for 7 or 8 data bits and one or two stop bits. The data transfer rates from range of

300 baud to 3 mega baud (RS422 / RS485) and 300 baud to 1 mega baud (RS232). It can

support for bus powered, high bus powered and self powered USB configurations. RS232

was also used for serial data transfer [33]. If RS232 was used the MAX232 IC should be used

for voltage levels, then the cost of the PCB will increase so MM232 was used instead of

RS232. The signal voltage levels of the MM232 were in the range from 3.3v to 5v.

Figure 3.3: MM232R

3.6) Program language

Embedded C was used for the programming the PIC. MPLAB was used for writing the

program of the control system as well as speech synthesis system. MPLAB IDE was

windows based Integrated Development Environment for programming the microcontrollers.

The MPLAB provided the ability to the users to create and edit the source code in the editor

window. In MPLAB IDE software tool the C18compiler was available to assemble, compile

and link the source code [31]. MPLAB ICD 2 debugger and programmer kit was used for

load the hexadecimal code to the PIC18F 1320 microcontroller.

11

Page 12: Final Report Venu

Synthesized speech using a small Microcontroller

Figure 3.6: MPLAB program structure

3.7) Flow chart for control system

The operation of the audio record and playback system was explained in the form of flow

chart. The flow chart for control system was shown in the following figure.

12

SOURCE FILE

ASSEMBLER COMPILER

LIBRARY FILES

LINKER

Page 13: Final Report Venu

Synthesized speech using a small Microcontroller

Figure 3.7: Flow chart for control PCB

13

START

Initialization of the system

Get the data from user

Found any command either ‘r’ or ‘ ‘p’

Wrong command

PLAY/RECORD the device based on the input

NO

YES

Page 14: Final Report Venu

Synthesized speech using a small Microcontroller

3.8) Flow chart for speech synthesis system

The working of the synthesis speech system was explained in the below flow chart.

Figure 3.8: Flow chart for speech synthesis system

14

START

Initialize the system and USART

Wait for the data coming from user

Wrong command

If data == r or p

SYNTHESIZER

Send the speech to the speaker

NO

YES

PLAY/RECORD Based on the input

Page 15: Final Report Venu

Synthesized speech using a small Microcontroller

3.9) Gantt chart:

The idea of planning the project Gantt chart to make the scheduled view of the project what is

to be done for the project, what was remaining to do in the project and what is done till now.

These tasks like referring the references, analysis and project progress were divided and

arranged depending on the deliverables achievable. Even setting the mile stones in the Gantt

sheet helped made to speed up the implementation of project objectives. Some tasks might be

carried on the same time like construction the PCB was during summarising the material and

ordering the components. Some of the components ordering were delayed due to choosing

what component was used in this project. Writing the software programming was the time

taking criteria.

15

Page 16: Final Report Venu

Synthesized speech using a small Microcontroller

Chapter 4

4. Problem implementation

4.1) Hardware implementation of the control system

The solutions for getting the hardware and software code of the system were explained in the

previous chapter were finally implemented and explained in this chapter, for some of the

hardware problems like stabilization more than one solution were given. The outcomes of

some solutions were necessary to discuss at this at this as it was necessary to stick to one

approach from here onward. According to the deliverables mentioned in the first chapter the

primary aim was control the ISD board and second one was to generate synthesis speech

system. The description of the hardware and software for these two tasks were separately

given below. The software programs were developed and listed in the appendix for both

audio record/playback system and synthesized speech system. Before implementing the

control system to control the ISD board, the basic operation of the ISD 1420P device was

explained below.

4.1.1) Working of the audio record/playback device (ISD1420p board):

The system was configured with microphone, on-chip oscillator, speaker amplifier,

smoothing filter, and two push buttons. The basic block diagram of the ISD1420P device was

shown in the following figure 4.1.1(a).[10]

Figure 4.1.1(a) : Block diagram for audio record/playback system

The PCB circuit device which was given by the supervisor was shown in the following figure

4.1.1(b). 16

ISD1420P

(Audio record/playback)

Speaker

Microphone

Play

Record

Page 17: Final Report Venu

Synthesized speech using a small Microcontroller

Figure 4.1.1(b): ISD1420P PCB

The ISD1420P device was used for audio record/playback system. The following operating

sequence was demonstrated the working of chip device.

For recording the audio data:

The device which was having two push buttons, one for recoding the data and another was

for play backing. When push button (REC) was pressed, then the REC signal LOW initiated a

record cycle from the starting of the data space [28]. When recording process was beginning

the red LED was glowing until the data space had been filled. Once the data space was filled

then the recording was stopped. The power of the device was automatically down then the

REC signal was pulled to high. This process was shown in the following figure 4.1.1(c).

17

Play swichRecord switch

Mic(input)

Speaker (output)ISD1420P

Page 18: Final Report Venu

Synthesized speech using a small Microcontroller

Figure 4.1.1(c): The PCB when the record switch was pressed

For playback the audio data:

When the push button(PLAY) was pressed then active low PLAY signal initiated a playback

cycle from the starting of the data space which was recorded earlier. If the device was

reached to EOM marker then automatically power was down. While the process was going

on the green LED was glowing until and unless the EOM marker reached. This playback

process was shown in the following figure 4.1.1(d).[28]

Figure 4.1.1(d): The PCB when the PLAY button was pressed

18

Page 19: Final Report Venu

Synthesized speech using a small Microcontroller

4.1.2) Design of PCB for controlling of the Audio record/playback system

Without using of the PLAY and RECORD buttons the ISD1420 device should be operated.

For this a control PCB was designed. The schematic diagram for controlling the audio record

and playback device system was designed in Proteus ISIS. The Proteus ISIS professional

provided the libraries for constructing the schematic designs. From the libraries picked the

PIC18F1320, resistors (10KΩ and 330Ω), LED and capacitor then constructed the circuit for

control PCB for controlling the ISD kit.

RA0/AN01

RA1/AN1/LVDIN2

RA4/T0CKI3

RA5/MCLR/VPP4

RA2/AN2/VREF-6

RA3/AN3/VREF+7

RB0/AN4/INT08

RB1/AN5/TX/CK/INT19

RB4/AN6/RX/DT/KBI010

RB5/PGM/KBI111

RB6/PGC/T1OSO/T1CKI/P1C/KBI212

RB7/PGD/T1OSI/P1D/KBI313

RA6/OSC2/CLKO15

RA7/OSC1/CLKI16

RB2/P1B/INT217

RB3/CCP1/P1A18

U1

PIC18F1320PACKAGE=DIL18VDD=GNDVSS=+5V

C2

10u

GND

+5V

GND

Speech Synthesizer, Venu Gopal, MSc Embedded Systems

R110k

1 2 3 4

8 7 6 5

J1

CONN-DIL8

1234

J2

CONN-SIL4

1234

J3

CONN-SIL4

+5V

12

5V SUPPLY TO BOARD

CONN-H2

12

ISD BOARD SWITCH CONNECTOR

CONN-H2

D1

DIODE-LED

R2

330R

1 2 3 4 5 6 7 8 9

Figure 4.1.2(a):: Schematic diagram for Control PCB

1) 10K resistor for avoiding the PIC reset

2) Data transmitting pin of MM232R. Which was TXD

3) Data receiving pin of MM232R. Which was RXD

4) MM232R

5) PIC18F1320 microcontroller

6) ISD1420 switch board connector

7) 330Ω resistor decreasing the voltage for LED

8) LED power indicator

9) Power supply connector19

Page 20: Final Report Venu

Synthesized speech using a small Microcontroller

The components PIC18F1320, resistors, LED and capacitor were available in the Proteus

ISIS library but the component MM232R was not available in the list of Proteus ISIS so four

pin connectors were used. The 10K resistor used for avoiding the PIC reset and LED was

used for power indication. Some additional elements were also selected like 2 pin Molex

connectors for power supply as well as for ISD board.

The following PCB was the implementation of the schematic discussed in the previous

chapter. The PCB was designed for controlling the audio record/playback device in Proteus

Ares software. The PCB layout of the audio record/playback system was shown in the

following figure 4.1.2(b).

Figure 4.1.2(b): PCB layout of the control pcb system.

The below figure 4.1.2(c) was showing the top copper and bottom copper layers of the PCB.

On the other hand the original PCB design was shown in the figure 4.1.2(d).

20

ISD board connector

LED for power indicator

PIC18F1320 microcontroller

Filtering capacitor

MM232R

Power supply connector

Page 21: Final Report Venu

Synthesized speech using a small Microcontroller

Figure 4.1.2(c): Top layer of the PCB (Left) and bottom layer of the PCB (Right)

Figure 4.1.2(d): Top layer of the Actual PCB (Left) and Bottom layer of the PCB (Left)

The bitmap of the control PCB was shown in the following figure 4.1.2(e).

Figure 4.1.2(e): Bitmap of the PCB

21

Page 22: Final Report Venu

Synthesized speech using a small Microcontroller

The PCB development was done so next step was drill the holes of the PCB in order to place

the required components. A due care is given that maximum tracks and soldering should go

to the bottom layer. Diameter of the drill was taken as 0.8mm. After drilling, soldering was

done at ideal temperature of 325o C. The control PCB for ISD board was shown in the

following figure 4.1.2(f).

MM232R Power connector PIC1320 LED power indicator ISD connector

Figure 4.1.2(f): Control PCB for ISD board

4.1.3) Operation of the control system

For controlling of the ISD1420 record/playback device the control PCB was designed.

MM232R was used for sending data and receiving data [32]. The 5 th pin of the MM232R was

connected to 10th pin (RB4) of the PIC18F1320 for receiving the data and 7th pin of the

MM232R was connected to the 9th pin (RB1) of the PIC for transmitting the data from the

PIC. MM232R pins 2 and 3 were connected to 5v power supply. Based on the command

received from the user via MM232R the PIC will control the operation of record and

playback device. The RB2 pin of the PIC was connected to the 27 th pin (active low REC) ISD

board and RB3 pin of the PIC was connected to the 23rd pin (active low PLAY) ISD board.

Whenever the user enter the letter ‘r’ on the HyperTerminal the MM232R send this signal to

22

Page 23: Final Report Venu

Synthesized speech using a small Microcontroller

the RX of the PIC. Then the PIC send an active low signal to the ISD board, this active low

signal (REC) was enable the pin then the will ready for recording. At the other hand the PIC

was send the ISD device status (START RECORDING) to the MM232R, this message will

display on the HyperTerminal window. Same way if the user entered the letter ‘p’, the PIC

sends an active low signal to the ISD board then the device start to play. If any letter (except

‘r’ or ‘p’) the PIC was send the status as ‘wrong command’ to the MM232R.

4.1.4) Testing of the control system

The following hardware tests were done for the PCB.

1) For checking short circuit connectivity of the PCB initially the printed circuit board

was tested without placing components.

2) After placing the components these individual pins were tested through digital CRO.

3) The power of the components was tested by using the multi meter.

HyperTerminal was used for creating a user interface to control the audio record/playback

device. MM232R communication protocol was used for serial communication from host to

the microcontroller for sending and receiving the data. For creating a serial communication,

the required HyperTerminal settings were mentioned in the following figure 4.1.4(a).

Figure 4.1.4(a): HyperTerminal window settings

23

Com port number which module was connected

Baud rate= 9600

Page 24: Final Report Venu

Synthesized speech using a small Microcontroller

4.2) Software implementation for control PCB

The PIC18F1320 microcontroller was control the operation of the audio record/playback. For

this the PIC should be programmed, so the PIC C program was written by using MPLAB. To

write the PIC C program in the MPLAB first selected the new project wizard option, and then

PIC18F1320 was selected for microcontroller and C18 compiler was added. The complete

PIC C program of control PCB was listed in Appendix. The PIC C program was written in a

file save with extension of .C and then this file was added to the source file [27]. For clear

explanation the whole program was divided as small sections. As the software code was

going to be in embedded C so the initial sections of every C program have a header file

followed by some declarations, definitions then the main and other functions. The MPLAB

libraries provided all the header files [31].

In this following program HS was used. HS stands for high speed and it allows PIC18F1320

microcontroller to run at 8MHZ [30]. Baud rate was set to 9600 because MM232R

communication module can work at this rate. In this system the watch dog timer was disabled

and the MCLRE (master set clear) was enabled.

/////code for controller board

//VENU GOPAL ALLA

//000540246

//Date: 25-03-2010

//UNIVERSITY OF GREENWICH

/*

1. Initialize the system

2. Initialize the USART

3. Wait for the command to arrive

4. Identify the command

5. Send command to ISD1420 board

6. Play or record sound if required

7. Go to Step 3

*/

24

Page 25: Final Report Venu

Synthesized speech using a small Microcontroller

#include <p18f1320.h>

#include <delays>

#include <usart.h>

#include <portb.h>

#include<stdio.h>

#pragma config OSC = HS//High speed frequency= 8MHZ

#pragma config WDT = OFF// Disable watch dog timer

#pragma config LVP = OFF

#pragma config MCLRE = ON//master set and clear

#define CLOCK_FREQ (8000000) // 8MHz

#define INSTR_FREQ (CLOCK_FREQ/4) // one instruction takes 4 clock cycles

#define DelayMs(ms) Delay1KTCYx((((INSTR_FREQ/1000)*ms)/1000))

#define record PORTBbits.RB2

#define play PORTBbits.RB3

The below program section was the main function, in this function the character value was

initialized as zero, disable the analogue inputs and initialization was done for the UART

serial communication. Initially the pins RB2 and RB3 of the PIC18F1320 were set to outputs

and these values were initialized as zero because the pin outputs are active low signals.

//// Main //////

void main()

unsigned char val=0,// the character value val initialized as zero

ADCON1 = 0x7F; // Disable analogue inputs and configure as I/O

OSCCON = 0x70; // set internal oscillator to 8Mhz

INTCON2= 0x00;/// Enable PORT_B Pull_Ups

25

Page 26: Final Report Venu

Synthesized speech using a small Microcontroller

OpenUSART(USART_TX_INT_OFF &

USART_RX_INT_OFF &

USART_ASYNCH_MODE &

USART_EIGHT_BIT &

USART_CONT_RX,

25);//initialisation for serial communication

TRISBbits.TRISB2 = 0;

TRISBbits.TRISB3 = 0;

DelayMs(500); //power on system ready indication

record=1;

play=1;*/

The below mentioned program was the main operation for control system. Whenever a

character would arrive at receiver pin that was RB4 of PIC microcontroller then all

statements under this section would get executed. User can send the character through

computer by making the use of MM232R serial communication module. When the user

entered a character ‘r’ in HyperTerminal window, then the PIC received this command and

send an active low signal to the ISD board. Then the ISD board was ready for recording the

voice. The PIC immediately sends the status of the ISD board to MM232R as ‘Recording’

and this message was displayed on the hyper terminal. When the user entered a character ‘p’

in HyperTerminal window, then the PIC received this command and send an active low

signal to the ISD board. Then the ISD board was ready for playing the audio which was

recorded previously. The PIC immediately sends the status of the ISD board to MM232R as

‘Playing Sound’ and this message was displayed on the hyper terminal. If any key entered in

the hyper terminal the PIC send back a message as “wrong command”. After completion of

this whole process the last state statements “play=1, record=1 and Val=0” were executed

because after completion of this operation the output pins and character value were needed to

reset.

26

Page 27: Final Report Venu

Synthesized speech using a small Microcontroller

while(1) /// embedded forever loop....

while(!DataRdyUSART()); ///wait until any data arrives

val=ReadUSART(); ///get data

switch(val)

case 'p':

printf("Playing Sound");

play=0;//start playing

break;

case 'r':

printf("Recording");

record=0; //start recording

break;

default:

printf("wrong command");

DelayMs(50);/// maintain status

record=1;

play=1;

val=0;

//while(1);

//main()

27

Page 28: Final Report Venu

Synthesized speech using a small Microcontroller

Hence the program for control system was explained clearly and this PIC C program was

compiled by using C18 compiler. The build succeeded program for the control system was

shown in the following figure 4.2(a).

Figure 4.2(a): Error free code for control system

With the help of ICD2 kit the PIC was loaded to target device. The PIC was programmed on

the ICD2 kit compatibility board. This process was shown in the following figure 4.2(b).

Figure 4.2(b): PIC programmed by using ICD2 kit28

Build succeeded

Page 29: Final Report Venu

Synthesized speech using a small Microcontroller

Using the MPLAB ICD2 debugger and programmer kit the program successfully loaded into

the PIC18F1320. After completion of this loading process in MPLAB window the status of

the ICD 2 kit was displayed and it was shown in the figure 4.2(c).

Figure 4.2(c): Successful loaded of the program

After loading the program into the PIC then the microcontroller placed on the control PCB.

The complete hardware connections for control the audio record/playback system was shown

in the following figure 4.2(d).

29

MPLAB ICD2 ready for next operation

Page 30: Final Report Venu

Synthesized speech using a small Microcontroller

ISD board hyper terminal window Control PCB

Figure 4.2(d): Complete hardware connections of the audio record/playback system

4.3) Hardware implementation for synthesis speech system

The main aim of the project was to generate the synthesis speech within a small

microcontroller. The schematic diagram for synthesis speech system was designed in Proteus

ISIS. The Proteus ISIS professional provided the libraries for constructing the schematic

designs. The main PCB was could handle the both systems those were it could control the

ISD board and it could be generate the synthesis speech within a microcontroller. The main

PCB would reduce the cost of the cost and PCB area. The schematic diagram of the speech

synthesis system was shown in the following figure 4.3(a).

30

Page 31: Final Report Venu

Synthesized speech using a small Microcontroller

8

RA0/AN01

RA1/AN1/LVDIN2

RA4/T0CKI3

RA5/MCLR/VPP4

RA2/AN2/VREF-6

RA3/AN3/VREF+7

RB0/AN4/INT0 8

RB1/AN5/TX/CK/INT1 9

RB4/AN6/RX/DT/KBI0 10

RB5/PGM/KBI1 11

RB6/PGC/T1OSO/T1CKI/P1C/KBI2 12

RB7/PGD/T1OSI/P1D/KBI3 13RA6/OSC2/CLKO15

RA7/OSC1/CLKI16

RB2/P1B/INT2 17

RB3/CCP1/P1A 18

U1

PIC18F1320PACKAGE=DIL18VDD=+5VVSS=GND

C2

10u

GND

+5V

GND

Speech Synthesizer, Venu Gopal, MSc Embedded Systems

R110k

1 2 3 4

8 7 6 5

MM232 B

CONN-DIL8

1234

MM232 A

CONN-SIL4

1234

MM232 C

CONN-SIL4

+5V

12

5V SUPPLY TO BOARD

CONN-H2

12

ISD BOARD SWITCH CONNECTOR

CONN-H2

D1

DIODE-LED

R2

330R

1 2

SPK CONNECTIONCONN-SIL2

1234567

TTS B

CONN-SIL71234567

TTS A

CONN-SIL7

1234567

TTS C

CONN-SIL7

1234567

TTS D

CONN-SIL7

D2

DIODE-LED

R3

330R

1 2 3 4 5 6 9 7

Figure 4.3(a): Schematic design for synthesis speech system

1) TT256 synthesizer chip (Instead of this chip 4 serial in line connectors were used

because this chip was not available in Proteus)

2) LED indicator

3) 5th pin was for data transmitting (TX)

4) 7th pin for data receiving (RX)

5) MM232R module (Instead of this chip collection of serial in line connectors were

used because this chip was not available in Proteus)

6) PIC18F1320 microcontroller

7) LED power indicator

8) 2 pin Molex connectors for external connections

9) ISD board connector

31

Page 32: Final Report Venu

Synthesized speech using a small Microcontroller

To develop the system the required components were selected by using Proteus ISIS

professional software. The component PIC18F1320, resistors, LED and capacitor were

available in the Proteus ISIS library but the components MM232R and TTS256 synthesizer

chip were not available in the list of Proteus ISIS so collection of four pin serial in line

connectors were used for MM232R and four serial in line connectors were used for construct

the TT256 chip. The 10K resistor used for avoiding the PIC reset and LED was used for

power indication. Some additional elements were also selected like 2 pin Molex connectors

for power supply as well as for ISD board.

The following PCB was the implementation of the schematic discussed in the previous

chapter. The PCB was designed for the generating the speech system in Proteus Ares

software. The PCB layout of the synthesis speech system was shown in the following figure

4.3(b).

Figure 4.3(b): PCB layout of the synthesis speech system

To avoid the short circuit connections the PCB was designed in both top and bottom layers. For better understanding about the PCB layout the top and bottom layers of the PCB in the Ares and actual PCBs were shown in the figure 4.3(d).

32

Page 33: Final Report Venu

Synthesized speech using a small Microcontroller

Figure 4.3(c): Top layer of the PCB (Left side) and Bottom layer of the PCB (Right side)

Figure 4.3(d): Top layer of the Actual PCB (Left side) and Bottom layer of the Actual PCB (Right side)

The bitmap of the synthesis speech system PCB layout was shown in the following figure 4.3(e).

Figure 4.3(e): Bitmap of the PCB layout 33

Page 34: Final Report Venu

Synthesized speech using a small Microcontroller

The PCB development was done so next step was drill the holes of the PCB in order to place

the required components. The diameter of the drill was taken as 0.8mm. After drilling,

soldering was done at ideal temperature of 325o C. After placing all the components on the

PCB of the synthesis speech system PCB was shown in the figure 4.3(f).

1 2 3 4 5 6 7 8 9

Figure 4.3(f): Complete hardware connections of the synthesis speech system

1) TTS256 synthesizer chip

2) LED indicator

3) LED power indicator

4) PIC18F1320 microcontroller

5) Speaker

6) MM232R serial communication module

7) Speaker connector

8) Power connector

9) ISD board connector

34

Page 35: Final Report Venu

Synthesized speech using a small Microcontroller

4.3.1) Pin allocation for microcontroller

The pins allocated for the microcontroller were given below.

Indicator Pin B5

MM232R Rx, TTS256 Rx Pin B4 (Rx)

MM232R Tx Pin B1 (Tx)

Recording Pin B2

Playing Pin B3

4.4) Software implementation for Speech synthesis system

The PIC18F1320 microcontroller was used for generating the synthesis speech system. For

this the PIC should be programmed, so the PIC C program was written by using MPLAB. To

write the PIC C program in the MPLAB, first selected the new project wizard option, and

then PIC18F1320 was selected for microcontroller and C18 compiler was added. The

complete PIC C program of the speech synthesis system was listed in Appendix B. The PIC

C program was written in a file, save it with extension of .C and then this file was added to

the source file. For clear explanation the whole program was divided as small sections. As the

software code was going to be in embedded C so the initial sections of every C program have

a header file followed by some declarations, definitions then the main and other functions.

The MPLAB libraries provided all the header files.

In this following program HS was used. HS stands for high speed and it allows PIC18F1320

microcontroller to run at 8MHZ. Baud rate was set to 9600 because MM232R

communication module can work at this rate. In this system the watch dog timer was disabled

and the MCLRE (master set clear) was enabled.

//////////// code for generating the speech synthesis within a microcontroller///////////////

//VENU GOPAL ALLA

//UNIVERSITY OF GREENWICH

35

Page 36: Final Report Venu

Synthesized speech using a small Microcontroller

//01-03-2010

1. Initialize the system

2. Initialize the USART

3. Wait for the data to arrive

4. Send the data to TTS256 chip

5. Wait for the command to arrive

6. Identify the command

7. Play or record sound if required

8. Go to Step 3

*/

#include <p18f1320.h>

#include <delays.h>

#include <usart.h>//intialing uart

#include <portb.h>

#pragma config OSC = HS//high speed frequency 8MHZ

#pragma config WDT = OFF//Disable watch dog timer

#pragma config LVP = OFF//low voltage

#pragma config MCLRE = ON//master clear reset

#define CLOCK_FREQ (8000000) // 8MHz

#define INSTR_FREQ(CLOCK_FREQ/4)//one inst take 4 clock cycles

#define DelayMs(ms) Delay1KTCYx((((INSTR_FREQ/1000)*ms)/1000))

#define record PORTBbits.RB2

#define play PORTBbits.RB3

#define led PORTBbits.RB5

36

Page 37: Final Report Venu

Synthesized speech using a small Microcontroller

The below program section was the main function, in this function the character value was

initialized as zero, disable the analogue inputs and initialization was done for the UART

serial communication. Initially the pins RB2, RB3 and RB5 of the PIC18F1320 were set as

outputs and these values were initialized as zero because the pin outputs were active low

signals. The LED was used to indicate the system was ready, when the system was ready the

LED would blink up to 500Msec.

//// Main //////

void main()

unsigned char val=0,

ADCON1 = 0x7F; // Disable analogue inputs and configure as I/O

OSCCON = 0x70; // set internal oscillator to 8Mhz

INTCON2= 0x00;/// Enable PORT_B Pull_Ups

OpenUSART(USART_TX_INT_OFF &

USART_RX_INT_OFF &

USART_ASYNCH_MODE &

USART_EIGHT_BIT &

USART_CONT_RX,

25);// UART INTIALISATION

TRISBbits.TRISB2 = 0;

TRISBbits.TRISB3 = 0;

TRISBbits.TRISB5 = 0;// set as O/Ps..

led=1;

DelayMs(500); //power on system ready indication

led=0;37

Page 38: Final Report Venu

Synthesized speech using a small Microcontroller

record=1;

play=1;

The below mentioned program was the main operation for control system as well as speech

synthesis system. The two tasks those control the ISD board and generate the speech

synthesis system were optimized and designed the main PCB. The microcontroller would

receive the data which ever the user send through MM232. By using the command

“val=ReadUSART()” the PIC could get the data and by using another command

“putcUSART(val)” send the data to the TTS256 chip, then the TTS256 synthesizer chip

would covert the text to speech and send these speech to speaker. Whenever a character

would arrive at receiver pin that was RB4 of PIC microcontroller then all statements under

this section would get executed. User can send the character through computer by making the

use of MM232R serial communication module. When the user entered a character ‘r’ or ‘R’

in HyperTerminal window, then the PIC received this command and send an active low

signal to the ISD board. When the user entered a character ‘p’ or ‘P’ in HyperTerminal

window, then the PIC received this command and send an active low signal to the ISD board.

Then the ISD board was ready for playing the audio which was recorded previously. After

completion of this whole process the last state statements “play=1, record=1 and Val=0” were

executed because after completion of this operation the output pins and character value were

needed to reset.

while(1) /// embedded forever loop....

while(!DataRdyUSART()); ///wait until any data arrives

val=ReadUSART(); ///get data

putcUSART(val);///send data to TTS256 IC

if (val=='p'||'P')

printf("Playing Sound");// display on hyper terminal

play=0;//start playing38

Page 39: Final Report Venu

Synthesized speech using a small Microcontroller

if (val=='r'||'R')

printf("Recording");

record=0; //start recording

else

printf("wrong command");

DelayMs(50);/// maintain status

record=1;

play=1;

val=0;

//while(1);

//main()

Hence the program completes, using C18 compiler the program was compiled. The error free

program for the speech synthesis system was show in the figure 4.4(a).

39

Page 40: Final Report Venu

Synthesized speech using a small Microcontroller

Build succeeded program

Figure 4.4(a): Error free program

The above program was loaded in to the PIC18F 1320 microcontroller with the help of

MPLAB ICD2 debugger and programmer kit provided by the university. The following

figure 33 was show the message after loading the program in to the PIC.

Figure 4.4(b): Successful loading of the program

40

Venu_alla_TTS.c

MPLAB ICD 2 ready for next operation

Page 41: Final Report Venu

Synthesized speech using a small Microcontroller

4.5) Working of the speech synthesis system

HyperTerminal was used for creating a user interface to control the ISD board and synthesis

speech system. MM232R communication protocol was used for serial communication from

host to the microcontroller for sending and receiving the data. For creating a serial

communication, the required HyperTerminal settings were mentioned in the following figure.

Figure 4.5(a): Hyper terminal settings for serial communication

After loading the program into the PIC then the microcontroller placed on the synthesis

speech system PCB. The complete hardware connections for the speech synthesis system

were shown in the following figure 4.5(b).

41

Page 42: Final Report Venu

Synthesized speech using a small Microcontroller

Figure 4.5(b): Complete hardware connections of the speech synthesis system

MM232R serial communication module was used for user interface. The user could write the

text on hyper terminal window, the corresponding speech will be produced by the speaker.

Two LEDs were used in this system one was for power indication (+5V) and second one

indicates whether the program was loaded in to the PIC microcontroller or not. The resistor

10K ohm was used for avoid the reset of the PIC.

The final PCB would do the both tasks. The data which was entered on the hyper terminal

will send to the 10th pin (RX) of the PIC18F1320 microcontroller then the received data will

sent to the 18th pin (RX) of the TTS256 synthesizer chip. The TTS256 synthesizer chip can

convert the data which was sent by microcontroller to speech. The 24 th pin of the TTS256

chip was connected to the speaker, 14th pin was connected to ground and 28th pin was

42

Hyper terminal

Speaker

MM232R module

PIC18F1320 microcontroller

TTS256 Speech Synthesizer

Page 43: Final Report Venu

Synthesized speech using a small Microcontroller

connected to 5V power supply. The text which was entered by user was spoken when the

TTS256 chip receives a new line character or the maximum number of characters (128) has

been entered. By using this PCB the ISD board was also controlled. If the user entered the

letter ‘r’ on the hyper terminal, the microcontroller will send the active low signal to the ISD

board then the ISD board start recording the voice. Simultaneously when the user entered the

letter ‘p’ on the hyper terminal, the microcontroller will send the active low signal to the ISD

board then device could start playing the sound which was previously recorded in the ISD

chip.

4.6) Project expenditure

The components required to implement the speech system was given below.

S. NO COMPONENTS QUANTITY COST

(each component)

1 PIC18F1320 2 £ 2.43

2 MM232R module 2 £9.99

3 TTS256 synthesizer chip 1 £18.00

4 USB lead M/M 3M 2 £2.90

The total money spent on electronic components like PIC microcontroller, MM232R module

and USB cable to implement the system was around 30 pounds and this fund was provided by

the university. But the main component TT256 synthesizer was purchased personally, it costs

around 18 pounds. The total expenditure on the project was around 50 pounds.

Chapter 543

Page 44: Final Report Venu

Synthesized speech using a small Microcontroller

5. Results

In this chapter the system outcomes were explained clearly. Initially the control PCB was

designed for control the audio record/playback device (ISD board). The main task of the

project synthesis speech systems results were given and explained in the last section.

5.1) Results of the control system

Based on the command which was entered by the user on the hyper terminal the

microcontroller controls the ISD board. When the user entered command ‘r’ on hyper

terminal then the microcontroller send the active low signal to the ISD board the system starts

recording. The microcontroller sends the status of the ISD board to the 7 th pin (RX) of the

MM232R and it was displayed on the hyper terminal. The red LED of the ISD board blink

until the system recording the voice. The following figures (5.1(a) and 5.1(b)) were show the

process of the system.

Figure 5.1(a): Computer received the data from the PIC when the system starts recording

44

‘r’ entered by the user

Status of the ISD board

Page 45: Final Report Venu

Synthesized speech using a small Microcontroller

Figure 5.1(b): ISD board when recording the voice

Same way when the user entered the command ‘p’ on hyper terminal then the microcontroller

send the active low signal to the ISD board the system starts recording. The microcontroller

sends the status of the ISD board to the 7th pin (RX) of the MM232R and it was displayed on

the hyper terminal. The green LED of the ISD board blink until the system would play the

voice which was stored previously in the ISD1420P. The following figures (5.1(c) and 5.1(d))

were show the process of the system. When the user entered wrong command then the PIC

would send message to the computer and it was displayed on the hyper terminal as “wrong

command”.

Figure 5.1(c): Computer received the data from the PIC when the system start play

45

LED power indicator

Red LED was blink when recording

‘p’ entered by the user

Status of the ISD board

Page 46: Final Report Venu

Synthesized speech using a small Microcontroller

Figure 5.1(d): ISD board when playing the voice

5.2) Outcome for the speech synthesis system

The final PCB which was the main PCB, designed for the controlling of the ISD board and

synthesis speech system. The following figure which was shows the two LED indicators, one

was for power indication and another one for checking the PIC programmed or not.

46

LED POWER INDICATOR

GREEN LED WAS BLINK WHEN SYSTEM

Page 47: Final Report Venu

Synthesized speech using a small Microcontroller

Figure 5.2: The speech synthesis system

In the above figure show the LED power indicator was blinking so the 5V power was coming

to circuit. Second one was also blinking so the program was also loaded into the PIC.

According to the software program the LED blinks up to 55msec but the LED was

continuously blinking. Also when the user trying to enter any character on the hyper terminal

window and it was not displayed and also the output speech was not coming from the

speaker. The system could not work because the software might not match with the hardware

connections of the system or might be problem in the software code. Many changes were

done in case of modifying the software code as well as in hardware some connections was

changed.

47

Page 48: Final Report Venu

Synthesized speech using a small Microcontroller

Chapter 6

6) Discussion of Results

Well the results of the complete system were as expected, but in sometimes it was not picking

up the commands entered by the user through the hyper terminal. There was some problem

with the playback of the sound possible causes may be compatibility issues of TTS IC. The

Embedded C program was logical right and there were no compiling errors. There was no

RJ45 connector on the target board so it was not possible to get the live debug simulation on

the MPLAB.

The sound of the speaker was not that good may be because of the quality of the device, but

on the other hand it was also not possible to attach a bid speaker directly to the TTS IC as it

cannot supply the required source current. Behaviour of complete system was good system

was capable of doing task to some extent for what it was designed to. With this technical

discussion for this project comes to an end.

48

Page 49: Final Report Venu

Synthesized speech using a small Microcontroller

Chapter 7

7) Conclusion

After going through this task it was evident that to develop complete system even if its looks

simple at first look lots of effort and dedication is required. Various fields required to be

combined like good software knowledge, electronics and analytical skills. Sometimes a

simple appearing task may take a long time to work accordingly, as happened while tried to

achieve a proper communication between microcontroller and the TTS IC. Every element is

required to be looked after. Analyzing why something fails or did not worked as required

helps a lot and makes the vision clear brings success closer and enhances knowledge.

49

Page 50: Final Report Venu

Synthesized speech using a small Microcontroller

Chapter 8

8) Future Work

The work on the project was quite satisfactory, but still there were some shortcomings like

sometimes system was not working at all, so some changes are suggested in software and

electronic design. Another major addition that could be done in future design is the addition

of on board debugging mechanism to attach the ICD kit to the main board this could be easily

done by adding a RJ connector. Various features like audio filter circuit which would only

allow the audible frequencies to pass to the speaker could be added along with some

amplifier and volume control.

In the embedded program additional commands could be added like for volume control, the

duration for which TTS is required to be in play or record mode. Some features like to

monitor the errors on the system could be added and if any error occurs then could be

displayed on the hyper terminal, and even intimate the user by producing speech from the

TTS. There is no limit as such to the additions that could be done in the future to this system

as the developed project is just the basic one so many enhancements are possible.

50

Page 51: Final Report Venu

Synthesized speech using a small Microcontroller

Chapter 9

9) References

1. Juang, B.H. Tsuhan Chen, The past, present, and future of speech processing Volume 15, Issue 3, ISSN: 1053-5888, Pages 24-48.

2. Henton, Caroline, Challenges and Rewards in Using Parametric or Concatenative Speech synthesis, ISSN: 1381-2416.

3. Kim, Jongkuk - Hahn, Hernsoo – Yoon, Uei-Joong-Bae, Myungjin, On a pitch alteration for speech synthesis systems, year 2009, volume 50, issue 4, pages 435-446, ISSN:0929-6212.

4. Rahier, M.C. , Defraeye, P.J. Guebels, P.-P, Patovan, B, A 3 µm NMOS high performance LPC speech synthesizer chip, Volume 18, Issue 3, Pages 349-359, ISSN:0018-9200.

5. Henton, Caroline, Challenges and rewards in using parametric or concatenative speech synthesis, Year 2002, Volume 5, Issue 2, Pages 117-131, ISSN: 1381-2416.

6. Holfelder, Wieland, Interactive remote recording and playback of multicast videoconferences, Year 1998, Volume 21, Issue 15, Pages 1285-1294, ISSN: 0140-3664.

7. Kim, Jong Kuk-Hahn, Hern Soo-Bae, Myung Jin, On a speech multiple system implementation foe synthesis, year 2009, volume 49, issue 4, ISSN: 0929-6212.

8. Hilt, V. Mauve, M. Vogel, J. Effelsberg, W, Recording and playing back interactive media streams, Date Oct 2005, volume 7 issue 5,pages 960-971, ISSN: 1520-9210

9. A. K. Rath and P.K. Meher, Design of a merged DSP microcontroller for embedded systems using discrete orthogonal transform, Year 2006, pages 388-394, ISSN: 1549-3636.

10. Schroeder, E.F. platte, H. –J. Krahe, D., ‘MSC’ :stereo audio coding with CD-quality and 256 kBit/sec, Date: Nov.1987, Volume CE-33, Issue 4, Pages 512-519, ISSN: 0098-3063.

11. Geoff Jackson, Peter Holzmann, A Single-chip Text-to-Speech Synthesis Device Utilizing Analog Nonvolatile Multilevel Flash Storage, Issue Date: NOV.2002, ISSN: 0018-9200.

12. Liu, Fu-Hua-Gu, Liang-Gao, Machael, Applications of Language Modelling in Speech-to-Speech Translation table of content, Year- 2004, ISSN: 1381-2416.

13. Lee, C, -H; Jung, S.-K. ; Kang, H. –G., Applying a speaker-Dependent speech compression Technique to concatenative TTS synthesizers, Year- 2007, ISSN: 1558-7916.

14. Henton, Caroline, Challenges and Rewards in using Parametric or concatenative speech synthesis, Year- 2002, Issn: 1381-2416.

15. Goldsmith, John, Dealing with Prosody in a tex-to-speech system table of content, Year- 1999, ISSN: 1381-2416.

16. Sotiris Karabetsos, Pirros Tsiakoulis, Embedded unit selection Text-to-speech synthesis, Year- 2009, ISSN: 0098-3063.

51

Page 52: Final Report Venu

Synthesized speech using a small Microcontroller

17. Kim, Jong kuk-Hahn, Hern Soo- Bae, Myung Jin, On a speech Multiple system Implementation for speech synthesis table of content, Year- 2009, ISSN: 0929-6212.

18. Taylor & Francis, Technical notes on Audio Recording, Year- 2000, ISSN: 0835-1813.

19. El-Imam, Yousif A. –Don, Zuraida Mohammed, Text-to-Speech conversion of standard Malay, Year- 1999, ISSN: 1381-2416.

20. Steve Heath, Embedded System Design, Second Edition, ISBN 0-7506-5546-1.21. Holzmann, P. Jackson, G.B. Raina, A. Hung-chuan pai Ming-Bing Chang

Awsare, S.V. Engh, L.D. Kao,O.C. Palmer, C.R. Chun-Mai Liu Kordesch, A.V. Ken su Hemming,M. An analog and digital record, playback and processing system using a coarse-fine programming method, Date 18-20 April 2001, pages 192-195, ISBN: 0-7803-6412-0.

22. Embedded C by Michale J Pont, Pearson International, ISBN-0173290532, year of publication 2002

23. Rice, S.V. Bailey, S.M, An integrated environment for audio recording,editing, and retrieval, Date Dec 2006, ISBN: 0-7695-2746-9.

24. Kumar, K. Raja Ramaiah, P. Seetha, DSP and Microcontroller based speech processor for auditory prosthesis, Date 20-23 Dec 2006, pages 518-522, ISBN: 1-4244-0716-8.

25. Thiang, Implementation of speech recognition on MCS51 microcontroller for controlling wheelchair, Date : 25-28 Nov 2007, pages 1193-1198, ISBN: 978-1-4244-1355-3.

26. Sarathy, K.P. Ramakrishnan, A.G, A research bed for unit selection based text to speech synthesis, Date 15-19 Dec 2008, pages 229-232, ISBN: 978-1-4244-3471-8.

27. PIC Microcontroller and Embedded Systems by Mazidi, Muhammad Ali, Pearson International, ISBN- 0136009026, Year of publication 2007.

28. ISD1420P datasheethttp://pdf1.alldatasheet.com/datasheet-pdf/view/80296/ETC/ISD1420P.html

29. Speech synthesis methodswww.cse.iitd.ernet.in/esproject/docs/seminars/bakshi/Seminar1.ppt

30. PIC18F1320 datasheet http://ww1.microchip.com/downloads/en/DeviceDoc/39605F.pdfThis file was used to study the feature of this microcontroller.

31. MPLAB IDE featureshttp://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002This link was used to study the feature and operations of MPLAB IDE.

32. http://pdf1.alldatasheet.com/datasheet-pdf/view/202286/FTDI/MM232R.htmlThis link was used to study the feature and operations of MM232R.

33. http://www.speechchips.com/downloads/TTS256 Datasheet prelim.pdfThis datasheet was used for understand about TTS256 synthesizer chip.

34. Speech synthesis processhttp://home.alphalink.com.au/~derekw/pictalker/main.htm

52

Page 53: Final Report Venu

Synthesized speech using a small Microcontroller

Chapter 10

10) Appendix

10.1) Appendix A: Program code for control system

/////code for controller board

//VENU GOPAL ALLA

//000540246

//Date: 25-03-2010

//UNIVERSITY OF GREENWICH

/*

1. Initialize the system

2. Initialize the USART

3. Wait for the command to arrive

4. Identify the command

5. Send command to ISD1420 board

6. Play or record sound if required

7. Go to Step 3

*/

#include <p18f1320.h>

#include <delays>

#include <usart.h>

#include <portb.h>

#include<stdio.h>

#pragma config OSC = HS//High speed frequency= 8MHZ

#pragma config WDT = OFF// Disable watch dog timer

#pragma config LVP = OFF

#pragma config MCLRE = ON//master set and clear

53

Page 54: Final Report Venu

Synthesized speech using a small Microcontroller

#define CLOCK_FREQ (8000000) // 8MHz

#define INSTR_FREQ (CLOCK_FREQ/4) // one instruction takes 4 clock cycles

#define DelayMs(ms) Delay1KTCYx((((INSTR_FREQ/1000)*ms)/1000))

#define record PORTBbits.RB2

#define play PORTBbits.RB3

while(1) /// embedded forever loop....

while(!DataRdyUSART()); ///wait until any data arrives

val=ReadUSART(); ///get data

switch(val)

case 'p':

printf("Playing Sound");

play=0;//start playing

break;

case 'r':

printf("Recording");

record=0; //start recording

break;

default:

printf("wrong command");

DelayMs(50);/// maintain status

record=1;

play=1;

val=0;

//while(1);

//main()

54

Page 55: Final Report Venu

Synthesized speech using a small Microcontroller

10.2) Appendix B: Program code for speech synthesis system

//////////// code for generating the speech synthesis within a microcontroller///////////////

//VENU GOPAL ALLA

//UNIVERSITY OF GREENWICH

//01-03-2010

1. Initialize the system

2. Initialize the USART

3. Wait for the data to arrive

4. Send the data to TTS256 chip

5. Wait for the command to arrive

6. Identify the command

7. Play or record sound if required

8. Go to Step 3

*/

#include <p18f1320.h>

#include <delays.h>

#include <usart.h>//intialing uart

#include <portb.h>

#pragma config OSC = HS//high speed frequency 8MHZ

#pragma config WDT = OFF//Disable watch dog timer

#pragma config LVP = OFF//low voltage

#pragma config MCLRE = ON//master clear reset

#define CLOCK_FREQ (8000000) // 8MHz

#define INSTR_FREQ(CLOCK_FREQ/4)//one inst take 4 clock cycles

#define DelayMs(ms) Delay1KTCYx((((INSTR_FREQ/1000)*ms)/1000))

55

Page 56: Final Report Venu

Synthesized speech using a small Microcontroller

#define record PORTBbits.RB2

#define play PORTBbits.RB3

#define led PORTBbits.RB5

//// Main //////

void main()

unsigned char val=0,// the character value val initialized as zero

ADCON1 = 0x7F; // Disable analogue inputs and configure as I/O

OSCCON = 0x70; // set internal oscillator to 8Mhz

INTCON2= 0x00;/// Enable PORT_B Pull_Ups

OpenUSART(USART_TX_INT_OFF &

USART_RX_INT_OFF &

USART_ASYNCH_MODE &

USART_EIGHT_BIT &

USART_CONT_RX,

25);//initialisation for serial communication

TRISBbits.TRISB2 = 0;

TRISBbits.TRISB3 = 0;

DelayMs(500); //power on system ready indication

record=1;

play=1;*/

while(1) /// embedded forever loop....

while(!DataRdyUSART()); ///wait until any data arrives

val=ReadUSART(); ///get data

putcUSART(val);///send data to TTS256 IC

if (val=='p'||'P')

56

Page 57: Final Report Venu

Synthesized speech using a small Microcontroller

printf("Playing Sound");// display on hyper terminal

play=0;//start playing

if (val=='r'||'R')

printf("Recording");

record=0; //start recording

else

printf("wrong command");

DelayMs(50);/// maintain status

record=1;

play=1;

val=0;

//while(1);

//main()

57