Google Speech-To-Text é um entre os diversos serviços oferecidos pela Google Cloud e realiza a conversão de áudios para texto utilizando modelos de redes neurais e machine learning. A medida que o Speech-to-text é utilizado, evolui com velocidade e hoje, pouco tempo depois de passar do modelo BETA em abril de 2017, já possui suporte para o reconhecimento de mais de 120 idiomas.

PRINCIPAIS RECURSOS

Dentre os principais recursos destacam-se a capacidade de transcrever áudio para texto em tempo real, identificação automática do idioma falado, seleção de modelos aprimorados para transcrição de cada caso de uso como comandos realizados via smartphone ou smart TV, vídeos, ligações telefônicas, dentre outros.

O recurso de transcrição de vídeo por exemplo, é ideal para indexar ou legendar vídeos de diversos interlocutores. Este modelo utiliza tecnologias de Machine Learning e ainda é capaz de identificar os locutores da conversa. Também capaz de reconhecer nomes próprios como nomes e lugares e aplica a formatação correta para o idioma selecionado, como em datas e números de telefone.

Outros recursos interessantes como robustez a ruído, o que permite lidar com áudios barulhentos e poluídos pelo som de ambientes, pontuação automática que permite a API pontuar as transcrições com vírgulas, pontos de interrogação e pontos finais, além do filtro de conteúdo impróprio.

CONSUMO DA API

A API pode ser consumida através do protocolo REST, realizando uma chamada no formato Json ou utilizando o protocolo gRPC, este por sua vez menos conhecido, porém se trata de protocolo desenvolvido pela Google principalmente para comunicação entre os microsserviços em seus datacenters.

A utilização pode ocorrer de forma síncrona para áudios de até 1 minuto, utilizando o protocolo REST ou gRPC. De forma assíncrona para áudios de até 480 minutos também nos protocolos REST e gRPC. Já para o para a transcrição de streaming deve ser utilizado o protocolo gRPC.

Este é um exemplo de reconhecimento de fala em streaming em um arquivo de áudio local utilizando a linguagem Python.

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

    with io.open(stream_file, 'rb') as audio_file:
        content = audio_file.read()

    # In practice, stream should be a generator yielding chunks of audio data.
    stream = [content]
    requests = (types.StreamingRecognizeRequest(audio_content=chunk)
                for chunk in stream)

    config = types.RecognitionConfig(
        encoding=enums.RecognitionConfig.AudioEncoding.LINEAR16,
        sample_rate_hertz=16000,
        language_code='en-US')
    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:
            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))

Quanto ao processamento, normalmente o Speech-to-Text leva metade do tempo real do áudio, ou seja, para áudios de 30 segundos, é levado em média 15 segundos para realizar a transcrição e retorno do texto.

A sua utilização é muito simples e em menos de 5 minutos é possível elaborar o tutorial básico para realizar a transcrição de um áudio em texto, conforme o tutorial disponibilizado pela Google:

Esta é uma API com recursos bastante poderosos e que já está presente em dispositivos que utilizamos em nosso dia a dia por mais que, as vezes isso passe despercebido, nos celulares que possuem sistema operacional Android por exemplo, este recurso é utilizado para realizar pesquisas por áudio.

Referências
https://cloud.google.com/speech-to-text?hl=pt-br

Autor: Jônas Guerra