def build_first_request(sample_rate_hertz, num_channels): request = stt_pb2.StreamingRecognizeRequest() request.streaming_config.config.encoding = stt_pb2.AudioEncoding.LINEAR16 request.streaming_config.config.sample_rate_hertz = sample_rate_hertz request.streaming_config.config.num_channels = num_channels request.streaming_config.config.enable_automatic_punctuation = True return request
def generate_requests(args, agi): try: yield build_first_streaming_recognition_request(args) i = 0 while True: i = i + 1 if agi != None: data = os.read(AUDIO_FD, 8000) else: data = bytes(160) if i == 1: # drop initial data continue #if agi != None: # agi.verbose("Frame: %d(%d): %s" % (i, len(data), binascii.hexlify(data))) #else: # print("Frame: %d(%d): %s" % (i, len(data), binascii.hexlify(data))) if not data: break request = stt_pb2.StreamingRecognizeRequest() request.audio_content = data if agi == None and i > 20: sys.exit() yield request except: logger.exception("Got exception in generate_requests") raise
def build_first_request(sample_rate_hertz, num_channels): request = stt_pb2.StreamingRecognizeRequest() request.streaming_config.config.encoding = stt_pb2.AudioEncoding.LINEAR16 request.streaming_config.config.sample_rate_hertz = sample_rate_hertz request.streaming_config.config.num_channels = num_channels request.streaming_config.config.profanity_filter = True return request
def generate_requests(context): try: with wave.open("../../audio/stierlitz.wav") as f: yield build_first_request(f.getframerate(), f.getnchannels(), context) frame_samples = f.getframerate() // 10 # Send 100ms at a time for data in iter(lambda: f.readframes(frame_samples), b''): request = stt_pb2.StreamingRecognizeRequest() request.audio_content = data yield request # Sending 1 second of silence for i in range(10): request = stt_pb2.StreamingRecognizeRequest() request.audio_content = bytes(frame_samples) yield request except Exception as e: print("Got exception in generate_requests", e) raise
def build_first_request(sample_rate_hertz, num_channels): request = stt_pb2.StreamingRecognizeRequest() request.streaming_config.config.encoding = stt_pb2.AudioEncoding.LINEAR16 request.streaming_config.config.sample_rate_hertz = sample_rate_hertz request.streaming_config.config.num_channels = num_channels request.streaming_config.config.vad_config.min_speech_duration = 1.0 request.streaming_config.config.vad_config.max_speech_duration = 30.0 request.streaming_config.config.vad_config.silence_duration_threshold = 3.0 request.streaming_config.config.vad_config.silence_prob_threshold = 0.2 return request
def build_first_request(sample_rate_hertz, num_channels, context): request = stt_pb2.StreamingRecognizeRequest() request.streaming_config.config.encoding = stt_pb2.AudioEncoding.LINEAR16 request.streaming_config.config.sample_rate_hertz = sample_rate_hertz request.streaming_config.config.num_channels = num_channels # ВАЖНО! # Не рекомендуется: # - добавление слов короче 5 символов # - выставление score в слишком большое значение request.streaming_config.config.speech_contexts.append(context) return request
def generate_requests(): try: yield build_first_request() with open("../../audio/sample_3.al", "rb") as f: for data in iter(lambda: f.read(800), b''): # Send 100ms at a time request = stt_pb2.StreamingRecognizeRequest() request.audio_content = data yield request except Exception as e: print("Got exception in generate_requests", e) raise
def generate_requests(path): try: with wave.open(path) as f: yield build_first_request(f.getframerate(), f.getnchannels()) frame_samples = f.getframerate() // 10 # Send 100ms at a time for data in iter(lambda: f.readframes(frame_samples), b''): request = stt_pb2.StreamingRecognizeRequest() request.audio_content = data yield request except Exception as e: print("Got exception in generate_requests", e) raise
def stt_generate_requests(args, reader): try: yield build_first_streaming_recognition_request(args) while True: data = reader.read() if not data: break request = stt_pb2.StreamingRecognizeRequest() request.audio_content = data yield request except: logger.exception("Got exception in stt_generate_requests") raise
def generate_requests(): try: fname = "../../audio/sample_3.mp3" info = MP3(fname).info yield build_first_request(info.sample_rate, info.channels) with open(fname, "rb") as f: for data in iter(lambda: f.read(4096), b''): # Send 4096 bytes at a time request = stt_pb2.StreamingRecognizeRequest() request.audio_content = data yield request except Exception as e: print("Got exception in generate_requests", e) raise
def requests(request): try: yield request pyaudio_lib = pyaudio.PyAudio() f = pyaudio_lib.open(input=True, channels=1, format=pyaudio.paInt16, rate=16000) for data in iter(lambda: f.read(800), b''): request = stt_pb2.StreamingRecognizeRequest() request.audio_content = data yield request except Exception as e: print("Got exception in generate_requests", e) raise
def generate_requests(): try: sample_rate_hertz, num_channels = 16000, 1 pyaudio_lib = pyaudio.PyAudio() f = pyaudio_lib.open(input=True, channels=num_channels, format=pyaudio.paInt16, rate=sample_rate_hertz) yield build_first_request(sample_rate_hertz, num_channels) for data in iter(lambda: f.read(800), b''): # Send 50ms at a time request = stt_pb2.StreamingRecognizeRequest() request.audio_content = data yield request except Exception as e: print("Got exception in generate_requests", e) raise
def __init__(self, recognize): self._recognize = recognize r = stt_pb2.StreamingRecognizeRequest() r.streaming_config.config.encoding = stt_pb2.AudioEncoding.LINEAR16 r.streaming_config.config.sample_rate_hertz = 16000 r.streaming_config.config.num_channels = 1 r.streaming_config.config.enable_denormalization = True r.streaming_config.config.enable_automatic_punctuation = True r.streaming_config.config.vad_config.silence_duration_threshold = 1.20 r.streaming_config.single_utterance = True r.streaming_config.config.speech_contexts.append( stt_pb2.SpeechContext(phrases=[ stt_pb2.SpeechContextPhrase(text=text, score=10.0) for text in self._recognize.context_words ])) metadata = authorization_metadata(API_KEY, SECRET_KEY, "tinkoff.cloud.stt") stub = stt_pb2_grpc.SpeechToTextStub( grpc.secure_channel(ENDPOINT, grpc.ssl_channel_credentials())) self._responses = stub.StreamingRecognize(self.requests(r), metadata=metadata)
def generate_requests(): try: with wave.open("../../audio/sample_3.wav") as f: frame_rate_is_valid(f.getframerate()) yield build_first_request(f.getframerate(), f.getnchannels()) frame_samples = f.getframerate() // 1000 * 60 # 60ms opus_encoder = opuslib.Encoder(f.getframerate(), f.getnchannels(), opuslib.APPLICATION_AUDIO) for data in iter(lambda: f.readframes(frame_samples), b''): # Send 60ms at a time if len( data ) < frame_samples * 2: # Padding last frame to closest allowed frame size data = data.ljust( get_padded_frame_size(frame_samples, f.getframerate()) * 2, b'\0') request = stt_pb2.StreamingRecognizeRequest() request.audio_content = opus_encoder.encode( data, len(data) >> 1) yield request except Exception as e: print("Got exception in generate_requests", e) raise
def build_first_request(sample_rate_hertz, num_channels): request = stt_pb2.StreamingRecognizeRequest() request.streaming_config.config.encoding = stt_pb2.AudioEncoding.MPEG_AUDIO request.streaming_config.config.sample_rate_hertz = sample_rate_hertz request.streaming_config.config.num_channels = num_channels return request
def build_first_streaming_recognition_request(args): request = stt_pb2.StreamingRecognizeRequest() set_recognition_config(request.streaming_config.config, args) request.streaming_config.interim_results_config.enable_interim_results = args.interim_results request.streaming_config.single_utterance = args.single_utterance return request
def build_first_request(): request = stt_pb2.StreamingRecognizeRequest() request.streaming_config.config.encoding = stt_pb2.AudioEncoding.LINEAR16 request.streaming_config.config.sample_rate_hertz = 16000 # Not stored at raw ".s16" file request.streaming_config.config.num_channels = 1 # Not stored at raw ".s16" file return request