Make Your BBC Micro:Bit Talk Using MicroPython

Hello Everyone!

Hope you all are doing well. Today, I am going to show how to make your micro:bit talk using a very easy programming language that is MicroPython.Yes, it is very easy to make your BBC Micro:bit device talk using Speech Synthesis. And you know. the interesting part is just four lines of code and your device will start talking/saying whatever you want.

So. let's see how to do this.

If you don't know whatBBC Micro:bit is and how to get started with it, please see My article or this article, where I have covered all the basics on how to get started with Micro:bit.

So, let's get started and see how to make micro:bit talk.

Prerequisites

  1. Micro: bit (1 pcs)
  2. USB cable (1 pcs)
  3. Battery AAA 1.5V (2 pcs)
  4. Battery Box (1 pcs)
  5. Speaker
  6. Crocodile connectors or normal wire


Connection

Before getting started, first we need to know how to connect our micro:bit to speaker.

For Speech Synthesis in Micro: bit, we need to connect the micro: bit PIN0 and PIN1 to our speaker because for Speech synthesis, it always produces output from PIN0 and PIN1 only. From PIN 0 and PIN 1, you can connect any end to your speaker jack either positive or negative that really doesn't matter.


And, this is how your connection will look like. Do not forget to connect to your computer via USB cable.



I had no crocodile connectors and I was very excited to see my micro:bit talking, so I used normal wires to make the connections. Anyway, this is the connection.

Now, let us see the coding part. For coding, we have two options - Online and Offline.

Online

If you want to use online IDE for MicroPython, then you can visit this link of BBC Micro:bit official site. Click on "Create code" and then choose "MicroPython".

Offline

For offline, we are going to use MU editor for Micro:bit. Why I am using this because it is very light-weight and easy to use. The best part is that we can directly flash from editor IDE to our Micro:bit. We need not to copy and paste Hex file again and again whenever we update the code. You can download here. For Windows, you need to install one driver also to flash directly to your micro:bit whenever you update the code.download here. So go to https://codewith.mu/#download, and download and install.



Let us write the code.

I am going to add a micro:bit and Speech library by writing the following code.
  1. from microbit import *
  2. import speech
The above code actually means that we want to use all the objects and functions/methods that are available within the micro: bit library, like controlling the led display, displaying our name, displaying symbols, Speech Synthesis, music and much more. Speech is a class there and now we are going to call say() method to make our micro: bit talk by writing the following code.
  1. speech.say("Hello,CSHARP")
In the above code, Speech is a class and we are calling say method and passing Hello CSHARP as String.It takes String as a parameter. Now, if we will run this code, our micro: bit will speak Hello CSHARP.

We can add a few more things to this code like,

Pitch
how high or low the voice sounds (0 = high, 255 = Barry White).

Speed - how quickly the device talks (0 = impossible, 255 = bedtime story)

Mouth - how tight-lipped or overly enunciating the voice sounds (0 = ventriloquist’s dummy, 255 = Foghorn Leghorn)
Throat - how relaxed or tense is the tone of voice (0 = falling apart, 255 = totally chilled)

These parameters control the quality of sound - a.k.a. the timbre. To be honest, the best way to get the tone of voice you want is to experiment, use your judgment, and adjust. To learn more visit here.

After adding these parameters, our code looks like the following.
  1. speech.say("Hello,CSHARP",speed=120, pitch=100, throat=100, mouth=200)  
And yes, if we want our micro: bit say multiple things, then we can add delay also.
  1. speech.say("Hello,FACEBOOK")  
  2. sleep(2000)  
  3. speech.say("Hello,I AM MICROBIT AND I CAN TALK")  
  4. sleep(2000)  
I want my micro:bit say a lot of things, so here is the code and this is final code.
  1. from microbit import *  
  2. import speech  
  3. display.show(Image.HAPPY)  
  4. sleep(2000)  
  5. speech.say("Hello,Twitter")  
  6. sleep(2000)  
  7. display.show(Image.HEART)  
  8. sleep(2000)  
  9. speech.say("Hello,CSHARP")  
  10. sleep(2000)  
  11. speech.say("Hello,FACEBOOK")  
  12. sleep(2000)  
  13. speech.say("Hello,I AM MICROBIT AND I CAN TALK")  
  14. sleep(2000)  
  15. speech.say("I LOVE YOU")  
Get full code Here.

Now, after writing the code, let us see how can we flash it and run our code on micro:bit. For this, after writing the code, just click on "Flash" button there.



The demo can be seen here.