Bluetooth interface of Smartphone using Voice commands


Our project aims to control a Smartphone using voice commands that are relayed using a Bluetooth module. We use an ARM Microcontroller(LPC 1768), an Android smartphone, an RN-41 Bluetooth module and an EasyVR speech recognition module.

/media/uploads/srikard/img_0331.jpg Fig 1: Setup

The EasyVR module was used for speech recognition. We used the EasyVR commander to train the required voice commands.

Fig 2: EasyVR module and microphone

When the EasyVR matches the user's command to a command in its database it returns a specific character for every command that's matched. This character is relayed to the smartphone using the Bluetooth module. The application used on the smartphone is called the BlueSerialTest, the code for which was modified to implement the specific functions required based on the character that was returned by the EasyVR module.

The code for this project was divided in to two parts i.e, interfacing the mbed with the EasyVR and the RN-41 Bluetooth module and the code for the smartphone application. The mbed code was developed in C++ using the mbed cloud compiler. The smartphone application was developed using Java API.


Fig 3: Wire connections from EasyVR to mbed

mbedEasyVRwire color

Table 1: mbed to EasyVR connections

RN41 Pinmbed Pin
11- VDDVout
13 - RXp9
14 - TXp10

Table 2: mbed to RN41 connections

Training using the EasyVR GUI

The serial bridge code below can then be run on mbed so that it can talk to their PC-based EasyVR GUI training program over mbed's USB Virtual Com Port. This software allows the user to create and test new speaker dependent (i.e., trained for one person) command words.

Fig 4: EasyVR commander GUI used for training voice commands

Import programEasyVR_Bridge

Serial Bridge program to support using the EasyVR with mbed. It is run when using the PC-based EasyVR GUI tools for voice recognition training and testing.


As can be seen from the video we couldn't succeed in using our custom commands that we trained using the EasyVR commander, so we had to revert back to the default number commands. In this demo when the user says number '1' the phone calls back the most recent caller, for '2' the phone call a particular contact from the phone's contact list, '3' opens up the music player, '4' disconnects an incoming call.


mbed part

Import programBluetooth_Smartphone

4180 final project

App part


Please log in to post comments.