Pular para o conteúdo
PHP

PHP — Transcrevendo áudios via Speech-to-Text

Atualizado em
Capa do artigo: PHP — Transcrevendo áudios via Speech-to-Text

Olá Gente

A Google tem tantos serviços legais! Um deles é o “Speech-to-text”, que basicamente transcreve um arquivo de áudio em texto.

Este é um serviço PAGO (Podes usar alguns minutos gratuitos), então a primeira coisa a fazer é criar uma “chave” de acesso, para isto acesse o link abaixo:

Google Cloud PlatformGoogle Cloud Platform lets you build, deploy, and scale applications, websites, and services on the same infrastructure as Google.console.developers.google.com

Este é o painel do desenvolvedor da google, nele, crie um projeto:

Depois de criar o projeto, ele será aberto, clique em “Ativar APIs e Serviços”:

Procure por “Speech-to-text” e clique na API:

Na janela seguinte, será exibido detalhes desta API e os preços dela.

Clique em “ATIVAR”:

Caso seja exibido um alerta relativo a “Conta de Faturamento” será necessário criar uma conta de faturamento e atrelar um cartão de crédito.

Neste momento a API esta ativada em sua conta/projeto, bastando gerarmos uma chave de acesso.

Clique em “Credenciais”:

Clique em “Credenciais em APIs e serviços”:

Clique em “Criar Credenciais” e após em “Chave de API”:

Copie a Chave gerada:

Agora vamos ao PHP!

O script é bem simples:

<?
function SpeechToText($ArqAudio, $Key)
{

    $ObjData    = array(
        "config" => array(
            "encoding" => "OGG_OPUS",
            "sampleRateHertz" => 16000,
            "maxAlternatives" => 1,
            "language_code" => "pt-BR"
        ),
       "audio" => array(
            "content" => base64_encode(file_get_contents($ArqAudio))
        )
    );

    $ObjData    = json_encode($ObjData);                                                              
    
    $ch         = curl_init("https://speech.googleapis.com/v1/speech:recognize?key=" . $Key);                                                                      
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
    curl_setopt($ch, CURLOPT_POSTFIELDS, $ObjData);                                                                  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);       
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);                                                            
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
       'Content-Type: application/json'
       )                                                                       
    );                                                                                                                   
    
    $result     = curl_exec($ch);
    $result     = json_decode($result, true);
    echo curl_errno($ch);
    curl_close($ch);

    var_dump($result);
    
    $RetFinal   = "";
    
    if( isset($result["results"][0]["alternatives"][0]["transcript"]) )
    {
    
        $RetFinal     = utf8_decode($result["results"][0]["alternatives"][0]["transcript"]);
    
    
    }

    return $RetFinal;

}
?>

Exemplo de Uso:

SpeechToText(“Teste.ogg”, “f837f6gy8yg4yu”);

Bastando inserir o caminho do arquivo de áudio (Arquivo no formato OGG) e sua chave.

Caso você precise modificar os parâmetros de conversão (Exemplo: Para enviar outro formato de arquivo), consulte a documentação, ela é bem simples:

https://cloud.google.com/speech-to-text/docs/reference/rest/v1/speech/recognize

Por hoje é isto, queridos desenvolvedores! 👩‍💼

Até logo! 👋

PHP

Leia também