
O que temos por um determinado período de tempo no mundo da
GA ? Fato conhecido: cada uma das grandes empresas de TI possui sua própria ferramenta para trabalhar com residências inteligentes. E cada fornecedor fornece sua própria API para os interessados em integração. E, no estágio inicial, paga até aos desenvolvedores novas habilidades (ações, habilidades etc. - de acordo com a terminologia do fornecedor).
O serviço mais conveniente e prático até o momento, de acordo com nossos especialistas, é o Amazon Alexa. Ela tem mais oportunidades de formação detalhada de habilidades do que o Assistente do Google, Yandex "Alice", Mail.Ru "Maroussia", Tinkoff "Oleg" e outros. Para o Alexa, um dispositivo é uma entidade virtual paramétrica, como resultado de quais habilidades podem ser personalizadas para cada dispositivo individualmente. Por exemplo, além da temperatura da água, você pode especificar consumíveis que o assistente oferecerá para comprar na Amazon. Infelizmente, atualmente, o Alexa não suporta o idioma russo e não funciona no território da Federação Russa; portanto, este GA é inútil para um usuário russo. No Google e Yandex, o assistente é mais "natural" - recebe e responde a comandos na linguagem "humana", pode dialogar com o usuário, o que torna esse GA mais agradável de usar. A única desvantagem séria do Google foi que suas ações não suportavam o idioma russo. No entanto, a partir de 24 de julho de 2019, o Google Actions trabalha em "telefones" em russo, então os colegas eliminam essa desvantagem.
Está tudo bem. E se queremos integrar um dispositivo com vários GA?
É possível Usando o dispositivo
Um dispositivo é uma entidade com seu comportamento no sistema. Este é um princípio comum para todos os fornecedores. E aqui vale a pena parar, aqui começa toda a diversão. As diferenças estão nas abordagens. Por exemplo, o Google e o Yandex estão tentando padronizar o gerenciamento de tecnologia. Ou seja, agora é necessário escrever um código não para cada dispositivo individual, mas um programa para toda a série é suficiente. E mesmo que o firmware mude, você precisará alterar o código uma vez, o que é muito conveniente. Nossa empresa já possui integração com Google, Yandex, Amazon. A técnica
ouve Alice , Alex e o assistente do Google. Anteriormente, mostramos
isso nos assistentes de voz .
De onde vieram os assistentes de voz?
Um dos sistemas de reconhecimento de fala mais avançados do mundo pertence ao Google, sua história começou em 2002. A empresa lançou a Pesquisa por voz, com base na qual o Google Assistant foi desenvolvido. Em 2016, ele foi apresentado na apresentação do Google I / O. A Página inicial do Google é uma das 'superfícies' do Google Assistant. Agora, a precisão do reconhecimento de fala do AG é estimada em 95% e quase inferior às pessoas.
O assistente de voz do Alexa foi introduzido pela Amazon em 2014. A coluna inteligente Amazon Echo, que pode controlar um grande número de dispositivos em uma casa inteligente, também foi apresentada lá.
Yandex SpeechKit - sistema de reconhecimento de voz Yandex. É usado em mais de 400 aplicativos. A empresa também incorpora seu GA - Alice - em navegadores e dispositivos eletrônicos. A empresa russa introduziu o seu GA em 2017 e, já no outono de 2018, a Yandex lançou sua coluna inteligente Yandex.Station.
Nossos especialistas dizem que, no centésimo quinquagésimo sexto ano ...
Estamos brincando, até agora apenas em 2020. Um pouco sobre estatísticas:
- Em 2017, aproximadamente 33 milhões de dispositivos controlados por voz foram registrados em todo o mundo;
- Os especialistas ocidentais consideraram a pesquisa por voz uma das três principais tendências de SEO em 2017 ;
- Para 2018, o Google Assistant funciona em 400 milhões de dispositivos em todo o mundo. E esse número está crescendo apenas;
- Segundo o Global Web Index , 25% das pessoas de 16 a 24 anos usam a pesquisa por voz em dispositivos móveis;
- De acordo com as previsões da Comscore , até 2020, 50% dos pedidos serão feitos por voz;
- De acordo com uma pesquisa de 2018 da WalkerSands , cada quinto usuário de um alto-falante inteligente da Amazon comprou com ele e um terceiro planejava fazê-lo no próximo ano;
- De acordo com um estudo da PWC , 71% dos usuários que pesquisam na web preferem digitar vozes em vez de manualmente.
Como você pode entender, a tendência para usar o GA está aumentando, o que sugere que é hora de contratar um fornecedor e lançar seu próprio assistente. Para nós, a chave é a capacidade de controlar dispositivos inteligentes, que distinguirão o SkyFriend de outros assistentes.
E vamos integrar!
MAS também nossa tarefa é trabalhar com a abordagem de fornecedor existente e adaptá-la ainda mais ao nosso protocolo de controle de tecnologia específico. Seguimos o caminho da padronização, aplicação prática, percebendo o dispositivo como um conjunto de habilidades: cada chaleira pode ferver água (habilidade), também pode aquecê-la até a temperatura desejada (habilidade), manter essa temperatura por um tempo determinado, etc. Por exemplo, O comando "On / Off" é padrão para qualquer dispositivo. A tarefa é transferir esse comando do serviço para o nosso protocolo. Qual é a peculiaridade do nosso protocolo? Ele conecta assistentes de voz diferentes (agora três, no futuro - todos grandes) e permite que todos trabalhem com dispositivos, inclusive ao mesmo tempo. A comunicação é uma para muitos. A única questão é como exatamente adaptaremos nosso protocolo a todas as abordagens?
Vamos ver Projetos separados para cada GA são:
- Maior número de funcionários
- Muito código e legado no futuro;
- Incapacidade de escalar.
Quando novos assistentes aparecerem no mercado, será necessário aumentar proporcionalmente a equipe e o volume de trabalho. É lógico que recusamos essa opção. No entanto, apesar das diferentes abordagens para cada assistente de voz, eles podem encontrar algo em comum - o que eles basicamente trabalham é habilidade, característica, habilidade. Os nomes são diferentes, mas a essência é a mesma. Portanto, a tarefa é desenvolver sua "habilidade", que será percebida pelos assistentes. No futuro, você precisará adicionar apenas novos fornecedores, o que resolve o problema de dimensionamento. Também teremos em mente que uma quantidade significativa de nossos equipamentos utiliza veículos BLE, que ditam os recursos arquitetônicos.
Desenvolvemos dois microsserviços que funcionam em pares.

