A Transcrição CCAI permite converter dados de áudio de streaming em texto transcrito em tempo real. O Assistente do agente faz sugestões com base no texto. Portanto, os dados de áudio precisam ser convertidos antes de serem usados. Você também pode usar áudio de streaming transcrito com o CCAI 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 CCAI: usando o recurso SIPREC ou fazendo chamadas gRPC com dados de áudio como payload. Esta página descreve o processo de transcrição de dados de áudio de streaming usando chamadas gRPC.
A Transcrição CCAI funciona usando o reconhecimento de fala de streaming do Speech-to-Text. O Speech-to-Text oferece vários modelos de reconhecimento, padrão e aprimorado. A transcrição CCAI é compatível somente no nível do GA quando usada com o modelo de ligação telefônica aprimorada.
Pré-requisitos
- Crie um projeto no Google Cloud.
- Ative a API Dialogflow.
- Entre em contato com seu representante do Google para garantir que sua conta tenha acesso a modelos aprimorados de conversão de discurso em texto.
Criar um perfil de conversa
Para criar um perfil de conversa, use o
console do Google Assistente ou chame o método create
no
recurso ConversationProfile
diretamente.
Para a transcrição do CCAI, recomendamos configurar ConversationProfile.stt_config
como o InputAudioConfig
padrão ao enviar dados de áudio em uma conversa.
Receber transcrições no momento da conversa
Para receber transcrições durante a conversa, crie participantes para a conversa 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 de conversão de áudio em texto que você quer usar para transcrever seu áudio. Defina esse campo comotelephony
.singleUtterance
precisa ser definido comofalse
para a melhor qualidade de transcrição. Não espereEND_OF_SINGLE_UTTERANCE
sesingleUtterance
forfalse
, mas você pode depender deisFinal==true
dentro deStreamingAnalyzeContentResponse.recognition_result
para fechar parcialmente o stream.- Parâmetros adicionais opcionais: os parâmetros a seguir são
opcionais. Para acessar esses parâmetros, entre em contato com seu representante do
Google.
languageCode
:language_code
do áudio. O valor padrão éen-US
.alternativeLanguageCodes
: outros idiomas que podem ser detectados no áudio. O Assistente do agente usa o campolanguage_code
para detectar automaticamente o idioma no início do áudio e o mantém em todas as próximas rodadas de conversa. O campoalternativeLanguageCodes
permite especificar mais opções para o Assistente de agentes escolher.phraseSets
: o nome do recursophraseSet
adaptação do modelo de voz para texto. Para usar a adaptação de modelo com a Transcrição CCAI, primeiro crie ophraseSet
usando a API Speech-to-Text e especifique o nome do recurso aqui.
Depois de enviar a segunda solicitação com o payload de áudio, você vai começar a receber algumas
StreamingAnalyzeContentResponses
do stream.- É possível fechar parcialmente o fluxo (ou parar de enviar em alguns idiomas, como
Python) quando
is_final
estiver definido comotrue
emStreamingAnalyzeContentResponse.recognition_result
. - Depois de fechar parcialmente o fluxo, o servidor vai enviar a resposta com a transcrição final, além de possíveis sugestões do Dialogflow ou do Assistente do Google.
- É possível fechar parcialmente o fluxo (ou parar de enviar em alguns idiomas, como
Python) quando
Você pode encontrar a transcrição final nos seguintes locais:
StreamingAnalyzeContentResponse.message.content
- Se você ativar as notificações do Pub/Sub, também poderá conferir a transcrição no Pub/Sub.
Inicie uma nova transmissão depois que a anterior for fechada.
- 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 a melhor qualidade de transcrição.
- Reenvio de áudio: os dados de áudio gerados após o último
Este diagrama ilustra como o stream funciona.
Exemplo de código de solicitação de reconhecimento de streaming
O exemplo de código abaixo ilustra como enviar uma solicitação de transcrição de streaming:
Python
Para autenticar no Assistente do agente, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.