Select Page

Audio Assistant – 2018

Introduction


This project aims to build an audio interaction between embedded system and user. Based on the user commands(through speech), embedded system will reply back. In this project through audio interaction user can control Red, Green and Blue LED status on Tiva LaunchPad. Also, can ask for Temperature. In response Embedded system can greet the user, tell the temperature and also can reply whether it has received the command to control the LED Lights.

Hardware Description


Speech Recognition is done using Software (Description Below under Speech Processing). The software process speech signals of user and send signals through UART to Tiva Launchpad. LM35, linear temperature sensor is used for sensing temperature. Output of LM35 is Analog so is connected to ADC pin of micro-controller. Audio Files are stored as .wav format with configuration 8-bit unsigned PCM with sample rate 8000Kbps sample rate micro-SD card. To interface micro-SD Card SPI channel is used. To play audio file DAC is required. DAC7571 which is 12-bit and uses serial interface (I2C) is used. Block Diagram of the system is shown below.

Block Diagram of Designed System

 

 

 

 

 

 

 

 

 

 

 

 

Implementation

A. Program Flow


Following program flow is used:

1.Initialize the system clock to 80MHz using PLL. Enable UART0, SSI0, I2C0 and ADC peripherals. 
2.Wait for the Command Input from the UART. Once, the user speaks, UART commands are generated by the application bitvoicer. 
3.Commands received from UART by Tiva LaunchPad can be interpret to perform following task:
         a) To greet the user
         b) To tell the temperature
         c) To control the state of red, green and blue LEDs and confirm the user that action has been done 
4.In case of temperature, read the analog value from ADC channel and convert it into degree Celsius measurement.
5.In case of LED control, perform the action desired by user.
6.Now, open the corresponding audio (.wav format) files in micro-SD Card. From the header of the audio file calculate the number of samples present in audio file.
7.Read the Data Value from audio file and pass it to DAC7571 through I2C channel. Use I2C in burst mode at 1Mbps speed. Run this process for all sample values. Also, time between two sample values should meet sample rate. 
8.Wait for next command.

B. Speech Processing


For speech processing the Bitvoicer software developed by BitSophie is used. It can take input from microphone of computer or the microcontroller’s microphone via serial communication. It can detect certain phrases and accordingly send some preassigned keywords to the micro-controller using serial communication (UART). The baud rate, frame size & frame structure is configurable through the software. A screenshot of the preferances is given below.

Bitvoicer Setting Screenshot

 

 

 

 

 

 

 

 

 

 

 

 

 

C. Hardware Setup

Used the PadmaBoard (Daughter board for Tiva LaunchPad). It has all peripherals which are mentioned in block diagram. Audio files are stored in micro-SD and played using DAC7571 connected to 3.5mm audio jack. LM35 is used for temperature sensing. Speech Recognition is done in host computer.

Hardware Setup of Project

 

 

 

 

 

 

 

 

 

 

 

D. Demo Video