O primeiro é a camada de comando. Sua tarefa: realizar a conversão (mapeamento) entre a API do fornecedor e nosso protocolo. Funciona assim: uma solicitação específica para um assistente é mapeada para nossa habilidade - mapeamento para um protocolo de dispositivo. Com essa abordagem, é fácil adicionar novas habilidades: o mapeamento é realizado para o protocolo R4S final - o código é transferido para o segundo serviço. O último item pode ser excluído ao transmitir um comando por Wi-Fi.
A segunda camada de serviço ou transporte é usada para:
- Estabeleça uma sessão com um gateway de cliente;
- Elevar e manter uma conexão Bluetooth;
- Recepção / transmissão de comandos desde o primeiro serviço.
Este serviço faz parte de uma entidade de nível superior: dispositivo BT mais intermediário de gateway, trabalhando com o princípio: receber comandos via Internet - enviar via BT. As conexões sem fio podem não ser confiáveis. Porque O canal de rádio pode ser limitado por parâmetros ambientais - paredes de concreto espessas, etc. ... Como resultado, os dispositivos podem "cair" de maneira elementar, portanto, manter uma conexão estável torna-se uma tarefa importante para a camada de transporte.

A política de conexão pode ser diferente:
1. Suporte contínuo à comunicação.
Prós : atraso mínimo na execução dos comandos do GA.
Contras : caro para o tráfego e o consumo de energia; existe um limite no número de dispositivos conectados simultaneamente (nesta geração, Bluetooth 4.0 / 4.2 - seis, no Bluetooth 5.0 até vinte). Também exigirá recursos adicionais do servidor.
2. Conexão sob demanda.
Prós : conectar quase não requer tráfego e cobrança.
Contras : não é garantido um alto atraso na execução dos comandos e a própria execução (a conexão pode "cair" ou não ter êxito). Com essa abordagem, não nos ajustamos enquanto aguardamos a resposta do GA. A sessão terminou e terminou.
A questão também permanece - o comando foi recebido e elaborado, MAS o que fazer com a conexão: desconectar ou continuar. Observe que exatamente da mesma maneira que o Apple HomeKit funciona ao trabalhar com dispositivos de terminal BLE (via Apple TV ou iPad como gateway). Parece assim: na primeira vez em que você tenta enviar um comando, o processo leva muito tempo (ou melhor, é perceptível para o usuário), mas os comandos subsequentes são executados quase instantaneamente. Após a conclusão do trabalho do usuário com o dispositivo, o sistema operacional "configura" a sessão após um tempo razoável e, em seguida, o processo é repetido como novo.
No entanto, isso não é tudo.
Dificuldade 1 . Roteamento de gateway.

