Assistindo pessoas em Haptik usando Amazon Polly – iCrowdNewswire
 
x

RSS Newsfeeds

See all RSS Newsfeeds

Global Regions

United States ( XML Feed )

Dec 7, 2017 11:40 AM ET

Assistindo pessoas em Haptik usando Amazon Polly

iCrowdNewswire - Dec 7, 2017

Esta é uma postagem convidada por Swapan Rajdev, Co-Fundador e CTO, Haptik Inc.

Dadas as vidas ocupadas que todos vivemos, nossas listas de tarefas continuam crescendo, e torna-se cada vez mais difícil acompanhar todas as coisas que precisamos para realizar diariamente. De lembrar as nossas reuniões para certificar-se de que compramos o nosso próximo bilhete de voo, lembramo-nos de beber bastante água para garantir que chegamos à academia, nossas listas nunca terminam, e sua manutenção fica cansativa.

Haptik é o primeiro assistente pessoal da Índia. Os usuários podem usar o aplicativo para planejar viagens, verificar os voos, reservar táxis e definir lembretes. E de todos os recursos diferentes, o mais importante e freqüentemente usado é o recurso Lembretes. As pessoas usam o Haptik para configurar chamadas de despertador, configurar lembretes para beber água, chamar pessoas em momentos diferentes, enviar saudações a outras pessoas para diferentes ocasiões e muito mais. Através do recurso de lembretes, os usuários receberão notificações no aplicativo, juntamente com uma chamada telefônica no momento solicitado, relacionando a mensagem de lembrete.

Nesta publicação, abordaremos como usamos o aprendizado de máquina e o texto para fala (TTS) para definir lembretes para os usuários – para chamá-los no momento dado para lembrá-los de suas tarefas. Vamos abordar como a Amazon Polly nos ajudou a fazer chamadas personalizadas aos nossos usuários e nos ajudou a dimensionar nosso recurso de lembretes para milhões de usuários.

Lembretes em Haptik

Para obter qualquer coisa feita pelo assistente pessoal, o usuário entra no aplicativo Haptik e envia uma mensagem ao bot. Toda mensagem no nosso sistema passa por um canal de mensagens no qual tentamos detectar o seguinte:

  • O domínio do usuário está falando (lembretes, viagens, nas proximidades, etc.)
  • A tarefa (intenção) que o usuário deseja fazer
  • As entidades (dados diferentes necessários para completar a tarefa do usuário)

No final deste pipeline, se o bot tiver todas as informações, ele vai adiante e completa a tarefa. Caso contrário, ele responde com perguntas relevantes para reunir todas as informações.

Além deste pipeline básico, temos muitos outros algoritmos que usam a Aprendizagem Profunda para aprender com conversas históricas para poderem completar as tarefas do usuário sem a intervenção.

Por que chamar usuários?

Para lembrar aos usuários sobre suas tarefas, enviamos-lhes uma notificação no aplicativo, juntamente com uma chamada telefônica. Embora o Haptik use técnicas de notificação comumente usadas para lembrar os usuários, acreditamos que chamar as pessoas trabalha de forma mais efetiva devido a alguns motivos:

Primeiro, na era do smartphone de hoje, todos estamos passando por uma sobrecarga de notificação de qualquer outro aplicativo, o que leva a perder algumas notificações importantes. Um telefonema de um número desconhecido ou Haptik é mais eficaz do que um alarme regular que geralmente recebe o tratamento de sono.

Em segundo lugar, podemos fornecer uma experiência de usuário muito melhor, alterando o conteúdo e a voz da chamada com base no tipo de tarefa de lembrete. Por exemplo, para as chamadas de despertar matinais que enviamos, usamos uma voz suave e calma. Ocasionalmente, adicionamos uma citação motivacional no final da chamada para garantir que o usuário acorda agradavelmente e seja carregado. Implementar esses casos de uso TTS é simples, fácil e confiável com o Amazon Polly.

Como funciona

Lembretes na Haptik é um dos domínios mais complexos, onde muitas tecnologias diferentes se juntam para garantir que possamos fazer chamadas para nossos usuários de forma oportuna e personalizada. Para configurar com êxito um lembrete para o usuário, capturamos os seguintes pontos de dados do usuário:

  • O motivo para a configuração do lembrete (despertador, lembrete de reunião, etc.)
  • A data do lembrete
  • A hora do lembrete
  • Se é um lembrete recorrente, qual deve ser a freqüência

