예제 #1
0
    def startStream(self):
        def read(responses, passage):
            missed = []
            passage_index = 0
            self.passage_label = str(".\n".join(passage[passage_index:]) + ".")
            for response in responses:
                if not response.results:
                    continue
                result = response.results[0]
                if not result.alternatives:
                    continue
                if result.is_final:
                    print(result.alternatives[0].transcript)
                    print(
                        passageCheck(passage[passage_index],
                                     result.alternatives[0].transcript))
                    comp_result = passageCheck(
                        passage[passage_index],
                        result.alternatives[0].transcript)
                    missed += comp_result[0]
                    if not comp_result[1]:
                        passage_index += 1
                        self.ids.repeat_button.disabled = True
                    else:
                        passage[passage_index] = " ".join(comp_result[1])
                        generatePronun(comp_result[1][0])
                        self.ids.repeat_button.disabled = False
                        missed += [comp_result[1][0]]
                        self.help_label = str(
                            "Tip: " + " ".join(getWord(
                                comp_result[1][0])))  # call dictionary lookup
                    self.input_label = result.alternatives[0].transcript
                    if passage_index < len(passage):
                        self.passage_label = str(
                            ".\n".join(passage[passage_index:]) + ".")
                if passage_index == len(passage):
                    self.passage_label = str("")
                    print("woo")
                    return missed

        language_code = 'en-US'  # a BCP-47 language tag
        client = speech.SpeechClient()
        config = types.RecognitionConfig(
            encoding=enums.RecognitionConfig.AudioEncoding.LINEAR16,
            sample_rate_hertz=RATE,
            language_code=language_code)
        streaming_config = types.StreamingRecognitionConfig(
            config=config, interim_results=True)

        with MicrophoneStream(RATE, CHUNK) as stream:
            audio_generator = stream.generator()
            requests = (types.StreamingRecognizeRequest(audio_content=content)
                        for content in audio_generator)

            responses = client.streaming_recognize(streaming_config, requests)
            # Now, put the transcription responses to use.
            finals = read(responses, passages.english)
            App.get_running_app().missed_keys = finals
            print("yippee")
            return finals
예제 #2
0
def initializeStream(passage: str):
    # See http://g.co/cloud/speech/docs/languages
    # for a list of supported languages.
    language_code = 'en-US'  # a BCP-47 language tag
    client = speech.SpeechClient()
    config = types.RecognitionConfig(
        encoding=enums.RecognitionConfig.AudioEncoding.LINEAR16,
        sample_rate_hertz=RATE,
        language_code=language_code)
    streaming_config = types.StreamingRecognitionConfig(config=config,
                                                        interim_results=True)

    with MicrophoneStream(RATE, CHUNK) as stream:
        audio_generator = stream.generator()
        requests = (types.StreamingRecognizeRequest(audio_content=content)
                    for content in audio_generator)

        responses = client.streaming_recognize(streaming_config, requests)
        # Now, put the transcription responses to use.
        finals = read(responses, passage)
        return (finals)
예제 #3
0
    def startStream(self):
        def read(responses, passage, lang):
            missed = []
            passage_index = 0
            transcript_index = 0
            self.passage_label = str(".\n".join(passage[passage_index:]) + ".")
            for response in responses:
                # print(response.results[0])
                if not response.results:
                    continue
                result = response.results[0]
                if not result.alternatives:
                    continue
                if result.stability >= 0.80:
                    print(result.alternatives[0].transcript[transcript_index:])
                    transcript = result.alternatives[0].transcript
                    print(transcript_index)
                    print(
                        passageCheck(passage[passage_index],
                                     transcript[transcript_index:]))
                    comp_result = passageCheck(passage[passage_index],
                                               transcript[transcript_index:])
                    if not comp_result[1]:
                        passage_index += 1
                    else:
                        passage[passage_index] = "".join(comp_result[1])
                        fgeneratePronun(comp_result[1][0], lang)
                        self.help_label = str(
                            "Tip: " +
                            " ".join(fgetWord(comp_result[1][0], lang))
                        )  # call dictionary lookup # call dictionary lookup
                    self.input_label = result.alternatives[0].transcript[
                        transcript_index:]
                    transcript_index = len(transcript)
                    if passage_index < len(passage):
                        self.passage_label = str(
                            ".\n".join(passage[passage_index:]) + ".")
                if passage_index == len(passage):
                    self.passage_label = str("")
                    return missed

        language_code = 'ja-JP'  # a BCP-47 language tag 'zh' 'ja-JP'
        passage = passages.japanese
        passageIndex = 0
        client = speech.SpeechClient()
        config = types.RecognitionConfig(
            encoding=enums.RecognitionConfig.AudioEncoding.LINEAR16,
            sample_rate_hertz=RATE,
            language_code=language_code)
        streaming_config = types.StreamingRecognitionConfig(
            config=config, interim_results=True)

        with MicrophoneStream(RATE, CHUNK) as stream:
            audio_generator = stream.generator()
            requests = (types.StreamingRecognizeRequest(audio_content=content)
                        for content in audio_generator)

            responses = client.streaming_recognize(streaming_config, requests)
            # Now, put the transcription responses to use.
            finals = read(responses, passage, 'ja')
            return finals