Captura de voz - VoiceID
Este componente precisa de uma versão mínima do iOS13
Introdução
O Componente tratado no documento atual recebe o nome de Componente de voz. Ele se encarrega de realizar a captura de voz do usuário e a posterior extração dos templates correspondentes. Suas principais funcionalidades são as seguintes:
Entrada de um certo número de frases para depois ler cada uma em uma etapa.
Gerenciamento interno do microfone.
Gerenciamento de permissões.
Análise dos silêncios.
Análise do progresso.
Assistente nos processos de captura.
Geração dos templates com as características da voz e pontuações.
Na seção de Lançamento simplificado são detalhadas as etapas necessárias para a Integração básica do SDK. Nesta seção, são adicionadas as informações para o lançamento deste componente.
Dependências
Para evitar conflitos e problemas de compatibilidade, caso queira instalar o componente em um projeto que contenha uma versão antiga das bibliotecas da Facephi (Widgets), eles deverão ser totalmente removidos antes da instalação dos componentes da SDKMobile.
CocoaPods
pod 'FPHISDKMainComponent', '~> $VERSION'Para instalar o componente atual, deverá ser incluída a seguinte entrada no Podfile da aplicação:
Uma vez instaladas as dependências, será possível usar as diferentes funcionalidades do componente.
SPM
As dependências obrigatórias que deverão ter sido instaladas previamente são:
Para instalar o componente de Selphid, deverá ser incluído nos módulos do projeto:
Permissões
No aplicativo cliente onde os componentes serão integrados, é necessário incorporar o seguinte elemento no arquivo Info.plist:
Controladores disponíveis
Controlador
Descrição
VoiceController
Controlador principal de captação de voz
Lançamento simplificado
Configuração básica
Para lançar o componente atual, será necessário criar um objeto VoiceConfigurationData que será a configuração do controlador do componente.
A configuração básica necessária para isso é a seguinte:
É possível editar a lista de frases que será exibida ao usuário.
Recebimento do resultado
Os controllers devolverão a informação necessária no formato SdkResult.
Recebimento de erros
Na parte de erro, teremos o enum comum ErrorType:
VOC_CANCEL_BY_USER: O usuário cancelou o processo
VOC_CANCEL_LAUNCH: Foi feita uma cancelamento geral do SDK
VOC_COMPONENT_LICENSE_ERROR: A licença do componente não está correta
VOC_EMPTY_LICENSE: A String de licença está vazia
VOC_INITIALIZATION_ERROR: Erro de Inicialização
VOC_INTERNAL_LICENSE_ERROR: Erro interno relacionado à licença
VOC_NO_DATA_ERROR: Os dados de entrada são nulos
VOC_OPERATION_NOT_CREATED: Não há nenhuma operação em andamento
VOC_PERMISSION_DENIED: O usuário recusou as permissões
VOC_TIMEOUT: Timeout no processo
Recebimento de execução bem-sucedida - data
Na parte de data, teremos a classe VoiceResult.
O campo data é variável e dependerá de qual componente retornou o resultado. No caso deste componente, os campos retornados são os seguintes:
audios
Contém uma lista de áudios capturados no formato ByteArray.
tokenizedAudios
Contém a lista de áudios capturados no formato tokenizado da Facephi.
Informações avançadas
Esta seção amplia as informações do componente.
Configuração avançada do componente
Para configurar o componente atual, uma vez inicializado, deverá ser criado um objeto
VoiceConfigurationData e passá-lo como parâmetro para o SDKController durante a inicialização do componente.
Na seção seguinte, serão mostrados os campos que fazem parte desta classe e para que cada um deles é usado.
phrases
Indica a(s) frase(s) necessárias para capturar.
vibrationEnabled
Indica a ativação da vibração quando o widget terminar com sucesso.
showTutorial
Indica se o componente ativa a tela de tutorial. Nessa visualização é explicado de forma intuitiva como a captura é realizada.
extractionTimeout
Define o tempo máximo que a captura pode durar.
showDiagnostic
Exibir telas de diagnóstico ao final do processo
enableQualityCheck
Ativa ou desativa a verificação de qualidade do áudio. Recomenda-se mantê-la sempre ativa.
showPreviousTip
Mostra uma tela anterior ao lançamento da captura com informações sobre o processo a ser realizado e um botão para o lançamento.
Personalização do componente
Além das alterações que podem ser feitas no nível do SDK (as quais são explicadas no documento de Personalização do SDK), este componente em específico permite a modificação de sua interface.
Textos
Os textos podem ser personalizados sobrescrevendo o valor das seguintes chaves em um Localizable.strings. As chaves que contêm o sufixo _alt são os literais utilizados nas etiquetas de acessibilidade necessárias para a funcionalidade de VoiceOver.
Nome
Valor
voice_component_success_records_message
%d/%d gravações bem-sucedidas
voice_component_read_message
Diga em voz alta:
voice_component_speech_message
Fale claramente e perto do microfone
voice_component_speech_noisy_message
Há ruído demais. Tente estar em um ambiente silencioso.
voice_component_success_message
Gravação registrada
voice_component_phrase_generic_error_message
Por favor, repita a frase.
voice_component_phrase_long_silence_message
Fale por 2 segundos ou mais.
voice_component_phrase_long_reverberation_message
Eco demais. Tente em outro ambiente.
voice_component_tip_title
Reconhecimento de voz
voice_component_tip_message
Fale claramente e em voz alta.\n\nCertifique-se de estar em um ambiente silencioso
voice_component_tip_button
COMEÇAR
voice_component_exit_alert_accept
selphid_selector_exit_alert_accept
voice_component_exit_alert_cancel
Cancelar
voice_component_exit_alert_question
Tem certeza de que deseja finalizar o processo?
voice_component_multiple_speakers_error_message
Foram detectadas vozes de fundo. Certifique-se de estar em um ambiente silencioso
voice_component_short_recorded_speech_message
A gravação foi muito curta.
voice_component_quality_check_error_message
A qualidade do áudio é insuficiente.
voice_component_close_button_alt
Fechar
voice_component_logo_alt
Logo
voice_component_tip_anim_alt
voice_component_timeout_title
Tempo esgotado
voice_component_timeout_desc
Não conseguimos identificá-lo(a). Tente novamente.
Dessa forma, se quiser modificar, por exemplo, o texto “COMEÇAR” da chave voice_component_tip_button_message para o idioma é, deverá ir ao arquivo Localizable.strings da pasta es.lproj se existir (caso contrário, deverá ser criado) e então adicionar:
Se uma mensagem não for especificada no arquivo de idioma, ela será preenchida com a mensagem padrão.
Animações
As animações a serem usadas são inicializadas de forma semelhante na variável animations, com um dicionário, tendo como valor uma string com o nome da animação que estiver no xcassets que se deseja usar.
Atualizado