Summer of Code/2014/bliss-sid/Voice-interface: Difference between revisions

Bliss-sid (talk | contribs)
No edit summary
Bliss-sid (talk | contribs)
No edit summary
Line 42: Line 42:
'''2. Describe your project in 10-20 sentences. What are you making? Who are you making it for, and why do they need it? What technologies (programming languages, etc.) will you be using?'''
'''2. Describe your project in 10-20 sentences. What are you making? Who are you making it for, and why do they need it? What technologies (programming languages, etc.) will you be using?'''


With my project,I am aiming to add another dimension to Sugar Labs learning experience by fabricating a speech recognition engine with the help of  Pocketsphinx.I will start with en_US  Hidden Markov Acoustic Model included with Pocketsphinx-0.8.For making it more interactive,we will use a Text-to-Speech engine like eSpeak( Or any better alternative).I will add speech recognition within activities and add a documentation for every activity with certain keywords that will perfrom a task.The basic working of this feature will
With my project,I am aiming to add another dimension to Sugar Labs learning experience by fabricating a speech recognition engine with the help of  Pocketsphinx.I will start with en_US  Hidden Markov Acoustic Model included with Pocketsphinx-0.8.For making it more interactive,we will use a Text-to-Speech engine like eSpeak( Or any better alternative).I will add speech recognition within activities and add a documentation for every activity with certain keywords that will perfrom a task.
 
  def get_hyp(self):
     
      """
      This function returns the final recognized string of the
      utterance.It is an inbuilt function in pocketsphinx.
      """
      cdef const_char_ptr hyp
      cdef const_char_ptr uttid
      cdef int score
      hyp = ps_get_hyp(self.ps, &score, &uttid)
      # No result
      if hyp == NULL:
            return None, None, 0
       
      return hyp, uttid, score
 
   
  def check(self):
        """
        This function will check the recognized string hyp
        for the keywords that will give in documentation for
        performing any specific task.
        """ 
        word=hyp.split()
        if(word[0]="Keyword")
If word[0]="Keyword" ,the corresponding function to perform that task will be called
       


'''After completion of this project''',
'''After completion of this project''',
Line 80: Line 52:
'''3.''' Their will be  special support for '''TurtleBlocks,Terminal,Chat and Browse activity''' like for TurtleBlocks activity,if we say
'''3.''' Their will be  special support for '''TurtleBlocks,Terminal,Chat and Browse activity''' like for TurtleBlocks activity,if we say
                                         “Forward 20”,it goes 20 units forward.
                                         “Forward 20”,it goes 20 units forward.
In this case,check function will be something like
        def check(self): 
            word=hyp.split()
   
            if(word[0]="Forward")
              s=word[1]
              forward(s)




Here,forward function will pass s as variable and change the Turtleblock's file and it will move forward by s units.
We will define many keywords and corresponding functions and if recognised string doesn't match any of them,it will give an error message.




Line 243: Line 203:




The basic working of this feature will be like
  def get_hyp(self):
     
      """
      This function returns the final recognized string of the
      utterance.It is an inbuilt function in pocketsphinx.
      """
      cdef const_char_ptr hyp
      cdef const_char_ptr uttid
      cdef int score
      hyp = ps_get_hyp(self.ps, &score, &uttid)
      # No result
      if hyp == NULL:
            return None, None, 0
       
      return hyp, uttid, score
   
  def check(self):
        """
        This function will check the recognized string hyp
        for the keywords that will give in documentation for
        performing any specific task.
        """ 
        word=hyp.split()
        if(word[0]="Keyword")
If word[0]="Keyword" ,the corresponding function to perform that task will be called.Like in TurtleBlocks,if word[0]="Forward" then a function with word[1] as a parameter will be called and turtle will move forward by that units.
       
I read somewhere that Summer of Code is not about how much you know. It is about how quickly you can learn and how eager you are to contribute to your Open Source community.I have loved studying the Sugarlabs repository and learned a lot so far.  
I read somewhere that Summer of Code is not about how much you know. It is about how quickly you can learn and how eager you are to contribute to your Open Source community.I have loved studying the Sugarlabs repository and learned a lot so far.