Toda essa informação é usada para derivar metadados e é passada para um agendador cujo trabalho é chamar o usuário. O snippet de código a seguir mostra como um lembrete é criado:

 def create_reminder(user, reminder_task, date, time, repeat_pattern=None): is_valid = check_reminder_date_time_validity(date, time, repeat_pattern) if not is_valid: Return False notification_content = get_notification_content_for_reminder(user, reminder_Task) call_script = get_call_script_for_reminder (user, reminder_task) audio_url = generate_audio_using_polly (usuário, call_script) return schedule_job (user, audio_url, notification_content 

Usando Amazon Polly para TTS

Antes de agendar um lembrete, primeiro buscamos o script que queremos que a Amazon Polly sintetize. Para isso, temos uma função que busca o script de chamada com base no tipo de lembrete e no usuário.

 Def get_call_script_for_reminder(user, reminder_task): all_call_scripts = CallScriptStore.objects.values('script').filter(task_name=reminder_task.name) Call_script = random.choice(all_call_sciprts) return call_script.format(**{user_name: user.name}) 

Exemplo de saída:

Suba e brilha, Swapan! É um lindo dia - Hora de acordar!

Depois de termos o script, chamamos o Amazon Polly para converter o texto em voz e carregar o arquivo de áudio para o Amazon S3, que podemos usar mais tarde para jogar durante a chamada. Use o seguinte código para criar o arquivo de áudio (mp3) e faça o upload para o Amazon S3:

 from boto3 import Session Def generatea_audio_using_polly(user, call_Script): session = Session() polly = session.client("polly", region_name=POLLY_REGION) response = polly.synthesize_speech(Text=content, OutputFormat="mp3", VoiceId=get_polly_voice_for_task(reminder_ask)) with closing(response["AudioStream"]) as stream: with open(mp3_file_path, "wb") as file: file.write(stream.read()) # Upload to S3 s3 = session.client("s3", region_name=AUDIO_BUCKET_REGION) s3.upload_file( mp3_file_path, AUDIO_BUCKET_NAME, “file.mp3" ) url = "https://s3-{0}.amazonaws.com/{1}/{2}/{3}".format( AUDIO_BUCKET_REGION, AUDIO_BUCKET_NAME, “file.mp3”) Return url 

No momento da lembrança real, nosso sistema de agendador faz uma chamada de API para o nosso parceiro de chamada usando o número de celular e o URL do script de chamada. Uma chamada é então feita ao usuário durante o qual o script de chamada é reproduzido; Isso completa o lembrete. Recebemos muitos comentários positivos sobre o conteúdo e o comportamento da chamada. Em qualquer dia, enviamos mais de 100 mil lembretes.

Adicionando personalidade usando Amazon Polly

Usando o Amazon Polly, você pode gerar scripts de chamadas em 51 vozes diferentes em 25 idiomas. Isso ajuda você a fornecer uma ampla gama de experiências de usuários. Na função anterior ao gerar o script de chamada, chamamos uma função ` get_polly_voice_for_task` para gerar um voiceId. Você pode obter as diferentes vozes suportadas pelo Amazon Polly usando o seguinte código:

 session = Session() polly = session.client("polly", region_name=POLLY_REGION) response = polly.describe_voices() voice_ids = [item['Id'] for item in response['Voices']] 

Como a maioria de nossa audiência está na Índia, usamos “Raveena” (voz indiana feminina inglesa) freqüentemente porque essa voz ressoa com muitos de nossos usuários.

Por que Amazon Polly

Experimentamos vários serviços diferentes para o TTS, mas a Amazon Polly foi a líder por milhas. Algumas das razões pelas quais escolhemos Amazon Polly são:

Velocidade de desenvolvimento e iteração – O Amazon Polly API é simples e muito robusto. Demorou menos de um dia para implementar as chamadas da Amazon Polly API, e nós criamos nosso sistema de uma forma em que quase todas as configurações podem ser alteradas de imediato, sem a necessidade de alterações de código. Temos uma ferramenta para mudar os scripts de chamada e uma ferramenta para mudar as diferentes vozes. Isso nos permitiu experimentar e executar testes A / B com muitos scripts e vozes diferentes antes de termos ficado satisfeitos com a experiência.

Escalabilidade – Com base na arquitetura descrita anteriormente, criamos o script de chamada com antecedência e armazenamos no Amazon S3 para que, quando tivermos que fazer a chamada, o áudio já está pronto. Isso nos ajudou a dimensionar e acionar milhares de chamadas ao mesmo tempo, sem dificultar a experiência do usuário.

Confiabilidade e monitoramento – A Amazon fornece muitas ferramentas excelentes para monitorar nossos pedidos do Amazon Polly. Experimentamos cerca de 100% de confiabilidade e disponibilidade até agora. Nós nunca enfrentamos um tempo de inatividade com a Amazon Polly até agora. Para estar no lado seguro, criamos alarmes para sair sempre que tivermos mais de 5 pedidos falhados em um período de 5 minutos. Você pode configurar facilmente alarmes usando o Amazon CloudWatch, que depois sincronizamos com o PagerDuty.

mqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2017/12/05/haptik-4.gif “data-image-enhancer =” maior que 645 “/>

Latência – Amazon CloudWatch oferece algumas ótimas maneiras de monitorar diferentes métricas da Amazon Polly. Se você olhar para os seguintes gráficos, o tempo médio em que um arquivo de áudio da Amazon Polly é criado é de 17 ms para uma média de 85 caracteres por arquivo. Isso é muito rápido e nos ajuda a oferecer uma experiência de usuário muito boa em milhares de chamadas simultâneas.


Conclusão

Em uma base diária, nós, na Haptik, tentamos facilitar a vida dos nossos usuários, fornecendo uma maneira simples de fazer as coisas. No futuro, planejamos adicionar suporte para vários idiomas e a vantagem de usar o Amazon Polly é que ele já suporta 24 idiomas diferentes. Além disso, estamos sempre ajustando e tocando com nossos algoritmos de Aprendizado de Máquinas para poder entender mais dos usuários. Juntamente com isso, estamos encontrando maneiras diferentes de usar a tecnologia para ajudar a servir melhor os nossos usuários. Esperamos que você tenha achado este post útil.

Leitura adicional

Certifique-se de ler o Haptik Case Study, ” Haptik oferece suporte a 30% de aumento mensal em downloads de aplicativos usando o AWS “.

 

Sobre o autor

Esta é uma postagem de blog convidada por Swapan Rajdev, Co-Fundador e CTO, Haptik Inc. Nas suas próprias palavras, “Haptik é uma empresa especializada em chatbots, com o produto principal sendo o aplicativo de assistente pessoal Android e iOS com o mesmo nome . Além do aplicativo para consumidores, também trabalhamos com empresas para ajudar a criar soluções de chatbots para atendimento ao cliente, geração de leads, marketing e muito mais “.

Contact Information:

Swapan Rajdev

View Related News >