Shop OBEX P1 Docs P2 Docs Learn Events
EMIC-2 and speech synthesis styles — Parallax Forums

EMIC-2 and speech synthesis styles

Hello!
I bought one a while ago from Micro Center in Brooklyn. Interesting gadget. And not surprisingly enough, back in April I was at the VCF East. It's a gathering of computers from our past in a building who's also part of the past, radio was perfected there.

One chap brought his DEC Talk gadget along, now I freely admit having seen one before, back when the library here in Queens was using a better method of managing books. It assisted visually impaired readers in their efforts.

At the show the gadget demonstrated itself and the host. However.... Here the EMIC-2 sounds decidedly close to that style.

This fragment is from code fragments from the attending PDF
' {$STAMP BS2}
' {$PBASIC 2.5}

EMIC_TX  PIN    0    ' Serial output (connects to Emic 2 SIN)
EMIC_RX  PIN    1    ' Serial input (connects to Emic 2 SOUT)
 T9600       CON     84
EmicBaud    CON     T9600

'BS2 Example:
' Send command and the text string to convert to speech
SEROUT EMIC_TX, EmicBaud, ["N2", CR]
SEROUT EMIC_TX, EmicBaud, ["V4", CR]
SEROUT EMIC_TX, EmicBaud, ["P0", CR]
SEROUT EMIC_TX, EmicBaud, ["S", "Hello! My name is Emic 2. Nice TO meet you.", CR]
' Wait until the command is completed
SERIN EMIC_RX, EmicBaud, [WAIT(":")]
I suggest that those of us who have one try that out. I'm using mine on a BOE Board wearing the BS2 target.

Oh and no robots were involved in this activity nor did any apply.

