Buenas, estoy intentando hechar a andar el Google Cloud Speech, he intento leer 
en stream de un fichero que está siendo escrito por otro proceso, que contiene 
la grabación del audio, para enviarla al GCS, pero sin éxito.

¿Alguien me puede comentar que estoy haciendo mal?, con el ejemplo que da GCS 
para hacer lo mismo con un fichero directamente, que lo que hace es leerlo 
completo en memoria y enviarlo, no me da problemas y transcribe bien el texto.

Basandome en el código de ejemplo de GCS para streaming 

def read_in_chunks(file_object,chunk_size):
   """Lazy function (generator) to read a file piece by piece.
   while True:
     chunk = file_object.read(chunk_size)
     if not chunk:
       return
     data = [chunk]
     yield b''.join(data)

def transcribe_streaming(stream_file,language,timeout): 
"""Streams transcription of the given audio file.""" 
from google.cloud import speech 
from google.cloud.speech import enums 
from google.cloud.speech import types 
import io 
client = speech.SpeechClient() 

#audio_file = io.open(stream_file+'.sln16','rb',buffering=0) 
audio_file = io.open(stream_file+'.sln16','rb') 
# In practice, stream should be a generator yielding chunks of audio data. 
requests = (types.StreamingRecognizeRequest(audio_content=chunk) 
for chunk in read_in_chunks(audio_file,3200)) 

config = types.RecognitionConfig( 
encoding=enums.RecognitionConfig.AudioEncoding.LINEAR16, 
sample_rate_hertz=16000, 
language_code=language) 
#streaming_config = 
types.StreamingRecognitionConfig(config=config,single_utterance=True) 
streaming_config = types.StreamingRecognitionConfig(config=config) 

# streaming_recognize returns a generator. 
responses = client.streaming_recognize(streaming_config, requests) 
for response in responses: 
   # Once the transcription has settled, the first result will contain the 
   # is_final result. The other results will be for subsequent portions of 
   # the audio. 
   for result in response.results: 
      if result.is_final: 
         print('Finished: {}'.format(result.is_final)) 
         print('Stability: {}'.format(result.stability)) 
         alternatives = result.alternatives 
         ### The alternatives are ordered from most likely to least. 
         for alternative in alternatives: 
            print('Confidence: {}'.format(alternative.confidence)) 
            print(u'Transcript: {}'.format(alternative.transcript))
(null)
_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es

Responder a