BeagleBoard/GSoC/Modern Speak and Spell

From eLinux.org
Jump to: navigation, search


ProposalTemplate

Recreating and improving the functionality of the previous Speak and Spell toy by Texas Instruments, and generate open-source code for it.

Student: Anirban Banik
Mentors: Jason Kridner
Code: https://github.com/AnirbanBanik1998/Speak_and_Spell
Wiki: https://www.elinux.org/BeagleBoard/GSoC/ModernSpeak-Spell

Status

To celebrate the 40th anniversary of the “Speak & Spell” from Texas instruments, this proposal was accepted in order to create an updated “Speak & Spell” using a PocketBeagle.


Proposal

I have completed the task required as described on the ideas page, and created a pull request, as listed here

About Me

IRC: AnirbanBanik1998 || Anirban
Github: [1]
School: ST. Xavier's Institution, Panihati, Kolkata
Country: India
Primary language: English,Hindi,Bengali
Typical work hours: 9:30 - 23:00 IST GMT/EST/PST to Ist Adjusted Time
Previous GSoC participation: This is my first GSoC participation. Got interested in open-source the day I started with it, and naturally learnt about GSoC soon. Really excited to work with an open-source community, and generate useful open-source code.

Skills: C,Python,HTML,CSS,JavaScript and Java

Tools(proficient) : Git,Linux

Experience : C,Python,Java,HTML,CSS,JavaScript,Arduino

Hardware Skills : Arduino, Raspberry Pi(basic)

Modern “Speak & Spell” using PocketBeagle

Project name: Modern “Speak & Spell” using PocketBeagle

Description

To celebrate the 40th anniversary of the “Speak & Spell” from Texas instruments, create an updated “Speak & Spell” using a PocketBeagle.
 This should be a general Linux application that can be reproduced and should not be a one-off build.

My approach to this problem will be more in the software domain, and some basic wirings in the hardware domain.

Modern “Speak & Spell” project overview

The Speak & Spell was an electronic hand-held computer first introduced in 1978, and instantly becoming a favourite of children and adults alike. that consisted of a TMC0280 linear predictive coding speech synthesizer, a keyboard, and a receptor slot to receive one of a collection of ROM game. The improvements that I am trying to bring forth in this project are, Speech to Text along with Text to Speech functionality. For the former, I am thinking of using CMU Sphinx, and for the latter I will use CMU Flite which is specifically designed for small-scale embedded systems. I am aiming at implementing speech-recognition for not only recognizing the spelling of the user, but also as a voice launcher for launching the games at the user's command. This can be specifically helpful for those who don't have a keyboard or don't want to use it. This is, of course, an added functionality, as the typing functionality will always be there.

Detailed Description

On Starting the Application:

 1. The user will be prompted to select a game among the given list of games. He can either launch the game using his voice or keyboard. Thus the voice-launcher scheme works here.
 2. If the "Spell It" game launches, it will prompt the user to speak out the spelling of a word spoken out by the application. The word is from an already created dictionary. 
 Here Text to Speech works.
 3. If the "Hangman" game launches, it will ask the user to fill in the blanks to create a word. This game is so made that if any letter is entered or spoken by the user, 
 which is repeated in the answer, then the letter is placed at every blank it is supposed to be in one go.
 4. If the "Encrypter" game starts, then it is a multi-user game. One encrypts a word in a certain way, and the other has to decrypt it to get back the original word. 

Progress till now

I have started working on this project in order to brush up my understanding about how this application is going to work. Firstly, I started with recreating the original games, so that I might be able to add more functionality to them later. Finished building two games, the "Spell It" and "Hangman" and have started work on "Encrypter". Regarding the usage of CMU Sphinx, till now I have restricted myself to only the English Speak and Spell which I aim to extend to the other languages as well. The usage of CMU Sphinx requires a dictionary of words to be recognized be made. I have done it manually, and made a phonetic dictionary of it from the CMU Sphinx website. This dictionary contains words to start and stop games, and alphabets A to Z for aid in Spelling.


Game.png

A rough functioning of the Hangman Game.

Started with implementation of Speech to text. Gradual progress is being made in it, adding to my experience as well. We have to work in two terminals simultaneously, one for launching the PocketSphinx, and another for the actual games.

Timeline:

I don't have any commitments during the period of GSoC, therefore I can devote 50+ hours per week for this project.

I have already started work on this project and will try to increase the reach of this project to other languages as well as develop the project on beaglebone once selected, reading as much documentation i can get on my hands about beaglebone in the process.

Community Bonding Period

Get acquainted with the documentation of beaglebone, improving on my previous code, and discussing about any further improvements in depth with the mentors.

Week 1 - 2

Working on a web-crawler to crawl the Wikitionary to get the vocabulary of words of various languages. Preparing the introductory presentation slides and video.

Week 3

Working on building the "Spell It" game, for multiple languages.

Week 4- 5

Rebuilding the "Hangman" game, deployment on pocketbeagle, in multiple languages.

Week 6 - 8

Building the "Encrypter" game, adding multi-user functionality. Adding the functionality to encrypt words based on the user's discretion, including new types of encryptions, and creating a database to use them later.

Week 9 - 10

Building the "Crossword" game, as an extension of the "Hangman" game, and generating scores based on how much of the puzzle is filled up.

Week 11

Buffer Week.

Week 12-13

Testing, fixing bugs, merging, improving documentation.

Week 14

Prepare the final presentation slides and video.

Final Goals:

A Modern Speak and Spell using PocketBeagle, all of whose parts are reproducible, and generating open-source code for it, for utilizing it in a more widespread way.

Future Goals

Experience

Though I had Computer Science as a subject in my school, yet was never really aware of all the things going on in this domain, till I reached college. Was fascinated by the progress occurring in this field. I was particularly impressed by the freedom one gets in Open-Source. I would like to contribute to this community, not only because of my interest in hardware in general, but because this project as a whole appealed to me.

Previous Contributions to Open-Source

Contributions to this project

As there was no upstream repository to contribute to, I started recreating the games myself, and worked on adding Speech to Text and vice-versa functionalities. https://github.com/AnirbanBanik1998/Speak_and_Spell

Participations

  • Participated in GSoC Heat contest in our college, and got selected for a mini experience of the actual GSoC. Completed the tasks given in my proposal successfully.

Approach

During entire period of GSoC I won't be having any academic duties to fulfill since the summer break would be pretty long. Thus i can devote my whole time to the project. This will in-turn help me in increasing my experience building projects on open-source hardware, and open-source in general.

I believe that I should be chosen love for tinkering around with hardware. I would enjoy working on this project and pour in all of the hardwork and passion required.


Benefit

The weather station shall be beneficial to students,teachers and researchers who are currently plagued by the cost of commercial hardware available.Even if researchers with large amount of funds do have acess to equipment they still have to spend more money to retrieve it after deployment.Where as given the cost,size and portability of this project it can be airdropped,used and forgotten about.Transporting,storing it would be easy on aircraft's,ships that already have limited space and often researchers have to sacrifice supplies for equipment.Can also be strapped to drones to be deployed since the weight is negligible.


What community members speak -

   Great project for the Aspiring Weather Scientist.
                           Michael Welling(m_w) 
   A working/documented FOSS implementation would be a huge
   plus for both the open source and weather communities.
                              Steve Arnold(nerdboy) 


      • Mentors!!! please add your Quote here.***

Suggestions

Is there anything else we should have asked you?