Comments

  • Hello Buck, I have owned Emic-2 for a couple of years now, and think it's great. Have only used it with Propeller's though, I'm going to try this code tomorrow with the BS2, but don't understand why Emic-2 would sound any different than Prop controlled, since it just excepts a serial string @ 9600 baud. Would like to hear a more affirmative gutsy voice.

    Mike
  • MikeDYur wrote: »
    Hello Buck, I have owned Emic-2 for a couple of years now, and think it's great. Have only used it with Propeller's though, I'm going to try this code tomorrow with the BS2, but don't understand why Emic-2 would sound any different than Prop controlled, since it just excepts a serial string @ 9600 baud. Would like to hear a more affirmative gutsy voice.

    Mike

    You should be able to get the same sound using the Propeller. Just use the same settings Buck Rodgers uses.

    I haven't played with the settings much myself and I'm interested to hear what sort of voice these suggested settings produce.

  • Here's a Propeller version of the test code.
    CON 
    
      _clkmode = xtal1 + pll16x      'using 5 MHz crystal in pll16x mode
      _xinfreq = 5_000_000           'to achieve 80 Mhz clock frequency 
    
     
      EMIC_TX_PIN = 0
      EMIC_RX_PIN = 1
    
      DEBUG_BAUD = 115200
      EMIC_BAUD = 9600
    
      EMIC_REPLY_TIMEOUT = 2000
    
    OBJ  
     
      Pst : "Parallax Serial Terminal"     ' uses one cog
      Emic : "Parallax Serial Terminal"     ' uses one cog
    
    PUB Setup 
     
      Pst.Start(DEBUG_BAUD)
      Emic.StartRxTx(EMIC_RX_PIN, EMIC_TX_PIN, 0, EMIC_BAUD)
    
      repeat
        result := Pst.RxCount
        Pst.Str(string(11, 13, "Press any key to begin."))
        waitcnt(clkfreq / 2 + cnt)
      until result
    
      Pst.RxFlush
    
      Emic.Char("N")
      Emic.Char("2")
      Emic.Char(13)
    
      Emic.Char("V")
      Emic.Char("4")
      Emic.Char(13)
    
      Emic.Char("P")
      Emic.Char("0")
      Emic.Char(13)
    
      Emic.RxFlush
      
      MainLoop
      
    PUB MainLoop
    
      repeat
        Say(@message0)
        result := RxCharacterTime(":", EMIC_REPLY_TIMEOUT)
        
        if result == -1
          Pst.Str(string(11, 13, "No reply from Emic2."))
        elseif result == ":"
          Pst.Str(string(11, 13, "OK"))
        else
          Pst.Str(string(11, 13, "Error! Reply from Emic2 = "))
          SafeTx(result)
    
        Emic.RxFlush
          
        Pst.Str(string(11, 13, "Press any key to continue."))
        result := Pst.CharIn
        
    PUB Say(stringToSay)
    
      Emic.Char("S")
      Emic.Str(stringToSay)
      Emic.Char(13)
    
    PUB RxCharacterTime(character, timeToWait) | startWait
    '' "timeToWait" in milliseconds
    '' returns "character" if the character is found.
    '' if the desired character isn't found the method
    '' will return either -1 or the last non-matching character received
    
      timeToWait *= clkfreq / 1000
      startWait := cnt
      
      repeat
        repeat
          result := Emic.RxCount
        until result or cnt - startWait > timeToWait  
    
        if result
          result := Emic.CharIn 
        else
          result := -1
          
      until result == character or cnt - startWait > timeToWait
      
    PUB SafeTx(character)
    
      case character
        " ".."~":
          Pst.Char(character)
        other:
          Pst.Char("<")
          Pst.Char("$")
          Pst.Hex(character, 2)
          Pst.Char(">")
                
    DAT
    
    message0      byte "Hello! My name is Emic 2. Nice TO meet you.",0            'test string
    

    The "RxCharacterTime" method lets one watch for a specific character within a specified time interval.

    Here's the output from the program.
    Press any key to begin.
    Press any key to begin.
    Press any key to begin.
    Press any key to begin.
    OK
    Press any key to continue.
    OK
    Press any key to continue.
    

    The program requires input from a terminal to begin and continue.

  • Thanks Duane, I am going to try the BS2 version this afternoon, not sure yet what my Emic-2's purpose is going to be, wether it will ride along with my robot, or be included in a message board, using 10 of the 8x8 dot matrix displays you had posted code on in another thread, I think they're pretty cool to.

    Mike
  • Just tried Emic-2 on the BS2 Homework Board, and there was nothing I hadn't heard before using the Propeller, the default voice is Perfect Paul which sounds a little nasally. But there is always 8 other voices to choose from, In my opinion the default voice sounds the clearest, that little board still amazes me.
  • Forgot to post a pic.

    Mike
    1280 x 720 - 381K
  • ercoerco Posts: 20,257
    MikeDYur wrote: »
    Just tried Emic-2 on the BS2 Homework Board, and... that little board still amazes me.

    There's 25 years of tech innovation between the BS-2 and the Emic-2. :)

  • erco wrote: »
    MikeDYur wrote: »
    Just tried Emic-2 on the BS2 Homework Board, and... that little board still amazes me.

    There's 25 years of tech innovation between the BS-2 and the Emic-2. :)

    I agree.
    That's why I revisited the speech synthesizer that General Instruments made before setting it aside for the EMIC-2 board,

    Oh and no robots were involved in this activity nor did any apply.
  • ercoerco Posts: 20,257
    I'm still bummed that Ken Lemieux quit selling his SPO512 Robovoice chip. I used that in several products. Emic has better speech, Robovoice was Robotic, like the General Instruments chip.
  • erco wrote: »
    I'm still bummed that Ken Lemieux quit selling his SPO512 Robovoice chip. I used that in several products. Emic has better speech, Robovoice was Robotic, like the General Instruments chip.

    Just for the heck of it , I searched eBay for the SPO512 and this came up.
    erco, you can have all the memories on compact disc, and listen to it whenever you want.

    http://m.ebay.com/itm/Bruno-Lauzi-Bruno-Lauzi-SPO-512-LP-/231964730989?hash=item36022ce66d:g:p6QAAOSwxndXT2Df
  • ercoerco Posts: 20,257
    Nice try, Mike...

    See http://www.speechchips.com/shop/item.aspx?itemid=13 which is Ken's website. Not much for sale there anymore. But that free emulator download lets you play with SP0256-style speech phonemes if you are so inclined.
  • Thanks for the link erco, I am so inclined, didn't realize there were that many choices in speech chips out there, too bad they can't be had.
  • ercoerco Posts: 20,257
    The world is newly rife with clone 256 chips, all over Ebay China. I have a pile of originals and various crystals, which are harder to find.
  • erco wrote: »
    The world is newly rife with clone 256 chips, all over Ebay China. I have a pile of originals and various crystals, which are harder to find.



    Chip Talk and the Propeller Activity Bot might be a good solution for me. I can get the sound I want, without any extra overhead. Spelling can take a hard hit to get close pronunciation.
  • Now there's and idea.
    I'm interested in seeing how to have the board recite the numbers returned in the BS2 program for the TI TI83Plus to communicate with the stamp.
  • ercoerco Posts: 20,257
    Robovoice did a good job parsing long number strings, automatically saying thousand and hundred. Here's my talking terminal & calculator.

  • But will EMIC-2? I want to hear it saying "192", and then again "192".
  • Love the song.
  • Looking for a little music, I came across Ron's post from 2012.


    http://forums.parallax.com/discussion/141536/zip-file-of-emic-2-songs
  • Here's a few examples of Chip-Talk wav files, after running them through an audio editor, to remove the dead space between the syllables and words.

Sign In or Register to comment.