Com a transcrição de voz, é possível converter seus dados de áudio de streaming em texto transcrito em tempo real. A Assistente de IA faz sugestões com base em texto. Portanto, os dados de áudio precisam ser convertidos antes de serem usados. Também é possível usar áudio de streaming transcrito com o Conversational Insights para coletar dados em tempo real sobre conversas de agentes (por exemplo, Modelagem de tópicos).
Há duas maneiras de transcrever áudio de streaming para uso com o Agent Assist: usando o recurso SIPREC ou fazendo chamadas gRPC com dados de áudio como payload. Nesta página, descrevemos o processo de transcrição de dados de áudio streaming usando chamadas gRPC.
A transcrição de voz funciona usando o reconhecimento de fala de streaming do Speech-to-Text. A Speech-to-Text oferece vários modelos de reconhecimento, padrão e aprimorado. A transcrição de voz é compatível no nível GA apenas quando usada com o modelo telefonia.
Pré-requisitos
- Crie um projeto em Google Cloud.
- Ative a API Dialogflow.
- Entre em contato com seu representante do Google para garantir que sua conta tenha acesso aos modelos avançados do Speech-to-Text.
Criar um perfil de conversa
Para criar um perfil de conversa, use o console do Assistente de agente ou chame o método create
diretamente no recurso ConversationProfile
.
Para transcrição de voz, recomendamos que você configure
ConversationProfile.stt_config
como o InputAudioConfig
padrão ao enviar
dados de áudio em uma conversa.
Receber transcrições durante a conversa
Para receber transcrições durante a conversa, crie participantes e envie dados de áudio para cada um deles.
Criar participantes
Há três tipos de participante.
Consulte a documentação de referência para mais detalhes sobre os papéis. Chame o método create
no
participant
e especifique o role
. Somente um participante END_USER
ou HUMAN_AGENT
pode chamar StreamingAnalyzeContent
, que é necessário para receber uma transcrição.
Enviar dados de áudio e receber uma transcrição
É possível usar
StreamingAnalyzeContent
para enviar o áudio de um participante ao Google e receber a transcrição, com os
seguintes parâmetros:
A primeira solicitação no stream precisa ser
InputAudioConfig
. Os campos configurados aqui substituem as configurações correspondentes emConversationProfile.stt_config
. Não envie nenhuma entrada de áudio até a segunda solicitação.audioEncoding
precisa ser definido comoAUDIO_ENCODING_LINEAR_16
ouAUDIO_ENCODING_MULAW
.model
: é o modelo do Speech-to-Text que você quer usar para transcrever o áudio. Defina esse campo comotelephony
. A variante não afeta a qualidade da transcrição. Portanto, você pode deixar Variante do modelo de fala sem especificação ou escolher Usar a melhor opção disponível.singleUtterance
precisa ser definido comofalse
para garantir a melhor qualidade de transcrição. Não espereEND_OF_SINGLE_UTTERANCE
sesingleUtterance
forfalse
, mas você pode depender deisFinal==true
emStreamingAnalyzeContentResponse.recognition_result
para fechar parcialmente o fluxo.- Parâmetros adicionais opcionais: os parâmetros a seguir são opcionais. Para ter acesso a esses parâmetros, entre em contato com seu representante do Google.
languageCode
:language_code
do áudio. O valor padrão éen-US
.alternativeLanguageCodes
: este é um recurso de prévia. Outros idiomas que podem ser detectados no áudio. A Assistente de IA usa o campolanguage_code
para detectar automaticamente o idioma no início do áudio e o define como padrão em todas as conversas seguintes. O campoalternativeLanguageCodes
permite especificar mais opções para o Agent Assist escolher.phraseSets
: o nome do recursophraseSet
da adaptação do modelo de conversão de voz em texto. Para usar a adaptação do modelo com transcrição de voz, primeiro crie ophraseSet
usando a API Speech-to-Text e especifique o nome do recurso aqui.
Depois de enviar a segunda solicitação com a carga útil de áudio, você vai começar a receber alguns
StreamingAnalyzeContentResponses
do stream.- Você pode fechar parcialmente o stream (ou parar de enviar em algumas linguagens, como Python) quando vir
is_final
definido comotrue
emStreamingAnalyzeContentResponse.recognition_result
. - Depois que você fechar parcialmente o stream, o servidor vai enviar de volta a resposta com a transcrição final, além de possíveis sugestões do Dialogflow ou do Assistente do agente.
- Você pode fechar parcialmente o stream (ou parar de enviar em algumas linguagens, como Python) quando vir
Você encontra a transcrição final nos seguintes locais:
StreamingAnalyzeContentResponse.message.content
.- Se você ativar as notificações do Pub/Sub, também poderá ver a transcrição no Pub/Sub.
Inicie um novo stream depois que o anterior for fechado.
- Reenvio de áudio: os dados de áudio gerados após o último
speech_end_offset
da resposta comis_final=true
para o novo horário de início do stream precisam ser reenviados paraStreamingAnalyzeContent
para garantir a melhor qualidade de transcrição.
- Reenvio de áudio: os dados de áudio gerados após o último
Confira no diagrama como o stream funciona.
Exemplo de código de solicitação de reconhecimento de streaming
O exemplo de código a seguir ilustra como enviar uma solicitação de transcrição por streaming:
Python
Para autenticar no Agent Assist, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.