Se houver vários gateways na sala, surge a pergunta - a quem conectar e qual gateway a que dispositivo está conectado. Agora tudo funciona de acordo com o princípio - quem tiver sucesso está conectado. A implementação nem sempre é bem-sucedida, pois o gateway mais próximo (e, portanto, capaz de se conectar com mais confiabilidade) pode estar ocupado no intervalo de tempo usado. Então aquele que é livre e capaz está conectado. Isso acontece sem considerar a qualidade da comunicação. Portanto, é importante construir uma hierarquia e um esquema de trabalho para que o usuário fique o mais confortável possível.
Dificuldade 2 . Muitos usuários.
Essa é uma situação em que vários usuários podem usar um gateway ou dispositivo ao mesmo tempo. Obviamente, com um alto nível de segurança. Por exemplo, de diferentes GAs ou de GAs e telefones de usuários. Um enxame de perguntas: qual dispositivo ativar primeiro, se os comandos do GA se contradizem, qual comando é uma prioridade e deve ser executado anteriormente etc. Parcialmente, nosso problema é resolvido pelo serviço Redis - um banco de dados no qual as sessões do usuário, status do dispositivo e transceptor são armazenados comandos e servindo barramento de dados entre o primeiro e o segundo serviços. Mas é aí que a solução para o problema para.
O que fizemos? Nós criamos o SkyFriend. Este é o nosso próprio desenvolvimento, um assistente de voz para gerenciamento de tecnologia, que também suportará o idioma russo. Uma característica importante do nosso GA é que ele é aprimorado para interação direta com a tecnologia Smart Ready for Sky sem instrumentos adicionais. O dispositivo é dois em um - o assistente é combinado com o gateway, que receberá informações através dos comandos que o usuário envia do smartphone ou diretamente por voz. Além disso, o SkyFriend possui recursos adicionais que lhe permitirão competir com aqueles que já existem. Ele pode ativar lembretes mediante solicitação, determinar a localização geográfica do usuário, pesquisar informações na Wikipedia, recomendar filmes, fazer brindes, ler notícias, responder perguntas, informar a hora e o tempo em qualquer cidade do mundo, jogar Mistérios e Cidades com o usuário fazendo piadas. A compra de passagens e o pedido de um táxi ainda estão em fase de teste alfa. E isso é apenas parte da funcionalidade.
Mais recentemente, o Google anunciou o trabalho de sua coluna em uma arquitetura semelhante - o script de execução é carregado diretamente na coluna Página inicial do Google. Ganhar do lado do usuário é reduzir o tempo necessário para executar comandos. Você não precisa enviá-lo para o servidor do fabricante do equipamento; ele voa diretamente para a coluna do servidor do Google pelo mesmo canal de comunicação e é executado lá.
No entanto, o Google ainda não suporta outros transportes - Bluetooth, ZigBe, Z-Wave, RF etc. diretamente na coluna, e o SkyFriend suporta Bluetooth 5.0.
O que mais nos resta? Trabalhe com recursos do sistema - adicione memória, potência do processador, etc. E estamos prontos para oferecer aos usuários uma nova qualidade de GA.
O que podemos dizer em conclusão?
O GA é uma tendência, é conveniente, é prático. O tópico é novo, abrangente, possui muitas perguntas que ainda são difíceis de resolver. Especialmente sozinho. Portanto, convidamos você para uma discussão.
O que acontecerá depois? E depois haverá nosso novo artigo sobre a arquitetura SkyFriend. Vamos contar e mostrar tudo. Mas então.
As sugestões e críticas do PS podem ser deixadas nos comentários.