respeaker / get_started_with_respeaker

This is the wiki of ReSpeaker Core V2, ReSpeaker Core and ReSpeaker Mic Array.
257 stars 83 forks source link

Python Bing_STT.py #233

Open premanandmanimaran opened 5 years ago

premanandmanimaran commented 5 years ago

Dear All USING Respeaker Core V 2.0 When trying Online STT and when running i am stuck . Please help respeaker@v2:~$ python Bing_STT.py ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.front ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround40 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround41 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround50 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround51 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround71 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave

Prem

Which version is your board?

Note: It might be ReSpeaker (v1) or ReSpeaker Core v2, please see the pictures to know what they look like.

If your problematic subject is the ReSpeaker Mic Array - Far-field w/ 7 PDM Microphones, where do you connect it to? The ReSpeaker Core or PC?

xiongyihui commented 5 years ago

The log is normal pyaudio log, as pyaudio will check all ALSA devices.

Can you provide more information?

premanandmanimaran commented 5 years ago

The log is normal pyaudio log, as pyaudio will check all ALSA devices.

Can you provide more information?

Hi Xiongyihui

Thanks for the reply I am trying to use the Respeaker to work as Conference room Speakerphone. I needs to start recording also use Speech to Text engine like IBM Watson to convert the Speech to text . User can turn it on using wake up word .

So i am trying to use Online Bing STT to test to see how the python code is interacting, So i can modify the code to do the above function.

I followed the wiki documentation and started with installation, When i added the code from Azure to BING_STT.py and ran it . I got the following. respeaker@v2:~$ python Bing_STT.py ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.front ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround40 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround41 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround50 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround51 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround71 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave

When i am saying the wake up word "Respeaker" nothing happens.

xiongyihui commented 5 years ago

Maybe the pocketsphinx did not recognize the word "Respeaker".

You can use the following code to check if it's the case. The code will wait for the "Enter" key, instead of detecting the wakeup word "Respeaker"

import logging
import time
import os
import signal
from threading import Thread, Event
from respeaker import Microphone
from respeaker.bing_speech_api import BingSpeechAPI

# get a key from https://www.microsoft.com/cognitive-services/en-us/speech-api
BING_KEY = ''

def task(quit_event):
    mic = Microphone(quit_event=quit_event)
    bing = BingSpeechAPI(key=BING_KEY)

    while not quit_event.is_set():
        try:
            input('press Enter to talk\n')
        except SyntaxError:
            pass
        except NameError:
            pass

        if True:   # mic.wakeup('respeaker'):
            print('Wake up')
            data = mic.listen()
            try:
                text = bing.recognize(data)
                if text:
                    print('Recognized %s' % text)
                    if 'turn on light' in text:
                        print('I will turn on light!')
                    if 'turn off light' in text:
                        print('I will turn off light!')
            except Exception as e:
                print(e.message)

def main():
    logging.basicConfig(level=logging.DEBUG)
    quit_event = Event()

    def signal_handler(sig, frame):
        quit_event.set()
        print('quit')
    signal.signal(signal.SIGINT, signal_handler)

    thread = Thread(target=task, args=(quit_event,))
    thread.daemon = True
    thread.start()
    while not quit_event.is_set():
        time.sleep(1)

    time.sleep(1)

if __name__ == '__main__':
    main()
premanandmanimaran commented 5 years ago

Maybe the pocketsphinx did not recognize the word "Respeaker".

You can use the following code to check if it's the case. The code will wait for the "Enter" key, instead of detecting the wakeup word "Respeaker"

import logging
import time
import os
import signal
from threading import Thread, Event
from respeaker import Microphone
from respeaker.bing_speech_api import BingSpeechAPI

# get a key from https://www.microsoft.com/cognitive-services/en-us/speech-api
BING_KEY = ''

def task(quit_event):
    mic = Microphone(quit_event=quit_event)
    bing = BingSpeechAPI(key=BING_KEY)

    while not quit_event.is_set():
        try:
            input('press Enter to talk\n')
        except SyntaxError:
            pass
        except NameError:
            pass

        if True:   # mic.wakeup('respeaker'):
            print('Wake up')
            data = mic.listen()
            try:
                text = bing.recognize(data)
                if text:
                    print('Recognized %s' % text)
                    if 'turn on light' in text:
                        print('I will turn on light!')
                    if 'turn off light' in text:
                        print('I will turn off light!')
            except Exception as e:
                print(e.message)

def main():
    logging.basicConfig(level=logging.DEBUG)
    quit_event = Event()

    def signal_handler(sig, frame):
        quit_event.set()
        print('quit')
    signal.signal(signal.SIGINT, signal_handler)

    thread = Thread(target=task, args=(quit_event,))
    thread.daemon = True
    thread.start()
    while not quit_event.is_set():
        time.sleep(1)

    time.sleep(1)

if __name__ == '__main__':
    main()

Thanks once again for your reply

I changed the file to reflect your code and i was able to run it ...After pressing ENTER and when i say "Respeaker" or "Turn on light" I am not getting any response and i am getting Http request error respeaker@v2:~$ python Bing_STT.py ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.front ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround40 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround41 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround50 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround51 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround71 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958 ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave press Enter to talk

Wake up 11http request error with status code 401 press Enter to talk

11+100000000-1111+11100000000-00000000000001111+111Wake up http request error with status code 401 press Enter to talk

0000000000000000001111+111111100000000-0000000000000000000000000000000000000000000000Wake up http request error with status code 401 press Enter to talk ^C0000000000000000000000000000000000000000000000quit

Another Issue i noticed ..Previously i was able to use arecord and was able to record but now i am getting an error. Aplay is working fine respeaker@v2:~$ arecord -l List of CAPTURE Hardware Devices card 0: seeed8micvoicec [seeed-8mic-voicecard], device 0: 100b0000.i2s1-ac108-pcm0 ac108-pcm0-0 [] Subdevices: 0/1 Subdevice #0: subdevice #0

respeaker@v2:~$ arecord -Dhw:0,0 -f S16_LE -r 16000 -c 8 hello_8ch1.wav respeaker@v2:~$ arecord -l ** List of CAPTURE Hardware Devices ** card 0: seeed8micvoicec [seeed-8mic-voicecard], device 0: 100b0000.i2s1-ac108-pcm0 ac108-pcm0-0 [] Subdevices: 0/1 Subdevice #0: subdevice #0 respeaker@v2:~$ arecord -Dhw:0,0 -f S16_LE -r 16000 -c 8 hello_8ch1.wav arecord: main:788: audio open error: Device or resource busy

Unable find a solution

Can you help?

Prem

xiongyihui commented 5 years ago

The reason of Device or resource busy should be that pulseaudio is using the audio device.

Are you able to run arecord -v -f S16_LE -c 8 -r 16000 ? You can check the log to see which audio device is used by default.

SELMIsirine commented 5 years ago

same problem with Http request error "11http request error with status code 401"