Com a transcrição da CCAI, é possível converter seus dados de áudio de streaming em texto transcrito em tempo real. A Assistente do agente 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 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 a CCAI: 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 da CCAI funciona usando o reconhecimento de fala por streaming do Speech-to-Text. A Speech-to-Text oferece vários modelos de reconhecimento, padrão e aprimorado. A transcrição da CCAI é compatível no nível GA apenas quando usada com o modelo de chamada telefônica aprimorada.
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 de conversão de voz em texto.
Criar um perfil de conversa
Para criar um perfil de conversa, use o
console do Assistente de agente ou chame o método create
no
recurso ConversationProfile
diretamente.
Para a transcrição da CCAI, recomendamos configurar 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
: 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 falas seguintes da conversa. 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 de modelo com a transcrição da 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 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 de fechar parcialmente o fluxo, o servidor vai enviar de volta a resposta com a transcrição final, além de possíveis sugestões do Dialogflow ou do Agent Assist.
- 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.