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:
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! 👋
Leia também
API Mágica: notificações Web Push no navegador com PHP
Web Push com a API Mágica em PHP puro: o navegador se inscreve, o seu site envia a notificação e a API conta o clique. Sem Composer e sem biblioteca.
IndexNow: avisando o Bing e o Yandex mais rápido
Como criar a chave do IndexNow e avisar Bing e Yandex das suas páginas novas com Node.js e PHP: as requisições, os erros reais e as armadilhas.
llms.txt: por que importa e como gerar em PHP
Por que o llms.txt importa para quem quer ser citado pela IA, e como gerar o seu em PHP puro lendo o sitemap.xml que voce ja tem.