UNTREF Speech Workshop

From Robert-Depot
Revision as of 04:43, 23 September 2013 by Rtwomey (talk | contribs) (Hands-on with Processing)

Jump to: navigation, search

<<< back to Wiki Home

Introduction

saussure.gif

Talking To Machines

A short workshop introducing speech recognition and speech synthesis techniques for the creation of interactive artwork. We use pre-compiled open-source tools (CMU Sphinx ASR, Festival TTS, Processing, Python) and focus on the demonstrable strengths and unexpected limitations of speech technologies as vehicles for creating meaning.

Saturday Sept 21, 2-6pm Centro Cultural de Borges UNTREF.


Background Reading:

Automatic Speech Recognition

ear.gif

  • Talking to Machines.

Engines

Hands-on with Processing

Example - LIstening with Google ASR

Hands-on with Sphinx

Installation

  • Download from sourceforge: http://cmusphinx.sourceforge.net/wiki/download/
  • If using windows, you need the sphinxbase-0.8-win32.zip and pocketsphinx-0.8-win32.zip files. I already downloaded these for you. They are in the untref_speech folder.

Usage

  • open a terminal. Windows, Run->Cmd.
  • change to the pocketsphinx directory.
    • cd Desktop\untref_speech\pocketsphinx-0.8-win32\bin\Release
  • ENGLISH: run the pocketsphinx command to recognize english:
    • pocketsphinx_continuous.exe -hmm ..\..\model\hmm\en_US\hub4wsj_sc_8k -dict ..\..\model\lm\en_US\cmu07a.dic -lm ..\..\model\lm\en_US\hub4.5000.DMP
  • SPANISH: recognize spanish:
    • pocketsphinx_continuous.exe -hmm ..\..\model\hmm\es_MX\hub4_spanish_itesm.cd_cont_2500 -dict ..\..\model\lm\es_MX\h4.dict -lm ..\..\model\lm\es_MX\H4.arpa.Z.DMP
    • this should transcribe live from the microphone.

Language Models

Training your own Models

  • grammer is trivial.
  • slm, can use online tools. or try the sphinxtrain packages.
  • the online tool http://www.speech.cs.cmu.edu/tools/lmtool-new.html
    • upload a plain-text file of sentences. it will produce a language model from these!
    • download the results.
    • I can talk you through using the resultant model.

Hands-on with Sphinx4 Library for Processing

This section includes a wrapper of the CMU Sphinx library for Processing. Read more about the CMU Sphinx project at http://cmusphinx.sourceforge.net/

Library

  • JAR file and some necessary language and acoustic models to do Sphinx-based speech recognition.
  • Download the zip file below and copy it to your Processing/libraries folder:
    • Download file

Example - Grammar-based Recognition

this example uses a simple grammar. In the data folder it has a grammar file (.gram), a dictionary file (.dict), and a config file (.xml) the grammar file (upstairs.gram) is a JSGF format grammar file that lists the possible words your system can hear. It has a format with individual words in upper-case letters, and a "|" mark between each word. You should be able to edit this file and fill it with your own words. the dict file (upstairs.dict) is a pronunciation dictionary file. It breaks each of those upper-case words fro the grammar into phonemic units. The easiest way to make a new dictionary with your own words is to use the online language tool described below. finally, the config file (upstairs.config.xml) specifies various parameters and file-names for the speech recognition engine. In this file you will probably need to change the path to your data files such as the grammar, dict, and the Library files you installed above. If you edit the xml file you will see that a lot of the paths are of the form "/Users/rtwomey/" which is obviously my computer, replace with the path to the file on your system. contact me if this doesn't work

Example - SLM-based Recognition

  • This example does Sphinx4 automatic speech recognition using a statistical language model (SLM) rather than a grammar.
  • I have included two SLMs in the data directory, 3990.lm/3990.dict, and 7707.lm/7707.dict
  • They were generated with the CMU Sphinx Knowledge Base Tool (see below).
  • Download file:

Online Tool for Training Language Models

this produces a statistical language model and dictionary (along with various other products) for any text file you upload: http://www.speech.cs.cmu.edu/tools/lmtool-new.html your text file should have one sentence per line. upload it and then click "Compile Knowledge Base." on the results screen, click on the .TAR file to download it. Unzip this, and take the .dic file. This is your pronunciation dictionary. You may want to rename it to .dict to match the files in the sketch. Or change your config file. The processing example code above runs from a grammar (.gram) and a dictionary (.dict). This online language tools generates the dictionary for your text but not the grammar. You will need to make the grammar on your own.

Using Sphinx4 (the java interface) with Processing.

Other programming

  • Python or c++
  • command line
  • android
  • pocketsphinx.

Text To Speech Synthesis

voder-2.png

Engines

Test them online

Hands-on With Processing

For Google TTS no library is required. You don't have to install anything. You just need an internet connection to talk to google.

Example 1. Speech

Example 2. Daisy Bell

  • Daisy Bell - http://www.youtube.com/watch?v=41U78QP8nBk
    • "Daisy Bell" was composed by Harry Dacre in 1892. In 1961, the IBM 7094 became the first computer to sing, singing the song Daisy Bell. Vocals were programmed by John Kelly and Carol Lockbaum and the accompaniment was programmed by Max Mathews.

Hands-on with Festival

Installation

Usage

  • run the terminal. Start Menu, Run -> Cmd.
  • switch to the festival directory:
    • cd C:\festival
  • start festival:
    • festival
  • to say something:
    • (SayText "this is what I am going to say")
  • to render speech to sound file:
  • to switch voices:
  • to exit festival:
    • (exit)
  • Festival is written in Scheme, a variant of LISP.

Voices

Making a Voice

  • Portraiture
  • Robert Voice

Activity: Feedback Loop

saussure.gif

Construct a conversation with the machine.

Processing Sketch

http://wiki.roberttwomey.com/images/8/86/Listen_speak.zip