TSA-demo/TSA_voice_assistant/raspberry_voice_assistant.py [154:263]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    stream.write(audio.read())
    stream.stop_stream()
    stream.close()


def set_color(colori):
    color = COLORS_RGB[colori]
    for i in range(12):
        driver.set_pixel(i, color[0], color[1], color[2])
    driver.show()

def color_start():
    pixels_number = 12
    pixels  = [0, 0, 12, 12, 0, 0, 0, 24] * pixels_number

    cc = 0
    while cc  <= 20:
        for i in range(12):
            driver.set_pixel(i, pixels[4*i + 1], pixels[4*i + 2], pixels[4*i + 3])
            driver.show()
        time.sleep(0.2)
        pixels = pixels[-4:] + pixels[:-4]
        cc +=1

    set_color("off")

def translatelang(text,lang):
    result = translate.translate_text(Text=text, 
            SourceLanguageCode="en", TargetLanguageCode=lang)
    print('TranslatedText: ' + result.get('TranslatedText'))
    print('SourceLanguageCode: ' + result.get('SourceLanguageCode'))
    print('TargetLanguageCode: ' + result.get('TargetLanguageCode'))
    return result.get('TranslatedText')


def word():
    try:
        with noalsaerr():
            porcupine = pvporcupine.create(keywords=["picovoice", "blueberry"])
            #porcupine = pvporcupine.create(keyword_paths=['picovoice/hey-t-s-a-bot__en_mac_2021-10-21-utc_v1_9_0.ppn'])
    
            pa = pyaudio.PyAudio()
    
            audio_stream = pa.open(
                            rate=porcupine.sample_rate,
                            channels=1,
                            format=pyaudio.paInt16,
                            input=True,
                            #input_device_index=2,
                            frames_per_buffer=porcupine.frame_length)
         
            print('[Listening...]')
    
            while True:
                pcm = audio_stream.read(porcupine.frame_length)
                pcm = struct.unpack_from("h" * porcupine.frame_length, pcm)

                keyword_index = porcupine.process(pcm)

                if keyword_index >= 0:
                    print("Hotword '%s' Detected" % keywords[keyword_index])
                    if platform_sys != 'Darwin':
                        set_color(COLORS_RGB[KEYWORDS_COLOR[keywords[keyword_index]]])
                    return "hotword"

    except Exception as e: print('word exception: ',e)

    finally:
            if porcupine is not None:
                porcupine.delete()

            if audio_stream is not None:
                audio_stream.close()
                print('audio stream closed')

            if pa is not None:
                pa.terminate()
                print("pa terminated")

def synthesize_speech(message,text_type):
    global VOICE_ID
    if VOICE_ID is None:
        VOICE_ID = get_voiceid()
    response = polly.synthesize_speech(
        Engine='standard',
        OutputFormat = 'pcm',
        Text = message,
        VoiceId = VOICE_ID,
        TextType=text_type
    )
    audio = response['AudioStream']
    play_audio(audio)

def call_lexv2(session_id, recording, locale_Id):
    try:
        print('locale_Id: ', locale_Id)
        response = lexv2.recognize_utterance(
            botId=bot_id,
            botAliasId=bot_alias_id,
            localeId=locale_Id,
            sessionId=session_id,
            requestContentType='audio/l16; rate=16000; channels=1',
            responseContentType='audio/pcm',
            inputStream=recording
        )
        print("Lex response ", response)

        return response
    except Exception as e: 
        print("there is an error: ", e)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



TSA-demo/TSA_voice_assistant/raspberry_voice_assistant_local.py [182:291]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    stream.write(audio.read())
    stream.stop_stream()
    stream.close()


def set_color(colori):
    color = COLORS_RGB[colori]
    for i in range(12):
        driver.set_pixel(i, color[0], color[1], color[2])
    driver.show()

def color_start():
    pixels_number = 12
    pixels  = [0, 0, 12, 12, 0, 0, 0, 24] * pixels_number

    cc = 0
    while cc  <= 20:
        for i in range(12):
            driver.set_pixel(i, pixels[4*i + 1], pixels[4*i + 2], pixels[4*i + 3])
            driver.show()
        time.sleep(0.2)
        pixels = pixels[-4:] + pixels[:-4]
        cc +=1

    set_color("off")

def translatelang(text,lang):
    result = translate.translate_text(Text=text, 
            SourceLanguageCode="en", TargetLanguageCode=lang)
    print('TranslatedText: ' + result.get('TranslatedText'))
    print('SourceLanguageCode: ' + result.get('SourceLanguageCode'))
    print('TargetLanguageCode: ' + result.get('TargetLanguageCode'))
    return result.get('TranslatedText')


def word():
    try:
        with noalsaerr():
            porcupine = pvporcupine.create(keywords=["picovoice", "blueberry"])
            #porcupine = pvporcupine.create(keyword_paths=['picovoice/hey-t-s-a-bot__en_mac_2021-10-21-utc_v1_9_0.ppn'])
    
            pa = pyaudio.PyAudio()
    
            audio_stream = pa.open(
                            rate=porcupine.sample_rate,
                            channels=1,
                            format=pyaudio.paInt16,
                            input=True,
                            #input_device_index=2,
                            frames_per_buffer=porcupine.frame_length)
         
            print('[Listening...]')
    
            while True:
                pcm = audio_stream.read(porcupine.frame_length)
                pcm = struct.unpack_from("h" * porcupine.frame_length, pcm)

                keyword_index = porcupine.process(pcm)

                if keyword_index >= 0:
                    print("Hotword '%s' Detected" % keywords[keyword_index])
                    if platform_sys != 'Darwin':
                        set_color(COLORS_RGB[KEYWORDS_COLOR[keywords[keyword_index]]])
                    return "hotword"

    except Exception as e: print('word exception: ',e)

    finally:
            if porcupine is not None:
                porcupine.delete()

            if audio_stream is not None:
                audio_stream.close()
                print('audio stream closed')

            if pa is not None:
                pa.terminate()
                print("pa terminated")

def synthesize_speech(message,text_type):
    global VOICE_ID
    if VOICE_ID is None:
        VOICE_ID = get_voiceid()
    response = polly.synthesize_speech(
        Engine='standard',
        OutputFormat = 'pcm',
        Text = message,
        VoiceId = VOICE_ID,
        TextType=text_type
    )
    audio = response['AudioStream']
    play_audio(audio)

def call_lexv2(session_id, recording, locale_Id):
    try:
        print('locale_Id: ', locale_Id)
        response = lexv2.recognize_utterance(
            botId=bot_id,
            botAliasId=bot_alias_id,
            localeId=locale_Id,
            sessionId=session_id,
            requestContentType='audio/l16; rate=16000; channels=1',
            responseContentType='audio/pcm',
            inputStream=recording
        )
        print("Lex response ", response)

        return response
    except Exception as e: 
        print("there is an error: ", e)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



