# Manual do &kmyapplication;

## Introdução

O &kmyapplication; é a interface principal para a solução de reconhecimento de fala em código aberto Simon. É um cliente do Simond e oferece uma interface gráfica para gerenciar o modelo de fala e os comandos. Além disso, o Simon pode executar todos os tipos de comandos com base nos dados que recebe do seu servidor, o Simond.

Em contraste com as ofertas comerciais existentes, o Simon oferece uma abordagem única do tipo "faça-você-mesmo" para o reconhecimento de fala. Em vez de trazer modelos de fala predefinidos e pré-treinados, o Simon não vem com qualquer modelo. Em vez disso, ele oferece uma interface de usuário fácil de usar para criar modelos acústicos e linguísticos a partir do zero.

Adicionalmente, o usuário pode baixar facilmente casos de uso criados por outros usuários e compartilhar os seus.

A versão atual pode ser usada para configurar soluções de comando-e-controle especialmente adequadas para pessoas com necessidades especiais. Entretanto, devido à quantidade de treinamento necessário, não são suportados ditados contínuos e livres com as versões atuais do Simon.

Devido à sua arquitetura, a mesma versão do Simon pode ser usada com todos os idiomas e dialetos. Uma pessoa poderá até misturar os idiomas dentro de um modelo, se for necessário.

## Introdução

### Arquitetura

A arquitetura de reconhecimento principal do Simon é composta de três aplicativos.

- &kmyapplication;

  Esta é a interface gráfica principal.

  Atua como um cliente para o servidor Simond.

- Simond

  O servidor de reconhecimento.

- KSimond

  Uma interface gráfica para o Simond.

Estes três componentes formam uma solução real cliente/servidor para o reconhecimento. Isto significa que existe um servidor (o Simond) para um ou mais clientes (o &kmyapplication;; este aplicativo). O KSimond é apenas uma interface para o Simond, o que significa que ele não adiciona qualquer funcionalidade ao sistema, mas sim, oferece uma forma de interagir com o Simond de forma gráfica.

Além do Simon, do Simond e do KSimond, existem outros aplicativos mais especializados que também fazem parte desta distribuição integrada do Simon.

- Sam

  Oferece um controle mais aprofundado do seu modelo de fala e permite testar o modelo acústico.

- SSC / SSCd

  Estes dois aplicativos podem ser usados para recolher um grande conjunto de amostras de fala de diferentes pessoas com maior facilidade.

- Afaras

  Este utilitário simples permite aos usuários verificarem rapidamente grandes blocos de dados de fala, a procura de amostras erradas.

Por favor, veja os manuais individuais desses aplicativos para mais detalhes.

Arquitetura

O &kmyapplication; é usado para criar e manter uma representação da sua pronúncia e idioma. Esta representação é então enviada ao servidor Simond que, por sua vez, a compila para um modelo de fala válido.

O &kmyapplication; então irá gravar o som do microfone e transmiti-lo ao servidor que, por sua vez, irá executar o reconhecimento sobre os dados de entrada recebidos. O Simond envia o resultado do reconhecimento de volta para o cliente (o &kmyapplication;).

O &kmyapplication; irá então usar este resultado para executar comandos, tais como a abertura de programas, o seguimento de links, &etc;

O Simond identifica as suas conexões com uma combinação usuário / senha que é completamente independente do sistema operacional base e dos seus usuários. Por padrão, é configurado um usuário predefinido tanto no Simon como no Simond, para que o caso de uso típico de um servidor para cada cliente possa funcionar fora da caixa.

Cada cliente Simon liga-se ao servidor com uma combinação de usuário / senha que identifica um usuário único e um modelo de fala também único. Cada usuário mantém o seu próprio modelo, mas pode usá-lo em diferentes computadores (diferentes instâncias físicas do Simon), bastando para isto, acessar o mesmo servidor Simond. Uma instância do Simond pode obviamente servir vários usuários.

Se quiser abrir o servidor para a Internet ou usar diversos usuários em um único servidor, você precisa configurar o Simond. Por favor, veja mais detalhes no manual do Simond.

### Recursos necessários para uma configuração funcional do &kmyapplication;

Para mais informações sobre os modelos de fala, por favor, consulte a seção Reconhecimento de fala: Fundo.

Para que o Simon reconheça a fala e reaja a ela, você precisa configurar um modelo de fala.

Os modelos de fala descrevem como soa a sua voz, que palavras existem, como soam e que combinações de palavras (frases ou estruturas) existem.

Um modelo de fala consiste basicamente em duas partes:

- Modelo da língua: Descreve todas as palavras existentes e quais as frases que são corretas a nível gramatical

- Modelo acústico: Descreve como soam as palavras

Você precisa de ambos os componentes para que o Simon reconheça a sua voz.

No Simon, o modelo do idioma será criado a partir dos seus cenários ativos e o modelo acústico será criado unicamente através das suas gravações de voz (treinamento) ou com a ajuda de um modelo base.

#### Cenários

Um cenário compõe um caso de uso completo para o Simon. Para controlar o Firefox, por exemplo, o usuário simplesmente instala o cenário do Firefox.

Em outras palavras, os cenários dizem ao Simon quais palavras ou frases devem escutar e o que fazer com elas quando forem reconhecidas.

Uma vez que os cenários não contém informações sobre o som destas palavras e frases, eles poderão ser compartilhados e trocados entre diferentes usuários do Simon sem problemas. Para acomodar este repositório comunitário, foi criada uma categoria para os cenários do Simon no kde-files.org onde os cenários, que são apenas arquivos de texto simples (em XML), poderão ser trocados de forma simples.

Em muitos casos, os cenários são ajustados para funcionar melhor com um determinado modelo de base para evitar problemas com o conjunto de fonemas.

Para mais informações sobre a utilização dos cenários no Simon, veja por favor a seção de Cenários no capítulo de utilização do Simon.

#### Modelo acústico

Como mencionado acima, você precisa de um modelo acústico para ativar o Simon.

Você poderá criar o seu próprio ou ainda adaptar um modelo base.Os modelos base são modelos acústicos já gerados, muitas vezes independentes do locutor, que podem ser usados com o Simon.

A tabela a seguir mostra o que é necessário, dependendo da sua configuração do Simon:

#### Formas de um modelo acústico

| Treinamento necessário | Modelo base necessário | Infraestrutura de criação do modelo necessária
Modelo de base estático | Não | Sim | Não
Modelo de base adaptado | Sim | Sim | Sim
Modelo gerado pelo usuário | Sim | Não | Sim

##### Infraestruturas

O Simon usa aplicativos externos para criar modelos acústicos e para reconhecer a fala.

Normalmente, estas infraestruturas podem ser divididas em dois componentes distintos: O "compilador do modelo" ou a infraestrutura de "geração do modelo" usada para criar ou adaptar os modelos acústicos e o "reconhecedor" que é usado para reconhecer a fala com a ajuda destes modelos.

Nem todos os modos de operação do Simon precisarão de uma infraestrutura de compilação do modelo. Leia a próxima seção para obter detalhes sobre esse caso.

São suportadas duas infraestruturas diferentes:

- Julius / HTK

  Os modelos serão criados com o HTK. O Julius será usado para o reconhecimento.

  Para usar esta infraestrutura, certifique-se de que tem instalada uma versão atualizada destas ferramentas.

- CMU SPHINX

  Esta infraestrutura, muitas vezes simplesmente referida como a "infraestrutura do SPHINX", usa o sistema de reconhecimento PocketSphinx e a infraestrutura de geração de modelos SphinxTrain. Para mais detalhes, consulte a página Web do CMU SPHINX.

  A infraestrutura do CMU SPHINX necessita que o Simon seja compilado com o suporte opcional do SPHINX. Se não tiver compilado o Simon a partir do código-fonte, consulte mais informações na sua distribuição.

Se estiver usando modelos base, o Simon irá selecionar automaticamente a infraestrutura apropriada para você. Contudo, se quiser criar os seus próprios modelos a partir do zero (modelo gerado pelo usuário, veja abaixo) e tiver uma certa preferência, consulte a configuração do Simond para obter mais informações.

Os modelos base criados para uma infraestrutura não são compatíveis com nenhuma outra. Veja mais detalhes na matriz de compatibilidade.

##### Tipos de modelos de base

Existem três tipos de modelos de base:

- Modelo de base estático

- Modelo de base adaptado

- Modelo gerado pelo usuário

Para mais informações sobre a utilização de modelos de base no Simon, por favor consulte a seção de Modelos de Base no capítulo de Utilização do Simon.

###### Modelo de base estático

Os modelos de base estáticos simplesmente usam um modelo acústico pré-compilado sem o modificar.

Todos os dados de treino recolhidos através do Simon não serão usados para melhorar a precisão do reconhecimento.

Este tipo de modelo não necessita que a infraestrutura de criação do modelos esteja instalada.

###### Modelo de base adaptado

Ao adaptar um modelo acústico pré-compilado, você poderá melhorar a precisão, adaptando-o à sua voz.

Os dados de treino recolhidos serão compilados numa matriz de adaptação que será então aplicada ao modelo de base selecionado.

Este tipo de modelo necessita que a infraestrutura de criação do modelos esteja instalada.

###### Modelo gerado pelo usuário

Ao usar os modelos gerados pelo usuário, este é responsável por treinar o seu próprio modelo. Não será usado nenhum modelo de base.

Os dados de treino serão usados para compilar o seu próprio modelo acústico, permitindo-lhe criar um sistema que reflita diretamente a sua voz.

Este tipo de modelo necessita que a infraestrutura de criação do modelos esteja instalada.

##### Requisitos

Para construir, adaptar ou usar modelos acústicos de diferentes tipos, é preciso instalar alguns aplicativos.

##### Requisitos do modelo base

| CMU SPHINX | Julius / HTK
Modelo de base estático | PocketSphinx | Julius
Modelo de base adaptado | SphinxTrain, PocketSphinx | HTK, Julius
Modelo gerado pelo usuário | SphinxTrain, PocketSphinx | HTK, Julius

Todas as quatro ferramentas - HTK, Julius, PocketSphinx e SphinxTrain - podem estar instaladas com segurança ao mesmo tempo.

O suporte ao SPHINX no Simon deverá ser ativado durante a compilação e pode não estar disponível na sua plataforma. Por favor, consulte a sua distribuição.

O instalador do Simon para Windows inclui o Julius, o PocketSphinx e o SphinxTrain, mas não o HTK. Caso sinta necessidade de instalar o HTK, consulte mais informações na seção de instalação.

##### Onde obter os modelos de base

Os modelos base do Simon são armazenados em pacotes `.sbm`. Se tiver arquivos de modelo em bruto para a sua infraestrutura, poderá criar pacotes deles num pacote SBM compatível com o Simon. Consulte mais detalhes na configuração do modelo de fala.

Nem todos os modelos SBM poderão funcionar para você. Consulte mais detalhes na seção de infraestruturas do modelo.

Para manter esta lista atualizada dos modelos base disponíveis, consulte a lista na nossa Wiki online.

##### Questões com os conjuntos de fonemas

Para estes modelos base funcionarem, tanto os seus cenários como o seu modelo de base precisam usar o mesmo conjunto de fonemas.

Na prática, isto apenas significa que você precisa corresponder os cenários ao seu modelo base. O nome dos modelos base do &kmyapplication; irão provavelmente começar com uma marca "[EN/VF/JHTK]". Tente baixar cenários que comecem pela mesma marca.

Você não pode usar cenários desenhados para um diferente conjunto de fonemas (modelo de base diferente). Se o Simon detectar este erro, ele tentará desativar as palavras afetadas removendo-as do modelo de fala criado. Estas palavras serão marcadas com um fundo em vermelho no vocabulário do cenário. Para reativá-las, transcreva-as com o conjunto de fonemas apropriado ou use um modelo gerado pelo usuário.

###### Dica

Se você desenhar um novo cenário, será uma boa ideia usar o dicionário usado para criar o modelo de base como dicionário-sombra. Desta forma, o Simon irá sugerir os fonemas corretos ao adicionar automaticamente as palavras.

## Usando o &kmyapplication;: Usuário típico

As seções a seguir irão descrever como usar o Simon.

### Assistente de primeira execução

Na primeira inicialização do Simon, este assistente irá conduzi-lo pela configuração inicial do &kmyapplication;.

Primeira execução: Bem-vindo

A configuração consiste em cinco passos simples que estão descritos abaixo. Você poderá ignorar cada um dos passos, e até mesmo o assistente por inteiro, se o desejar - nesse caso, o sistema ficará configurado com os valores padrão.

Contudo note que, sem qualquer configuração, não existirá nenhum reconhecimento.

#### Cenários

Neste passo, você poderá adicionar ou baixar cenários.

Primeira execução: Cenários

Para obter cenários a partir do repositório online, selecione a opção Abrir Obter para abrir a janela de transferências abaixo.

Primeira execução: Obter os cenários

Especialmente no caso dos usuários novos, recomenda-se que tente primeiro alguns cenários para ver como funciona o sistema, antes de se aprofundar na configuração exata do seu caso de uso.

Depois de completar o assistente, você poderá alterar a configuração do cenário com o uso da janela de configuração do cenário.

Se você estiver planejando usar um modelo de base, certifique-se de baixar os cenários correspondentes.

#### Modelos de base

Neste passo, você poderá configurar o Simon para usar os modelos base.

Primeira execução: Modelos de base

Novamente, você poderá transferir modelos de base a partir de um repositório online através da opção Abrir modelo Obter.

Primeira execução: Download dos modelos base

Para usar um modelo gerado pelo usuário, selecione Não usar um modelo de base.

Depois de completar ou interromper o assistente de primeira execução, você poderá alterar as opções de configuração definidas aqui na configuração do Simon.

#### Servidor

Internamente, o Simon é um aplicativo cliente / servidor. Se quiser tirar partido de uma instalação baseada na rede, poderá indicar aqui o endereço do servidor.

Primeira execução: Servidor

A configuração padrão é suficiente para uma instalação normal e irá assumir que você usa um servidor Simond local que será iniciado e parado automaticamente com o Simon.

Depois de completar ou interromper o assistente de primeira execução, poderá alterar as opções de configuração definidas aqui na configuração do servidor.

#### Configuração do som

Uma vez que o Simon reconhece o som de um ou mais microfones, terá que indicar ao Simon quais os dispositivos que deseja usar para o reconhecimento e o treino.

Primeira execução: Configuração do som

O Simon poderá usar um ou mais dispositivos de entrada e saída para diferentes tarefas. Você poderá descobrir mais informações sobre as capacidades de vários dispositivos do Simon na seção de configuração do som no Simon.

Se não tiver pelo menos um dispositivo de som funcionando para o reconhecimento, você não será capaz de ativar o Simon.

Depois de completar ou interromper o assistente de primeira execução, você poderá alterar as opções de configuração definidas aqui na configuração do som.

#### Calibração do volume

Para o Simon funcionar corretamente, você terá que configurar o volume dos seus microfones com um nível sensível.

Primeira execução: Calibração do volume

Para mais detalhes sobre isso, veja a seção geral sobre Calibração do volume.

### Janela principal do Simon

Uma imagem do &kmyapplication; Imagem

A janela principal do Simon está dividida em quatro seções lógicas. Em cima e à esquerda, você poderá ver a seção de cenários, à sua direita, a seção de treino, no fundo à esquerda o modelo acústico e, finalmente, à direita a seção de reconhecimento.

A janela principal do Simon pode ser oculta a qualquer momento, se clicar no logotipo do Simon na área de notificação (normalmente a lado do relógio do sistema na barra de tarefas), o que irá minimizar o Simon para a área de notificação. Clique nela de novo para mostrar a janela principal outra vez.

#### Janela principal: Cenários

Uma lista de cenários mostra os cenários atualmente carregados. Você poderá gerenciar esta seleção clicando em Gerenciar cenários que irá abrir a janela de gerenciamento de cenários.

Para modificar um cenário, selecione-o na lista e abra-o com a opção Abrir o "<nome>".

#### Janela principal: Treinamento

Esta seção mostra todos os textos de treino de todos os cenários ativos no momento.

Selecionar um texto de treino, irá realçar o cenário-pai na seção de cenários.

Você poderá começar a treinar o reconhecimento se selecionar um texto e clicar em Iniciar o treino. Repare que, dependendo do seu tipo de modelo selecionado, o treino poderá ou não melhorar a correção do seu reconhecimento. A seção do modelo acústico (ver abaixo) no menu principal do &kmyapplication; informa se o treino terá algum efeito ou não na sua configuração específica. Para mais informações, consulte por favor a seção do modelo de base para mais informações sobre este assunto.

O conteúdo recolhido do treino poderá ser gerenciado se selecionar a opção Gerenciar os dados de treino, que irá abrir a janela de gerenciamento de amostras.

Para ajudar a criar um conteúdo geral e aberto de fala, por favor considere contribuir com o seu conteúdo de treino para o projeto Voxforge ao selecionar a opção Arquivo Contribuir com amostras para invocar o assistente de envio de amostras.

#### Janela principal: Modelo acústico

Aqui o &kmyapplication; mostra informações sobre o modelo de base e ativo usados no momento.

Selecione Configurar o modelo acústico para configurar o modelo de base.

#### Janela principal: Reconhecimento

Esta seção mostra informações sobre o estado do reconhecimento.

Se o &kmyapplication; se conectar ao servidor, você poderá ativar e desativar o reconhecimento se comutar o botão Ativar. Se este elemento de controle não estiver disponível, certifique-se de que está conectado ao selecionar a opção Arquivo Conectar do menu do &kmyapplication;.

Um item de calibração do volume monitora os dispositivos de reconhecimento configurados. A definição do som pode ser modificada se selecionar a opção Configurar áudio para invocar a configuração do som.

### Cenários

Esta seção descreve como importar e remover os cenários da sua configuração do Simon. Para informações gerais sobre os cenários, por favor consulte o capítulo de bases. Se quiser criar, editar ou exportar cenários, por favor consulte a seção de utilização avançada.

Para modificar a configuração dos seus cenários, abra primeiro a janela de gerenciamento de cenários, clicando em Gerenciar cenários na janela principal do Simon.

Gerenciar os cenários

Para ativar ou desativar um cenário, você poderá usar os botões das setas entre as duas listas ou simplesmente fazer duplo-clique sobre a opção que deseja carregar / fechar.

Mais informações sobre os cenários individuais poderão ser obtidas nas dicas dos itens da lista.

#### Importar o cenário

Os cenários poderão ser importados a partir de um arquivo local no formato de cenários em XML do Simon, mas poderá ser transferido e importado diretamente a partir da Internet.

Ao transferir cenários, a lista de cenários é obtida a partir da subseção de Cenários do Simon, na página do OpenDesktop em KDE-files.org.

Baixar os cenários

Se você criar um cenário que possa ser útil para outros usuários do Simon, considere enviá-lo para este repositório on-line e ajudar outros usuários do Simon.

#### Apagar o cenário

Para apagar um cenário, selecione o cenário e clique no botão Apagar.

Uma vez que os cenários estão sincronizados com o servidor de reconhecimento, você poderá restaurar os cenários apagados através da cópia de segurança da sincronização do modelo.

### Gravações

Se você estiver usando modelo gerados pelo usuário ou adaptados, o Simon cria o seu modelo acústico com base nas amostras transcritas da voz dos usuários. Como tal, as amostras gravadas são de importância vital para a performance do reconhecimento.

#### Volume

É importante que verifique o volume do seu microfone antes de gravar quaisquer amostras.

##### Calibração do Simon

A versão atual do &kmyapplication; inclui uma forma simples de garantir que o seu volume é configurado corretamente.

Calibração do volume do Simon

Por padrão, a calibração do volume é apresentada antes de iniciar qualquer gravação no &kmyapplication;.

Para calibrar, basta ler o texto apresentado.

A calibração irá vigiar o volume atual e indicar-lhe para subir ou descer o volume, mas você terá que fazer isso manualmente no seu sistema.

Durante a calibração, tente falar normalmente. Não grite mas também não fale muito baixo. Leve em conta que você deverá usar de um modo geral a mesma definição de volume para todo o seu treino e também para o reconhecimento. Você poderá falar um pouco mais alto (de forma inconsciente) quando estiver chateado ou em outra hora do dia, assim tente elevar a sua voz um pouco para antecipar isto. É muito melhor ter amostras um pouco mais baixas que começar a distorcer.

Na configuração do &kmyapplication;, tanto o texto apresentado como os níveis considerados corretos poderão ser alterados. Se você deixar o campo em branco, o texto padrão será apresentado. Nas opções, você poderá também desativar a calibração por completo. Veja mais detalhes na seção de treino.

##### Calibração do Audacity

Em alternativa, você poderá usar uma ferramenta de edição de áudio, como a aplicação gratuita Audacity para vigiar o volume da gravação.

Muito baixo: Volume: Muito baixo

Muito alto: Volume: Muito alto

Volume perfeito: Volume perfeito

#### Silêncio

Para ajudar o Simon com a segmentação automática, recomenda-se que deixe pelo menos um ou dois segundos de silêncio na gravação antes e depois do texto da mensagem.

As versões atuais do Simon incluem um aviso gráfico sobre quando falar durante a gravação. A mensagem irá dizer ao usuário para esperar cerca de meio segundo: Por favor, aguarde

... antes de dizer ao usuário para falar: Fale por favor

Este método de reação visual mostrou-se ser especialmente valioso ao gravar com pessoas que não conseguem ler elas próprias o texto apresentado e que, por isso, precisam que alguém lhes diga o que têm a dizer. A dica visual colorida diz-lhes quando devem começar a repetir o que o facilitador disse, sem a necessidade de linguagem gestual não confiável.

#### Conteúdo

Geralmente recomendamos que grave mais ou menos as mesmas frases que o Simon deverá reconhecer mais tarde.

(Obviamente isto não se aplica às aquisições massivas de amostras, onde outras propriedades como o balanceamento fonético são mais importantes)

Um especial cuidado deve ser tomado em evitar gravações do tipo Um Um Um para acelerar rapidamente a propriedade da taxa de reconhecimento. Essas gravações normalmente diminuem a performance do reconhecimento, uma vez que a pronúncia difere em grande medida da pronúncia individual de cada palavra.

#### Microfone

Para o Simon funcionar bem, recomenda-se a utilização de um microfone de boa qualidade.

Contudo, mesmo os auriculares relativamente baratos (por volta dos 30 euros) obtêm resultados muito bons - ordens de magnitude muito melhores que os microfones internos.

Para uma compatibilidade máxima, recomendamos os auriculares USB, uma vez que normalmente suportam a taxa de amostragem necessária de 16 kHz, são bastante bem suportados, tanto pelo Microsoft Windows como pelo GNU/Linux, e normalmente não necessitam de controladores especiais e proprietários para funcionar.

#### Garantia de qualidade das amostras

O Simon irá verificar cada uma das amostras de acordo com certos critérios para garantir que as amostras recolhidas não estão erradas ou com qualidade fraca.

Se o Simon detectar uma amostra com problemas, irá pedir ao usuário para regravar a amostra.

Atualmente, o Simon verifica os seguintes critérios:

- Volume de pico da amostra

  Se o volume estiver muito alto e o microfone começar a distorcer (Distorção na Wikipédia), o Simon irá mostrar uma mensagem de aviso que diz ao usuário para baixar o volume do microfone.

- Relação sinal-ruído (SNR)

  O Simon irá tentar determinar automaticamente a relação sinal-ruído de cada gravação. Se a relação for abaixo de um determinado valor configurável, será apresentada uma mensagem de aviso.

  O valor padrão 2300 % significa que, para o Simon aceitar uma amostra como gravada corretamente, o volume de pico deverá ser 23 vezes maior que a linha de base do ruído (média mínima ao longo de 50 ms).

  Muitas vezes isto poderá ser o resultado de um microfone de muito baixa qualidade, níveis elevados de ruído ambiente ou um ganho baixo do microfone associado a uma opção de amplificação do microfone na mesa de mistura do sistema.

A mensagem de aviso da SNR enviada por uma amostra vazia. Esta janela de informação aparece ao clicar no botão Mais informações no componente de gravação. Amostra vazia que dispara o aviso de SNR

### Contribuir com as amostras

Os modelos de base que podem ser usados com o Simon para aumentar ou substituir o treino são criados a partir das amostras de fala das outras pessoas. Para criar modelos de base de alta qualidade, é necessária uma grande quantidade de amostras de treino.

Se você tiver treinado a sua instalação local do Simon, já recolheu amostras de voz valiosas que poderão melhorar a qualidade do modelo geral.

Através da janela "Contribuir com amostras" do &kmyapplication;, você poderá enviar estas gravações para beneficiar o projeto Voxforge na criação de modelos de base abertos de alta qualidade.

Contribuir com amostras: Conectar

Após se conectar ao servidor, o &kmyapplication; irá pedir alguns metadados básicos. Esta informação obviamente não contém quaisquer dados pessoais. Em vez disso, será usado posteriormente para agrupar as amostras de grupos de locutores semelhantes, de forma a criar modelos acústicos mais precisos.

Contribuir com amostras: Fornecer informações

A duração do processo de envio em si irá depender da sua conexão à Internet. De um modo geral, isto transmite apenas poucos dados, uma vez que as amostras de áudio recolhidas pelo &kmyapplication; são normalmente muito pequenas: cerca de 0,1 MB por amostra.

Contribuir com amostras: Enviar

### Gerenciar os dados do treinamento

Para ver e modificar os seus conteúdos de treino pessoais, você poderá acessar a janela de gerenciamento dos dados de treino se selecionar Gerenciar os dados de treino na janela principal do &kmyapplication; ou na seção de treino de qualquer cenário aberto.

Gerenciar as amostras de treinamento

#### Modificar as amostras

Para escutar ou regravar uma amostra, basta selecioná-la na lista e selecionar Abrir amostra.

Modificando uma amostra de treinamento

Nesta janela, você também poderá modificar as amostras após terem sido gravadas.

Se você remover a amostra aberta e não regravá-la, o &kmyapplication; oferecerá para remover o conteúdo.

Removendo uma amostra de treinamento

#### Limpando os dados de treinamento

Após uma janela de configuração, isto irá remover todos os dados de treino pessoais do usuário.

#### Importando as amostras de treino

Ao usar o campo de dados de treino na importação, uma pessoa poderá importar as amostras recolhidas de versões anteriores do Simon ou treinos manuais.

Esta funcionalidade é muito específica. Por favor, use-a com cuidado e certifique-se de que sabe exatamente o que está fazendo antes de continuar.

Você tanto poderá fornecer um arquivo de mensagens em separado como deixar o Simon extrair as transcrições dos nomes dos arquivos.

Ao usar as transcrições baseadas em mensagens, o seu arquivo de mensagens (UTF-8) terá de conter as linhas do seguinte conteúdo: [nome do arquivo] [conteúdo]. Os nomes dos arquivos não possuem extensão e o conteúdo terá que estar em maiúsculas. Por exemplo: `demo_2007_03_20 DEMO` para importar o arquivo `demo_2007_03_20.wav` que contém a palavra falada Demo.

Uma vez que os arquivos de mensagens não contêm nenhuma extensão, o Simon irá tentar o 'wav', 'mp3', 'ogg' e 'flac' (nessa ordem). Se uma destas palavras corresponder, não será testada mais nenhuma extensão, sendo importado apenas o primeiro arquivo (em contraste com as transcrições baseadas em arquivos, onde serão importados todos os arquivos).

Ao usar as transcrições baseadas em arquivo, um arquivo chamado 'isto_e_um_teste.wav tem que conter Isto e um teste e nada mais. Os números e os caracteres especiais (., -,...) no nome do arquivo são ignorados e apagados.

Os arquivos gravados pelo Simon 0.2 irão seguir esta nomenclatura, para que possa importá-los sem problemas, usando o método de extração do nome do arquivo. Os arquivos gerados pelas versões anteriores do Simon não deverão ser importados com esta função, mas você poderá usar a importação com base em mensagens para esse fim.

Os arquivos importados e as suas transcrições serão então adicionados aos conteúdos de treino.

Para importar uma pasta que contém amostras de exemplo, basta selecionar a pasta para importar e, dependendo do seu tipo de importação, o arquivo de mensagens também. Assistente de importação de dados de treino

A pasta será sondada de forma recursiva. Isto significa que a pasta indicada, bem como as suas subpastas, serão sondadas para encontrar arquivos '.wav', '.flac', '.mp3' e '.ogg'. Todos os arquivos encontrados serão importados.

Ao importar os arquivos de som, todos os filtros de pós-processamento serão aplicados.

Se importar algo que não sejam arquivos WAV, você será responsável pela decodificação dos mesmos durante o processo de importação (por exemplo, através dos filtros de pós-processamento), caso contrário a criação do modelo será mal-sucedida.

### Configuração

O Simon foi desenhado para ser altamente configurável. Assim, existem diversos parâmetros que podem ser ajustados para os seus requisitos específicos.

Você poderá acessar a janela de configuração do Simon através do menu principal da aplicação: Configurações Configurar o Simon....

#### Configuração Geral

A página de configuração geral apresenta algumas definições básicas.

Se você quiser mostrar o assistente de primeira execução novamente, desligue a opção Desativar o assistente de configuração.

Configuração Geral

Lembre-se que a opção para iniciar o Simon na inicialização irá funcionar tanto no Microsoft Windows como se usar o KDE Plasma no Linux. O suporte para outros ambientes de trabalho, como o Gnome, XFCE, &etc; poderá necessitar que coloque manualmente o Simon no local de inicialização automático da sessão (consulte os manuais respectivos do seu ambiente de trabalho).

Quando a opção para iniciar o Simon minimizado estiver selecionada, o Simon irá minimizar para área de notificação, imediatamente após a inicialização.

Desligando a opção para avisar quando ocorrerem problemas com as amostras, você irá desativar a garantia de qualidade das amostras.

#### Gravações

O Simon usa um processamento de som interno e sofisticado para permitir configurações multi-dispositivo complexas.

##### Configuração do dispositivo

A configuração do dispositivo de som permite-lhe escolher quais os dispositivos de som a usar, configurá-los e definir parâmetros de gravação adicionais.

Use o botão Atualizar dispositivos se você tiver alterado a configuração do som, desde que iniciou o Simon.

Configuração do dispositivo de som: Geral

Na maior parte do tempo, você irá querer usar 1 canal e 16kHz (que é também o padrão) uma vez que o reconhecimento só funciona com sinal mono e funciona melhor com 16kHz (sendo 8kHz e 22kHz outras opções viáveis). Algumas placas de som baratas poderão não ter suporte a este modo em particular; nesse caso, você poderá ativar a reamostragem automática na configuração avançada do dispositivo.

Altere apenas o canal e a taxa de amostragem se realmente souber o que está fazendo. Caso contrário, o reconhecimento provavelmente não irá funcionar.

Configuração do dispositivo de som: Opções avançadas

Você poderá usar o Simon com mais de um dispositivo de som ao mesmo tempo. Use a opção Adicionar um dispositivo para adicionar um novo dispositivo à configuração e Remover o dispositivo para o remover da sua configuração. O primeiro dispositivo da sua configuração de som não poderá ser removido.

Para cada dispositivo, você poderá determinar para que deseja usar o dispositivo: treino ou reconhecimento (o último caso só se aplica para dispositivos de entrada).

Se você usar mais de um dispositivo para treino, irá criar vários arquivos de som para cada pronúncia. Ao usar vários dispositivos no reconhecimento, cada um irá gerar uma sequência de som em separado para o servidor, resultando em resultados de reconhecimento para cada sequência.

Se você usar vários dispositivos de saída, a reprodução das amostras de treino irá tocar em todos os dispositivos de áudio configurados.

Ao usar diferentes taxas de amostragem para os seus dispositivos de entrada, o resultado só irá tocar nos dispositivos de saída correspondentes. Se, por exemplo, tiver um dispositivo de entrada configurado para usar 16kHz e o outro para usar 48kHz, a reprodução das amostras geradas pelo primeiro só irá tocar nas saídas de 16kHz, enquanto as do segundo só irão tocar em dispositivos a 48kHz.

Na configuração avançada do dispositivo,você poderá também definir a marca do grupo de amostras das amostras de treino produzidas e definir as condições do contexto de ativação.

Se você configurar este dispositivo para usá-lo no reconhecimento e (qualquer um dos) seus requisitos de ativação não forem cumpridos, o dispositivo não irá gravar. Isto pode ser usado para aumentar ou mesmo substituir a informação de contexto da detecção tradicional da atividade de voz.

Por exemplo, adicione uma condição de detecção de caras aos requisitos de ativação do dispositivo de gravação, de modo a somente ativar o reconhecimento quando você estiver olhando para a câmera de vídeo.

##### Detecção de atividade da voz

O reconhecimento é feito no servidor Simond. Veja a seção da arquitetura para obter mais detalhes.

A sequência de som não é contínua mas sim segmentada pelo cliente Simon. Isto é feito por algo chamado detecção da atividade de voz.

Detecção da atividade de voz

Aqui você poderá configurar esta segmentação através dos seguintes parâmetros:

- Nível de corte

  Tudo o que estiver abaixo deste nível é considerado silêncio (ruído de fundo).

- Margem inicial

  Faz 'cache' durante o período da margem mínima para começar a considerar uma amostra real. Durante todo este tempo, o nível tem que estar acima do nível de corte.

- Margem final

  Depois de a gravação descer abaixo do nível de corte, o Simon irá esperar durante este período mínimo para considerar a gravação atual como sendo uma amostra terminada.

- Ignorar as amostras menores que

  As amostras cuja duração seja menor que este valor não são levadas em consideração para o reconhecimento (tosse, &etc;).

##### Configuração do treino

Configuração do treino

Quando a opção Treino experiente por padrão estiver selecionada, o Simon irá, no modo de treino, iniciar e parar automaticamente a gravação ao mostrar e esconder (respectivamente) a mensagem gravando. Esta opção só define o valor padrão para essa configuração; o usuário poderá alterá-la a qualquer momento antes de iniciar uma sessão de treino.

O tipo de fonte aqui configurado refere-se ao texto que é gravado para treinar o modelo acústico (através de treino explícito ou ao adicionar uma palavra).

Esta opção foi introduzida depois de termos trabalhado com alguns clientes que sofrem de incapacidade motora com espasmos. Enquanto usamos o mouse para controlar o Simon durante o treino, eles tiveram que ler o que estava na tela. No início, isto era muito problemático, porque o tamanho de letra normal é relativamente pequeno e eles tiveram bastantes problemas tentando perceber o que deviam ler. Foi por isso que tornamos o tipo de fonte e o seu tamanho, para as mensagens de gravação, configurável.

Aqui você poderá também definir a relação sinal/ruído necessária para que o Simon considere uma amostra de treino como sendo correta. Veja a seção de Garantia de qualidade das amostras para mais detalhes.

Nesta página de configuração, você poderá também definir os parâmetros de calibração do volume.

Isto poderá ser desativado, tanto para a janela de adição de palavras como para o assistente de treino, se desligar a opção do grupo em si.

A calibração em si usa o reconhecimento da atividade de voz para pontuar a sua configuração do som.

O texto apresentado poderá ser configurado se inserir o texto no campo de dados abaixo. Se o campo estiver vazio, será usado um texto predefinido.

##### Pós-processamento

Todas as amostras gravadas (treino) e importadas (dos dados de treino da importação) poderão ser processadas com uma série de comandos de pós-processamento. Estas sequências são uma funcionalidade avançada e não deverão ser necessárias para o usuário médio.

Configuração do som: Pós-processamento

Os comandos de pós-processamento poderão ser vistos como uma cadeia de filtros através da qual as gravações terão que passar. Ao usar estes filtros, uma pessoa poderá definir comandos para suprimir o ruído de fundo nos dados de treino ou normalizar as gravações.

Fornecido o programa processar_audio, que recebe os arquivos de entrada e saída como argumentos (⪚: `processar_audio entrada.wav saida.wav`), o comando de pós-processamento seria: `processar_audio %1 %2`. Os dois itens de substituição %1 e %2 serão substituídos pelo arquivo de entrada e pelo de saída, respectivamente.

A opção para aplicar os filtros às gravações gravadas com o Simon ativa as sequências de pós-processamento sobre as amostras gravadas durante o treino (incluindo o treino inicial na adição da palavra). Se não selecionar esta opção, os comandos de pós-processamento só são aplicados às amostras importadas (através do assistente de importação dos dados de treino).

##### Contexto

Cada amostra gravada com o Simon terá atribuído um grupo de amostras.

Ao criar o modelo acústico a partir das amostras de treino, o Simon poderá levar a situação atual em consideração para usar apenas um subconjunto de todos os dados de treino recolhidos.

Configuração do som: Contexto

Por exemplo, num sistema em que vários locutores diferentes usem uma configuração compartilhada, as condições de contexto podem ser configuradas para criar automaticamente modelos separados para ambos os usuários que dependem da situação atual.

A imagem acima, por exemplo, mostra uma configuração onde, uma vez que todas as amostras do Pedro foram marcadas como "amostras_pedro" e todas as amostras do Matias foram marcadas como "amostras_matias" (consulte a configuração do dispositivo para mais informações sobre a configuração dos grupos de amostras), o modelo acústico ativo irá conter apenas as amostras próprias dos usuários atuais, desde que o arquivo `/home/matias/.username` contenha "pedro" ou "matias".

Outro caso de uso de exemplo seria mudar para um modelo acústico mais resistente ao ruído quando o usuário começar a ouvir música.

#### Modelo de fala

Aqui você poderá ajustar os parâmetros do modelo de fala.

##### Modelos base

Você poderá usar opcionalmente modelos de base para limitar / contornar o treino ou para evitar a instalação de uma infraestrutura de criação dos modelos. Por favor, consulte a seção do modelo de base geral para mais detalhes sobre os modelos de base.

Configuração do modelo base

Para usar um modelo gerado pelo usuário, selecione Não usar um modelo de base. Para usar um modelo de base estático, selecione um modelo de base e não selecione a opção Adaptar o modelo de base usando amostras de treino. Para usar em alternativa um modelo de base adaptado, assinale Adaptar o modelo de base usando amostras de treino depois de selecionar um modelo de base.

Os modelos de base do Simon estão armazenados em arquivos `.sbm`.

Para adicionar modelos de base à seleção, você tanto poderá importar modelos locais (Abrir um modelo Importar), transferi-los a partir de um repositório 'online' (Abrir um modelo Obter) ou criar novos a partir de arquivos em bruto (Abrir um modelo Criar a partir de arquivos de modelo).

Importando um modelo base a partir da Internet

Se você tiver arquivos de modelos em bruto, produzidos por qualquer uma das infraestruturas de criação de modelos suportadas, você poderá guardá-los em pacotes SBM para poder usar com o &kmyapplication;.

Criando modelos base a partir de arquivos brutos

Você poderá também exportar o seu modelo atualmente ativo se selecionar a opção Exportar o modelo ativo. O arquivo SBM exportado irá conter o seu modelo acústico completo (ignorando o contexto atual) que pode ser compartilhado com outros usuários do Simon.

##### Dados do treinamento

Esta seção permite-lhe configurar as amostras de treinamento.

Configuração dos dados de treinamento

A taxa de amostragem aqui definida é a taxa-alvo do modelo acústico. Não tem nada a ver coma taxa de amostragem da gravação e é da responsabilidade do usuário garantir que a amostras são de fato disponibilizadas nesse formato (normalmente pela gravação com essa taxa exata ou definindo comandos de pós-processamento que reformulem os arquivos; veja a seção de configuração do som para saber mais detalhes).

Normalmente são criados / usados modelos a 16kHz ou a 8kHz. Os modelos a 16kHz terão melhor precisão que os modelos a 8kHz. Não se recomendam valores superiores a 16kHz, porque é muito intensivo a nível de CPU e, na prática, não se traduzirá em taxas de reconhecimento maiores.

Além disso, você poderá ajustar a localização das amostras de treino. Contudo, certifique-se de que as amostras anteriores de treino são também movidas para o novo local. Se usar a sincronização automática, o Simond também poderá fornecer ao Simon a amostra em falta, mas a sua cópia manual é ainda recomendada por questões de performance.

##### Perfil do idioma

Na seção do perfil da língua, você poderá selecionar um perfil de línguas previamente compilado ou transferido para ajudar na transcrição de palavras novas.

Configuração do perfil do idioma

#### Extensões do modelo

Aqui você poderá configurar a URL de base que será usado para a importação automática do BOMP. O valor padrão aponta para a cópia no servidor do Simon Listens.

Extensões do modelo

#### Reconhecimento

Aqui você poderá configurar o reconhecimento e a sincronização do modelo com o servidor Simond.

##### Servidor

Usando a configuração do servidor, poderá definir os parâmetros da conexão ao Simond.

###### Geral

A aplicação principal Simon conecta-se ao servidor Simond (veja a seção sobre a arquitetura para mais informações).

Configurar o servidor: Geral

Para identificar os usuários individuais do sistema (um servidor Simond pode obviamente servir vários clientes do Simon), o Simon e o Simond precisam de usuários. Cada usuário tem o seu próprio modelo de fala. A combinação usuário / senha aqui indicada é usada para se autenticar no Simond. Se ele não souber o usuário ou a senha estiver incorreta, a conexão será mal-sucedida. Veja o manual do Simond para saber como configurar usuários para o Simond.

O reconhecimento em si - que é feito pelo servidor - poderá não estar sempre disponível. Por exemplo, não seria possível iniciar o reconhecimento, enquanto o usuário não tiver um modelo acústico e linguístico criado anteriormente (durante a sincronização, quando todos os ingredientes - vocabulário, gramática, treino - estão presentes). Ao usar a opção para iniciar o reconhecimento automaticamente, assim que estiver disponível, o Simon irá pedir para iniciar o reconhecimento quando receber a informação de que está pronto (todos os componentes necessários estão disponíveis).

Se usar a opção Conectar ao servidor na inicialização, o Simon irá iniciar automaticamente a conexão aos servidores Simond configurados, depois de terminar de carregar a interface do usuário.

###### Rede

O Simon conecta-se ao Simond por TCP/IP.

Configurar o servidor: Rede

Até agora (Simon 0.4), ainda não há suporte a criptografia.

A configuração do tempo-limite define quanto tempo o Simon irá esperar por uma primeira resposta ao contactar as máquinas. Se estiver numa rede muito, mas muito lenta e/ou usar o conectar na inicialização numa máquina muito lenta, poderá querer aumentar este valor, caso esteja obtendo erros de tempo-limite para os resolver, tentando de novo.

O Simon permite configurar a utilização de mais de um Simond. Isto é muito útil se, por exemplo, estiver usando o Simon num portátil que se conecta a um servidor diferente, dependendo de onde estiver. Você poderá, por exemplo, adicionar o servidor que usa quando está em casa e o servidor usado quando está no trabalho. Ao conectar-se, o Simon tentará conectar-se a cada um dos servidores (na ordem) até que descubra um servidor que aceite a conexão.

Para adicionar um servidor, basta indicar o seu nome ou IP e a porta (separados por :) ou use a janela que aparece quando selecionar a seta azul ao lado do campo de texto.

##### Sincronização e salvaguarda do modelo

Aqui você poderá configurar a sincronização do modelo e reposição de versões anteriores do mesmo.

Sincronização e salvaguarda do modelo

O Simon cria os arquivos de entrada da fala que serão então compilados e usados pelo servidor Simond (ver a seção de arquitetura para obter mais detalhes).

O processo de enviar arquivos de entrada de fala, compilá-los e receber as versões compiladas é chamado de sincronização. Somente depois de o modelo de fala estar sincronizado é que as alterações terão efeito e será definido um novo ponto de reposição. É por isso que, por padrão, o Simon sincronize sempre o modelo com o servidor, cada vez que muda. Isto é chamado de Sincronização automática e é a opção recomendada.

Contudo, se você quiser mais controle, poderá indicar ao Simon para lhe perguntar antes de iniciar a sincronização, após ter alterado o modelo, ou para se basear na sincronização manual em conjunto. Ao selecionar a sincronização manual, você terá que usar manualmente o item de menu Ações Sincronização da janela principal do Simon sempre que quiser compilar o modelo de fala.

O servidor do Simon irá manter uma cópia das últimas cinco iterações com arquivos de modelos. Contudo, isto só inclui os arquivos de origem (o vocabulário, gramática, &etc;) - não o modelo compilado. Contudo, o modelo compilado será gerado automaticamente a partir dos arquivos de origem repostos.

Depois de ter se conectado ao servidor, você poderá selecionar um dos modelos disponíveis e restaurá-lo, clicando para isso em Escolher o modelo.

#### Ações

Na configuração das ações, você poderá definir as reações aos resultados do reconhecimento.

##### Reconhecimento

O reconhecimento do Simon calcula não só o resultado mais provável como os dez melhores resultados.

Cada um dos resultados recebe um nível de confiança entre 0 e 1 (onde 1 corresponde a 100% de certeza).

Se usar a Confiança mínima, você poderá definir uma confiança mínima para os resultados do reconhecimento serem considerados válidos.

Se mais de um resultado do reconhecimento for melhor classificado que o nível de confiança mínima, o Simon irá mostrar uma janela que apresenta as opções mais prováveis para você escolher.

Você quer dizer...?

Esta janela poderá ser desativada com a opção Mostrar a janela de seleção para os resultados ambíguos.

##### Fonte da janela

Muitos dos plugins do Simon possuem uma interface gráfica de usuário.

As fontes dessas interfaces poderão ser configurados a nível central e independentes das definições dos tipos de fonte do sistema aqui.

Inserção de números com fontes personalizadas

##### Listas

Aqui você poderá encontrar a configuração dos elementos de listas globais. Isto serve como modelo para cenários novos, mas também é diretamente usado para a janela de resultados de reconhecimento ambíguos.

#### Sintetizador de voz

Algumas partes do &kmyapplication;, principalmente o plugin de comandos da janela aplicam o texto-para-fala (ou TTS) para ler o texto em voz alta.

##### Infraestruturas

Várias soluções externas de TTS poderão ser usadas para permitir ao &kmyapplication; falar. Várias infraestruturas poderão ser ativadas ao mesmo tempo, sendo elas consultadas pela ordem configurada até que seja encontrada uma que possa sintetizar a mensagem pedida.

Estão disponíveis as seguintes infraestruturas:

- Gravações

  Em vez de um motor para converter texto arbitrário para fala, poderão ser pré-gravados trechos de texto e serem reproduzidos novamente.

- Jovie

  Usa o sistema de TTS Jovie. Isto requer uma instância configurada do Jovie.

- Serviços de Internet

  A infraestrutura de serviços Web poderá ser usada para falar com qualquer motor de TTS que tenha uma interface Web que devolva arquivos `.wav`.

TTS: Seleção da infraestrutura

##### Gravações

Em vez de usar um mecanismo TTS externo, você também pode também gravar-se a si próprio ou a outros locutores que leiam os texto em voz alta. O Simon poderá reproduzir de novo esses trechos pré-gravados quando forem pedidos pelo seu mecanismo de texto-para-fala.

Estes pedaços de sons gravados são organizados em "conjuntos" de diferentes locutores que podem também ser importados e exportados para compartilhá-los com os outros usuários do &kmyapplication;.

TTS: gravações

##### Serviços de Internet

Através da infraestrutura de serviços Web, o &kmyapplication; poderá usar motores de TTS baseados na Web como o MARY.

TTS: serviço Web

Você poderá fornecer qualquer URL. O &kmyapplication; irá substituir qualquer instância do "%1" dentro da URL configurado pelo texto a sintetizar. A infraestrutura espera que o serviço Web consultado devolva um arquivo `.wav` que será transmitido e conduzido pela camada de som do &kmyapplication; - respeitando a configuração do dispositivo de som.

#### Ambiente de trabalho social

Os cenários podem ser enviados e transferidos para dentro do Simon.

Para isto, usamos as funcionalidades do ambiente de trabalho social KDE e a nossa própria categoria de cenários do Simon no kde-files.org.

Se você já tiver uma conta no opendesktop.org, poderá inserir aqui as credenciais. Se não a tiver, poderá registrar-se diretamente no módulo de configuração.

O registro é livre de encargos, obviamente.

#### Configuração da webcam

Na configuração da câmera Web, você poderá configurar os quadros por segundo (fps) e selecionar a câmera a usar, caso possua várias câmeras conectadas no seu sistema.

Configuração da webcam

A quantidade de quadros por segundo é o ritmo em que a câmera irá produzir imagens consecutivas. O melhor valor para esta taxa é entre 5-15, para um desempenho adequado.

#### Avançado: Ajustando manualmente os parâmetros de reconhecimento

O Simon destina-se aos usuários finais. Sua interface está desenhada para permitir mesmo a usuários sem qualquer base nas tecnologias da fala desenharem os seus próprios modelos de língua e acústicos, fornecendo valores predefinidos razoáveis para utilizações simples.

Em casos específicos (necessidades especiais profundas, por exemplo), poderá necessitar de alguma configuração especial. É por isto que os arquivos de configuração do reconhecimento em bruto também são respeitados pelo Simon, podendo obviamente ser modificados para se ajustar às suas necessidades.

##### Julius

Existem basicamente duas partes da configuração do Julius que poderão ser ajustados:

- adin.jconf

  Esta é a configuração do cliente Simon para a transmissão de áudio do Simon para o Simond. Este arquivo é lido diretamente pelo 'adinstreamer'.

  O Simon vem com um arquivo 'adin.jconf' predefinido sem quaisquer parâmetros especiais. Você poderá alterar esta definição do sistema, o que irá afetar todos os usuários, caso existam contas diferentes na sua máquina que usem o Simon. Para alterar apenas a configuração de um dos usuários, copie o arquivo para a pasta pessoal do usuário (ver abaixo) e edite essa cópia.

- julius.jconf

  Esta é uma configuração do servidor Simond e influencia diretamente o reconhecimento. Este arquivo é processado diretamente pelas bibliotecas 'libjulius' e 'libsent'.

  O Simond vem com um arquivo 'julius.jconf' predefinido. Sempre que for adicionado um novo usuário à base de dados do Simond, ele irá copiar automaticamente esta configuração do sistema para o novo usuário. Depois disso, o usuário poderá obviamente alterá-la, mas não irá afetar os outros usuários. Desta forma, o modelo (a configuração do sistema) poderá ser alterado sem afetar outros usuários.

A localização dos arquivos de configuração do Julius irá depender da sua plataforma:

##### Arquivos de configuração do Julius

Arquivo | Microsoft Windows | GNU/Linux
adin.jconf (sistema) | (pasta de instalação)\share\apps\simon\adin.jconf | `kde4-config --prefix`/share/apps/simon/adin.jconf
adin.jconf (usuário) | %appdata%\.kde\share\apps\simon\adin.jconf | ~/.kde/share/apps/simon/adin.jconf
julius.jconf (modelo) | (pasta de instalação)\share\apps\simond\default.jconf | `kde4-config --prefix`/share/apps/simond/default.jconf
julius.jconf (usuário) | %appdata%\.kde\share\apps\simond\models\(user)\active\julius.jconf | ~/.kde/share/apps/simond/models/(user)/active/julius.jconf

## Avançado: Criando novos cenários com o &kmyapplication;

O capítulo seguinte destina-se aos usuários mais experientes que desejam desenhar os seus próprios cenários.

Para uma informação de uso geral, por favor consulte o capítulo para Usar o &kmyapplication;: Usuário típico.

### Introdução

Para adicionar um novo cenário, você primeiro irá criar um novo cenário "console", para isso adicionando um novo objeto de cenário e depois abri-lo na janela principal do &kmyapplication;.

Para em vez disso modificar um cenário existente, você terá obviamente que abri-lo.

Um cenário do &kmyapplication; contém os seguintes componentes:

- Vocabulário

- Gramática

- Textos de treinamento

- Contexto

- Comandos

Antes de descrever como configurar estes elementos no Simon, a seção a seguir oferece informações básicas que irão ajudá-lo a compreender os princípios básicos de modelação da fala. Este conhecimento fundamental é necessário para desenhar cenários sensíveis.

### Reconhecimento da fala: segundo plano

Antes de explicar exatamente como você poderá criar novos cenários com o Simon, esta seção apresenta algumas bases fundamentais sobre o reconhecimento de fala em geral.

Os sistemas de reconhecimento de fala recebem a introdução da voz (muitas vezes a partir de um microfone) e tentam traduzi-la para texto escrito. Para fazer isto, baseiam-se em representações estatísticas da voz humana. Para simplificar: o computador aprende como as palavras - ou, mais corretamente, os sons que compõem essas palavras - soam.

Um modelo de fala é composto de duas partes distintas:

- Modelo do idioma

- Modelo acústico

#### Modelo do idioma

O modelo do idioma define o vocabulário e a gramática que você deseja usar.

##### Vocabulário

O vocabulário define as palavras que o processo de reconhecimento deverá reconhecer. Todas as palavras que deseja usar no Simon deverão ser incluídas no seu vocabulário.

Um item no vocabulário define exatamente uma palavra. Em contraste com a utilização comum de palavra, no Simon uma palavra significa uma combinação única do seguinte:

- Nome da palavra

  (A palavra escrita em si)

- Categoria

  (Categoria gramatical; por exemplo: Substantivo, Verbo, &etc;)

- Pronúncia

  (Como é pronunciada a palavra; o Simon aceita qualquer tipo de fonética, desde que não use caracteres especiais ou números)

Isto significa que os plurais ou mesmo os casos diferentes são palavras diferentes para o Simon. Esta é uma decisão de desenho importante para permitir mais controle quando usar uma gramática sofisticada.

De um modo geral, aconselha-se que mantenha o seu vocabulário o mais sucinto possível. Quanto mais palavras tiver, maior a chance de que o Simon o entenda mal.

Um vocabulário de exemplo (por favor, lembre-se de que aqui as categorias foram configuradas deliberadamente como 'Noun' / 'Verb' (Substantivo / Verbo), para ajudá-lo na compreensão; consulte por favor a seção de gramática para saber porque esta poderá não ser a melhor ideia):

##### Vocabulário de exemplo

Palavra | Categoria | Pronúncia
Computer | Substantivo | k ax m p y uw t er
Internet | Substantivo | ih n t er n eh t
Mail | Substantivo | m ey l
close | Verbo | k l ow s

###### Dicionário ativo

O vocabulário usado para o reconhecimento como sendo o dicionário ou vocabulário ativo.

###### Dicionário-sombra

Como foi dito anteriormente, o usuário deverá manter o seu vocabulário / dicionário o mais leve possível. Contudo, uma vez que uma palavra do seu vocabulário tem que conter também informações sobre a sua pronúncia, também seria bom ter um dicionário grande onde poderá procurar a pronúncia e outras características das palavras.

O Simon oferece esta funcionalidade. Referimo-nos a este dicionário de referência enorme como sendo o dicionário-sombra. Este dicionário-sombra não é criado pelo usuário mas poderá ser importado a partir de várias fontes.

Uma vez que o Simon é uma solução multilíngue, não são enviados dicionários-sombra com o Simon. Contudo, é bastante simples importá-los você mesmo com o assistente de importação de dicionários. Isto está descrito na seção para Importar Dicionários.

###### Perfil do idioma

Além de um dicionário-sombra, o Simon pode usar um perfil de língua para fornecer ajuda na transcrição de palavras.

Um perfil de língua consiste em regras de pronúncia das palavras para a língua-alvo. Ele poderá ser ajustado de maneira semelhante ao que os humanos fazem quando podem pronunciar uma palavra que nunca tenham ouvido só porque conhecem algumas "regras de pronúncia" implícitas da língua.

Tal como acontece com os humanos, este processo não é perfeito mas pode fornecer uma base inicial sólida.

Esta dedução automática da transcrição de um fonema a partir de uma palavra escrita é chamada de "conversão de grafia para fonema".

O Simon necessita do conversor de grafia para fonemas Sequitur G2P instalado e configurado para os perfis das línguas funcionarem.

Se você tiver selecionado um perfil de língua pré-criado ou criado o seu próprio, o Simon irá transcrever automaticamente as palavras novas com ele, caso não sejam encontradas no seu dicionário-sombra.

##### Gramática

A gramática define as combinações de palavras consideradas corretas.

Vejamos um exemplo: Você quer que o Simon execute programas e que feche essas janelas quando terminar. Você poderá querer usar os seguintes comandos:

- Computador, Internet para abrir um navegador Web

- Computador, Correio

  Para abrir um cliente de e-mail

- Computador, fechar

  Para fechar a janela atual

Seguindo a gramática inglesa, o seu vocabulário iria conter o seguinte:

##### Vocabulário de exemplo

Palavra | Categoria
Computer | Substantivo
Internet | Substantivo
Mail | Substantivo
close | Verbo

Para permitir as frases definidas acima, o Simon iria necessitar da seguinte gramática:

- Noun Noun (Substantivo Substantivo) para frases do tipo Computador Internet

- Noun Verb (Substantivo Verbo) para frases do tipo Computador fechar

Embora isto possa funcionar, iria também permitir as combinações Computador Computador, Internet Computador, Internet Internet, &etc;, que são obviamente erradas. Para melhorar a precisão do reconhecimento, poderemos tentar criar uma gramática que reflita melhor o que estamos tentando fazer com o Simon.

É importante lembrar que o usuário define o seu próprio idioma ao usar o Simon. Isto significa que não está sujeito às regras gramaticais que existem em qualquer idioma com que deseja usar o Simon. Para um caso de uso simples de comando e controle, seria por exemplo recomendado que inventasse novas regras gramaticais para eliminar as diferenças entre comandos diversos, impostas pela informação gramatical irrelevante para este caso de uso.

No exemplo acima, não é relevante para a questão que o fechar seja um verbo e o Computador e Internet sejam substantivos. Em alternativa, porque não defini-los como algo que reflita melhor o que você deseja que sejam:

##### Vocabulário de exemplo melhorado

Palavra | Categoria
Computer | Evento
Internet | Comando
Mail | Comando
close | Comando

Agora iremos mudar a gramática para o seguinte:

- Comando do Evento

Isto permite todas as combinações descritas acima. Contudo, também limita as possibilidades para somente essas três frases. Especialmente nos modelos maiores, uma gramática e vocabulário bem-pensados poderão significar uma enorme diferença nos resultados do reconhecimento.

#### Modelo acústico

O modelo acústico representa a sua pronúncia em um formato legível para a máquina.

Vejamos o seguinte vocabulário de exemplo:

#### Vocabulário de exemplo

Palavra | Categoria | Pronúncia
Computer | Substantivo | k ax m p y uw t er
Internet | Substantivo | ih n t er n eh t
Mail | Substantivo | m ey l
close | Verbo | k l ow s

A pronúncia de cada palavra é composta por sons individuais separados por espaços. Por exemplo, a palavra close (fechar) consiste nos seguintes sons:

- k

- l

- ow

- s

O modelo acústico usa o fato de as palavras faladas serem compostas de sons, assim como as palavras escritas serem compostos por letras. Usando esse conhecimento, podemos segmentar as palavras em sons (representados pela pronúncia) e juntá-los de novo no reconhecimento. Estes blocos de construção chamam-se fonemas.

Uma vez que o modelo acústico representa de fato como você pronuncia os fonemas das palavras, o material de treino é compartilhado por todas as palavras que usam os mesmos fonemas.

Isto significa que, se adicionar a palavra roupas ao modelo de língua, o seu modelo acústico já terá uma ideia de como a parte rou irá soar, uma vez que compartilham os mesmos fonemas (r, r, ou) no início.

Para treinar o modelo acústico (em outras palavras, para lhe dizer como você pronuncia os fonemas), terá que treinar palavras do seu modelo linguístico. Isto significa que o Simon mostrará uma palavra que terá de ler em voz alta. Como a palavra já consta do seu vocabulário, o Simon já sabe os fonemas que contém e por isso pode aprender com a sua pronúncia da palavra.

### Cenários

Esta seção estende a anterior sobre o gerenciamento básico de cenários e diz como criar, editar e exportar cenários.

Gerenciar os cenários

#### Hierarquias de cenários

Você poderá criar hierarquias de cenários arrastando e soltando os cenários ativos uns sobre os outros.

Gerenciar cenários: Hierarquias de cenários

A hierarquias de cenários tem dois objetivos:

- O sistema de contextos respeita as hierarquias de cenários: se o cenário-pai for desativado, todos os cenários-filhos serão também desativados.

- Se você tentar exportar um cenário que tenha filhos, o &kmyapplication; permitirá exportá-los para um pacote de cenários conjunto. Desta forma, você poderá compartilhar vários cenários dependentes entre si (⪚, um cenário de "Escritório" que tenha subcenários para o "Word", "Excel", etc.).

#### Adicionar um novo cenário

Para adicionar um novo cenário, selecione o botão Adicionar. Será apresentada uma nova janela.

Adicionar um cenário

Ao criar um novo cenário, por favor dê-lhe um nome descritivo. Para o último envio para o KDE files gostaríamos de lhe pedir para seguir uma determinada nomenclatura, ainda que isto não seja de fato um requisito: [<idioma>/<modelo de base>] <nome>. Se, por exemplo, criar um cenário em Inglês que funcione com o modelo de base do Voxforge para controlar o Mozilla Firefox, isto torna-se: [EN/VF] Firefox. Se o seu cenário não for destinado especificamente a um conjunto de fonemas (modelo de base), basta omitir a segunda marca, como no exemplo a seguir: [EN] Firefox.

A versão do cenário é apenas um número de versão incremental que facilita a distinção entre as versões diferentes de um cenário.

Se o seu cenário necessitar de uma funcionalidade específica do Simon (por exemplo, porque usa um plugin novo), você poderá definir as versões mínima e máxima do Simon aqui.

A licença do seu cenário poderá ser definida através da lista. Você poderá obviamente adicionar também um texto de licença arbitrário diretamente no campo de texto.

Você poderá então adicionar o seu nome (ou apelido) à lista de autores do cenário. Então, será solicitada alguma informação de contato. Este campo é fornecido apenas como forma conveniente de contactar o autor de um determinado cenário, para pedir alterações, comunicar problemas, mensagens de fãs, &etc; Se não se sentir confortável em fornecer o seu endereço de e-mail, poderá simplesmente escrever um traço -, que demonstra que não está disposto a divulgar essa informação.

#### Editar o cenário

Para editar os cenários, basta selecionar Editar na janela para Gerenciar cenários.

A janela funciona exatamente como a janela para adicionar um cenário.

#### Exportar o cenário

Os cenários poderão ser exportados para um arquivo local, no formato de cenários em XML do Simon e serem enviados diretamente para a subseção de Cenários do Simon, na página do OpenDesktop em KDE-files.org.

Para enviar para os serviços do OpenDesktop, você precisa de uma conta no servidor. O registro é bastante simples e, obviamente, é gratuito.

O Simon permite-lhe enviar conteúdos novos diretamente a partir do Simon (Exportar > Publicar).

Assistente de envio de cenários: 1 de 4

Assistente de envio de cenários: 2 de 4

Assistente de envio de cenários: 3 de 4

Assistente de envio de cenários: 4 de 4

Para usar esta funcionalidade, basta indicar as credenciais da sua conta na configuração do ambiente social na configuração do Simon.

### Vocabulário

O módulo do vocabulário define o conjunto de palavras do cenário. Vocabulário do Simon

Por padrão, é apresentado o vocabulário ativo. Para mostrar o vocabulário-sombra, selecione a página do Vocabulário-sombra.

Cada palavra apresenta a sua taxa de reconhecimento que, no momento, é apenas um contador com o número de vezes que a palavra foi gravada (sozinha ou em conjunto com outras palavras).

Vocabulário-sombra

#### Adicionar palavras

Para adicionar palavras novas ao vocabulário ativo, use o assistente de adição de palavras.

A adição de palavras ao Simon é basicamente um procedimento em dois passos:

- Definir a palavra

- Treino inicial

##### Definir a palavra

Em primeiro lugar, é pedida ao usuário a palavra que deseja adicionar. Selecionar a palavra a adicionar

Quando o usuário passa para a página seguinte, o Simon tenta automaticamente procurar o máximo de informação possível sobre a palavra no dicionário-sombra.

Se a palavra constar no dicionário-sombra, o Simon preenche automaticamente todos os campos necessários (Categoria e Pronúncia). Campos preenchidos automaticamente pelo dicionário-sombra

Todas as sugestões do dicionário-sombra são apresentadas na tabela de Palavras semelhantes. Por padrão, só são apresentadas ocorrências exatas da palavra. Contudo, isto poderá ser alterado se assinalar a opção Incluir as palavras semelhantes abaixo da tabela de sugestões. Ao usar as palavras semelhantes, você poderá deduzir rapidamente a pronúncia correta da palavra que está tentando adicionar. Veja mais detalhes abaixo.

Obviamente, isto depende realmente do seu dicionário-sombra. Se ele não tiver a palavra que está tentando adicionar, os campos necessários terão que ser preenchidos manualmente.

Alguns dicionários que podem ser importados com o Simon (SPHINX, HTK) não fazem distinção entre maiúsculas e minúsculas. As sugestões com base nesses dicionários serão sempre em maiúsculas. Obviamente, fique à vontade para alterar essas sugestões para a capitalização correta.

Alguns dicionários que podem ser importados com o Simon (SPHINX, PLS e HTK) não contêm qualquer informação gramatical. Eles irão atribuir todas as palavras à categoria Desconhecido. Você deverá alterar isto para algo mais apropriado ao adicionar estas palavras.

###### Selecionar manualmente uma categoria

A categoria da palavra é definida como sendo a categoria gramatical a que pertence a palavra. Ela poderá ser o Noun (Substantivo), Verb (Verbo) ou categorias completamente novas como Comando. Para mais informações, veja a seção da gramática.

A lista contém todas as categorias usadas tanto pelo seu léxico ativo como pela sombra e na sua gramática.

Você poderá adicionar novas categorias à lista, usando o sinal de adição ao lado dele.

###### Fornecer manualmente a transcrição fonética

A pronúncia é um pouco mais complicada. O Simon não precisa de um certo tipo de fonética, assim você está livre para usar qualquer método, desde que use apenas caracteres ASCII e nenhum número. Contudo, se quiser usar um dicionário-sombra ao máximo, deverá usar a mesma fonética que o dicionário-sombra.

Se você não souber como transcrever você mesmo uma palavra, poderá usar facilmente o seu dicionário-sombra para ajudá-lo com a transcrição - mesmo que a palavra não conste lá. Imagine que deseja adicionar a palavra Firefox (para lançar o navegador), o que obviamente não irá constar no nosso dicionário-sombra.

(Foi importado o léxico em Inglês do Voxforge para o HTK, que está disponível no Voxforge como um dicionário-sombra.)

O Firefox não consta no nosso dicionário-sombra, assim não iremos obter qualquer sugestão. Adicionar uma palavra desconhecida

Contudo, sabemos que Firefox soa parecido com fire e fox colocados em conjunto. Assim, basta abrir o vocabulário (poderá manter o assistente aberto), selecionando o Vocabulário na sua janela principal do Simon.

Mude para o vocabulário-sombra, clicando na página Vocabulário-sombra.

Use o campo do Filtro, acima da lista, para procurar por Fire: Adicionar uma palavra desconhecida: Procurar a pronúncia

Podemos ver que a palavra Fire está transcrita como f ay r. Agora, filtre por fox em vez de Fire e poderemos ver que Fox é transcrito como f ao k s. Podemos então assumir que o Firefox poderá ser transcrito como f ay r f ao k s.

Usar esta abordagem para deduzir a pronúncia de partes da palavra tem a vantagem distinta de que não só obtemos uma transcrição de boa qualidade como também usamos automaticamente o mesmo conjunto de fonemas que outras palavras que foram recolhidas corretamente do dicionário-sombra.

Nós podemos agora inserir a pronúncia e modificar a categoria para algo apropriado. Palavra completamente definida

##### Treinar a palavra

Para completar o assistente, poderemos agora treinar a palavra duas vezes. Se não quiser fazer isso ou, por exemplo, quiser usar um modelo de base estático, poderá ignorar estas duas páginas.

Uma vez que está prestes a gravar algumas amostras de treino, o Simon irá mostrar a calibração de volume para garantir que o seu microfone está configurado corretamente. Para mais informações, veja a seção de calibração do volume

O Simon irá tentar pedir-lhe exemplos do mundo real. Para fazer isso, o Simon irá obter automaticamente estruturas gramaticais que usam a categoria da palavra e substituem as categorias genéricas com palavras de exemplo do seu léxico ativo.

Por exemplo: Você tem a estrutura gramatical Comando de Evento e tem a palavra Computador da categoria Evento no seu vocabulário. Irá então adicionar uma nova palavra Firefox da categoria Comando. O Simon irá agora tentar perguntar-lhe se Computador Firefox como está é - de acordo com a sua gramática - uma frase válida.

Se o Simon não conseguir encontrar frases apropriadas que usem a palavra (&ie;: Sem gramática, sem palavras suficientes no seu léxico ativo, &etc;), lhe será solicitado a palavra individual.

Ainda que o Simon garanta que as amostras de exemplo geradas automaticamente são válidas, você poderá sempre ignorar as sugestões dele. Basta mudar para a subpágina de Exemplos da página Definir a palavra. Exemplos de edição da palavra

Você está livre para alterar estes exemplos para tudo o que desejar. Até poderá seguir e usar palavras que ainda não constem no seu léxico ativo, desde que as adicione antes de sincronizar o modelo, ainda que isto não seja recomendado.

Tudo o que falta é gravar os exemplos. Gravando

Certifique-se de que segue as instruções apresentadas na seção de gravação.

#### Editar uma palavra

Para editar uma palavra, basta selecioná-la no vocabulário e clicar em Editar.

Editar a palavra

Aqui você poderá alterar o nome, a categoria e a pronúncia da palavra selecionada.

#### Remover uma palavra

Para remover uma palavra do seu modelo de língua, selecione-a na área do vocabulário e clique em Remover. Gravando

A janela oferece quatro opções:

- Mover a palavra para a categoria Não usada.

  Uma vez que (esperemos) você não usa a categoria Não usada na sua gramática, a palavra não será mais levada em consideração no reconhecimento. De fato, será removida do vocabulário ativo antes de compilar o model, uma vez que nenhuma frase da gramática faz referência a ela.

  Se quiser usar a categoria Não usada na sua gramática, poderá, obviamente, usar uma categoria diferente para as palavras não usadas. Basta configurar a categoria através da janela Editar a palavra.

  Para usar a palavra, basta definir a categoria correta novamente. Nenhum dado será perdido.

- Mover a palavra para o léxico-sombra

  Isto irá remover a palavra selecionada do léxico ativo (e, como tal, do reconhecimento), mas irá manter uma cópia no vocabulário-sombra. Todas as gravações que contêm a palavra serão preservadas.

  Para usar a palavra de novo, adicione-a outra vez ao vocabulário ativo. Quando adicionar uma palavra nova com o mesmo nome, os valores da palavra movida serão sugeridos. Como tal, não se perderão quaisquer dados.

- Apagar a palavra mas manter as amostras

  Remove a palavra por completo mas mantém as amostras associadas. Sempre que adicionar outra palavra com o mesmo nome de palavra, as amostras serão associadas de novo.

  Cuidado com esta opção, uma vez que a palavra nova que adicionar de novo poderá ser transcrita de forma diferente, e esta diferença não pode ser levada em conta automaticamente (o Simon irá então tentar forçar a nova transcrição sobre as gravações antigas, durante a compilação do modelo).

  Não use esta opção se as amostras que gravou para esta palavra eram erradas.

- Remover a palavra por completo

  Simplesmente remove a palavra. Todas as gravações que contêm a palavra serão também removidas.

  Esta opção não deixa qualquer vestígio sobre a palavra em si ou sobre as amostras associadas.

  Uma vez que as amostras são globais (não estão atribuídas a cenários), até as amostras guardadas nas sessões de treino de outros cenários poderão também ser removidas, caso contenham a palavra. Use esta opção com cuidado.

#### Treino especial

Por favor, veja a seção de treino especial na seção de treino.

#### Importar um dicionário

O Simon oferece a possibilidade de importar grandes dicionários como uma referência. Este dicionário de referência é chamado de dicionário-sombra.

Quando o usuário adiciona uma nova palavra ao modelo, ele terá que configurar as seguintes características para definir esta palavra:

- Nome da palavra

- Categoria

- Definição fonética

Estas características são extraídas do dicionário-sombra, caso contenha a palavra em questão. Um dicionário-sombra grande e de boa qualidade poderá ajudar o usuário a adicionar facilmente palavras novas ao modelo sem manter o registro do conjunto de fonemas ou - em muitos casos - fazê-lo até esquecer-se que a transcrição fonética seja necessária.

Importar um dicionário: Introdução

Desde a versão 0.3, você poderá também importar diretamente os dicionários para o dicionário ativo. Esta opção está aí principalmente para facilitar a transição para o Simon de soluções personalizadas e para encorajar a importação de modelos mais antigos (por exemplo, algum que tenha sido usado no Simon 0.2). Você quase nunca irá querer importar um dicionário muito grande para o dicionário ativo.

Você poderá encontrar uma lista com os dicionários disponíveis que funcionam com o Simon na Wiki do Simon.

O Simon é capaz de importar cinco tipos diferentes de dicionários:

- HADIFIX

- HTK

- PLS

- SPHINX

- Julius

##### Dicionário do HADIFIX

O Simon consegue importar dicionários do HADIFIX.

Um exemplo de dicionário do HADIFIX é o HADIFIX BOMP alemão.

Os dicionários do Hadifix fornecem tanto as categorias como a pronúncia.

Devido a uma exceção especial na sua licença, a equipe do Simon orgulha-se de lhe poder oferecer a transferência do excelente HADIFIX BOMP diretamente de dentro do Simon.

Importar um dicionário: Importação automática do BOMP

Se usar a importação automática do BOMP poderá, depois de indicar o nome e o endereço de e-mail da equipe da Universidade de Bona, transferir diretamente e importar o dicionário a partir do servidor do Simon Listens.

##### Dicionário do HTK

O Simon pode importar léxicos do HTK.

Um exemplo de um léxico do HTK é o dicionário de Inglês do Voxforge.

Os dicionários do Hadifix fornecem informações de pronúncia mas não as categorias. Todas as palavras serão associadas à categoria Desconhecida.

##### Dicionário PLS

O Simon pode importar dicionários PLS.

Um exemplo de dicionário PLS é o dicionário de alemão GPL da Voxforge.

Os dicionários PLS fornecem informações de pronúncia, mas não as categorias. Todas as palavras serão associadas ao à categoria Desconhecida.

##### Dicionário SPHINX

O Simon pode importar dicionários SPHINX.

Um exemplo de dicionário SPHINX é este dicionário de Espanhol Mexicano.

Os dicionários SPHINX fornecem informações de pronúncia, mas não as categorias. Todas as palavras serão associadas à categoria Desconhecida.

##### Dicionário Julius

O Simon pode importar dicionários Julius.

Um exemplo de vocabulários Julius são as listas de palavras do Simon 0.2.

Os dicionários Julius oferecem informação de pronúncia, assim como de categorias.

#### Criar um perfil de língua

Aqui você poderá criar um perfil de línguas a partir do seu dicionário-sombra.

Criar um perfil da língua

Após selecionar a opção Criar o perfil, o &kmyapplication; irá analisar o seu dicionário-sombra atual e irá tentar deduzir as regras de transcrição do mesmo.

Este é normalmente um processo bastante demorado e poderá, dependendo do tamanho do seu dicionário-sombra, levar muitas horas.

O perfil criado será selecionado automaticamente depois de o processo terminar.

### Gramática

O Simon oferece uma interface baseada em texto, simples de usar, para mudar a gramática. Você poderá simplesmente apresentar todas as frases permitidas (sem qualquer sinal de pontuação, obviamente), como descrito acima. Gramática

Ao selecionar uma frase à esquerda, o lado direito irá mostrar automaticamente as frases reais possíveis com as palavras do seu vocabulário à direita.

A seção de exemplo irá apresentar no máximo 35 exemplos, assim se existir mais do que esse número de frases correspondentes ao item selecionado da gramática, a lista poderá não estar completa.

#### Importar uma gramática

Adicionalmente, para indicar simplesmente a sua frase desejada da gramática, o Simon consegue deduzir automaticamente as estruturas gramaticais permitidas, lendo texto simples com o assistente para importar gramáticas. Importar a gramática

O Simon consegue ler e importar arquivos de texto, mas também oferece um campo de texto, caso queira escrever simplesmente o texto no Simon.

Imagine que tem um vocabulário como o da seção geral acima:

#### Vocabulário de exemplo melhorado

Palavra | Categoria
Computer | Evento
Internet | Comando
Mail | Comando
close | Comando

Nós queremos que o Simon reconheça a frase Computador Internet!. Para isso, iremos inserir o texto usando a opção Importar o texto ou criando um arquivo de texto simples com este conteúdo Computador Internet! (qualquer sinal de pontuação iria funcionar) e salvá-lo como `simongrammar.txt` para usar a opção Importar os arquivos. Importar a gramática: Inserir o texto Importar a gramática: Arquivo de texto Importar a gramática: Selecionar os arquivos

O Simon irá então ler o texto inserido ou todos os arquivos de texto indicados (nesse caso o único arquivo de texto passado é o `simongrammar.txt`) e procurar por todas as palavras, tanto do dicionário ativo como no dicionário-sombra (a definição no dicionário ativo tem mais importância se a palavra constar em ambos). Irá então substituir a palavra pela sua categoria.

No nosso exemplo, isto iria significar que iria encontrar a frase Computador Internet. O Simon iria concluir que o Computador é da categoria Evento e Internet é da categoria Comando. Devido a isto, o Simon iria aprender que o Evento Comando é uma frase válida e adicioná-lo à sua gramática.

A importação segmenta automaticamente o texto inserido pelos sinais de pontuação (., -, !, &etc;), assim qualquer texto natural deverá funcionar. O importador irá reunir automaticamente as estruturas de frases duplicas (mesmo entre arquivos diferentes) e adicionar as várias frases (todas as combinações possíveis) quando uma palavra tiver várias categorias atribuídas a ela.

A importação irá ignorar as frases onde uma ou mais palavras não sejam encontradas no modelo da língua, a menos que assinale a opção Também importar as frases desconhecidas onde, nesse caso, as mesmas palavras serão substituídas por Desconhecido.

#### Renomear as categorias

O assistente de mudança de nomes das categorias permite-lhe mudar os nomes das categorias, tanto no seu vocabulário ativo, no seu dicionário-sombra como na gramática. Renomear categoria

#### Mesclar categorias

O assistente de mesclagem de categorias permite-lhe juntar duas categorias numa única categorias nova, tanto no seu vocabulário ativo, como no seu dicionário-sombra e na sua gramática. Mesclar categoria

Esta funcionalidade é especialmente útil se quiser simplificar as suas estruturas gramaticais.

### Treino

Ao usar o módulo de treino, você poderá melhorar o seu modelo acústico.

A interface apresenta todos os textos de treino instalados numa tabela que consiste em três colunas:

- Nome

  Um nome descritivo para o texto.

- Páginas

  O número de páginas em que consiste o texto. Cada página representa uma gravação.

- Taxa de reconhecimento

  Análogo ao vocabulário; representa com que probabilidade o Simon irá reconhecer as palavras (quanto mais alto melhor). A taxa de reconhecimento do texto de treino é a taxa média de reconhecimento de todas as palavras no texto.

Treino

Para melhorar o modelo acústico - e assim a taxa de reconhecimento - você tem que gravar textos de treino. Isto significa que o Simon recebe essencialmente duas partes necessárias:

- Amostras da sua fala

- Transcrições dessas amostras

O dicionário ativo é usado para transcrever as palavras (associá-las da palavra real para a sua transcrição fonética) que compõem o texto, para que todas as palavras que existem nos textos de treino que deseja ler (treinar) terão que existir no seu dicionário ativo. O Simon irá avisá-lo se não for esse o caso e oferecer a possibilidade de adicionar todas as palavras faltantes de uma vez.

Treino: Aviso sobre palavras em falta

O procedimento é igual ao que seria se adicionasse uma única palavra, mas o assistente perguntará os detalhes e gravações de todas as palavras faltantes automaticamente. Este procedimento poderá ser interrompido a qualquer momento e o Simon irá fornecer uma forma de adicionar as palavras já completamente definidas e desfazer todas as alterações feitas até agora. Quando o usuário tiver adicionado todas as palavras, serão pedidas as alterações (todas as palavras faltantes), o dicionário / vocabulário ativo é gravado e o treino do texto selecionado previamente inicia automaticamente.

O treino (leitura) dos textos de treino funciona exatamente da mesma forma que o treino inicial ao adicionar uma nova palavra.

Certifique-se de que segue as instruções apresentadas na seção de gravação.

Treino em curso

#### Pastas de armazenamento

Os textos de treino são guardados em dois locais diferentes:

- Linux: `~/.kde/share/apps/simon/texts`

  Windows: `%appdata%\.kde\share\apps\simon\texts`

  Os textos do usuário atual. Poderão ser apagados e adicionados com o Simon (ver abaixo).

- Linux: ``kde4-config --prefix`/share/apps/simon/texts`

  Windows: `(pasta de instalação)\share\apps\simon\texts`

  Os textos do sistema. Irão aparecer nas contas de todos os usuários que usam o Simon nesta máquina, e não podem ser apagados dentro do Simon, devido às restrições óbvias de permissões nos arquivos do sistema.

  Esta pasta poderá ser usada pelos administradores de sistemas para fornecer um conjunto comum de treinos de texto para todos os usuários em um sistema.

Os arquivos XML (um para cada texto) poderão simplesmente ser movidos de um local para outro, porém isto irá necessitar muito provavelmente de permissões de administração.

#### Adicionar textos

O assistente de importação de textos de treino O assistente para adicionar textos oferece uma forma simples de adicionar novos textos de treino ao Simon.

Ao importar os arquivos de texto, o Simon irá tentar reconhecer automaticamente as frases individuais e dividir o texto em páginas apropriadas (gravações). O algoritmo trata o texto entre sinais de pontuação normais (., !, ?, ..., ",...) e as quebras de linha como frases. Cada frase estará na sua própria página.

O Simon suporta duas fontes diferentes para os novos textos de treino.

##### Adicionar textos de treino

Assistente de importação de textos de treino: Adicionar textos de treino Basta inserir os textos de treino num campo de texto.

##### Arquivos de texto locais

Assistente de importação de textos de treino: Arquivos de texto locais O Simon pode importar arquivos de texto normais para usá-los como textos de treino.

#### Treino instantâneo

Além dos textos de treino, o Simon também permite treinar palavras individuais ou combinações de palavras no seu dicionário de forma instantânea.

Esta funcionalidade localiza-se no menu de vocabulário do Simon.

Treino especial: Selecionar as palavras

Selecione as palavras a treinar do vocabulário à esquerda e basta arrastá-las para a lista de seleção à direita (você poderá também selecioná-las na tabela à esquerda e adicioná-las, pressionando Adicionar ao treino).

Inicie o treino, selecionando a opção Treinar as palavras selecionadas. O treino em si é exatamente igual como se fosse um texto de treino pré-composto.

Treino especial: Treinar as palavras

Se existirem mais de 9 palavras para treinar, o Simon irá dividir automaticamente o texto de maneira igual em várias páginas.

Obviamente, você está livre para adicionar palavras do léxico-sombra à lista de palavras a treinar, mas o Simon perguntará para adicionar as palavras, antes de o treino começar, como faria se você treinasse um texto que tivesse palavras desconhecidas (ver acima).

### Contexto

O &kmyapplication; inclui uma camada de contexto que permite ao Simon ajustar automaticamente a sua configuração, dependendo do seu contexto.

Por exemplo, você poderá configurar o &kmyapplication; para permitir apenas os comandos do tipo "Nova página", caso o Mozilla Firefox esteja em execução e seja a janela ativa no momento.

Existem três áreas principais que a informação de contexto poderá influenciar:

- Seleção de cenários

- Grupos de amostras

- Microfones ativos

#### Seleção de cenários

Os cenários poderão ser definidos para serem apenas ativos durante certas situações do contexto. Se essas situações não forem cumpridas, o &kmyapplication; irá desativar temporariamente o cenário afetado.

Contexto do cenário

As condições do contexto local são apresentadas na lista de Requisitos de ativação e poderão ser adicionadas, editas e removidas através dos botões respectivos.

As condições de contexto respeita uma possível hierarquia de cenários: Os requisitos de ativação de todos os cenários-pai diretos e indiretos que também se aplicam aos cenários-filhos. Esta "herança" de condições aparece do lado direito.

A janela principal do &kmyapplication; também mostra uma lista dos cenários usados no momento. Os cenários que estão desativados devido aos seus requisitos de ativação (condições de contexto) aparecem em cinza e em itálico. A imagem abaixo, por exemplo, mostra um cenário do Amarok temporariamente desativado.

Identificar os cenários desativados

As mesmas sugestões visuais (texto em cinza e itálico para os critérios de ativação não cumpridos) também se aplicam às condições de contexto individuais no menu de contexto.

#### Grupos de amostras

Todas as amostras gravadas com o Simon serão atribuídas a um grupo de amostras. Os grupos de amostras poderão ser configurados para serem usados apenas na criação dos modelos acústicos, caso certas condições de contexto sejam satisfeitas. Se não for o caso, todas as amostras marcadas com o grupo de amostras desativado serão temporariamente removidas do conteúdo de treino.

Para mais informações, um caso de uso de exemplo e instruções de como lidar com os grupos de amostras, por favor consulte a seção sobre os grupos de amostras.

#### Condições do contexto

No Simon, o contexto é vigiado através de um conjunto de plugins de condições do contexto.

De um modo geral, as condições de contexto são combinadas através de uma associação "e". Por exemplo, se a ativação do recurso for associada a duas condições A e B, só será ativada se ambas as condições A e B forem satisfeitas. Para implementar alternativas ("A ou B ou ambas"), use uma Associação de condições "Ou".

Todas as condições poderão ser invertidas opcionalmente. Se inverter uma condição, significa que esta será avaliada com verdadeira se fosse anteriormente avaliada como falsa e vice-versa.

##### Janela ativa

Verdadeira, se o título da janela atualmente em primeiro plano corresponder ao título da janela indicado.

Condição da janela ativa

##### D-Bus

O plugin da condição de D-Bus permite vigiar aplicações de terceiros que exportem a informação do estado por D-Bus.

A aplicação vigiada terá de fornecer dois métodos: um sinal para notificar as alterações e outro que devolva o estado atual.

Condição de D-Bus

A imagem acima, por exemplo, configura uma condição de D-Bus que será avaliada como verdadeira enquanto o reprodutor de músicas "Tomahawk" estiver tocando, e falsa em caso contrário.

##### Detecção de rostos

A condição de detecção de rostos será avaliada como verdadeira, se a camada de visão do &kmyapplication; tiver identificado uma pessoa sentada em frente à câmera Web configurada.

Condição de detecção de rostos

##### Conteúdo do arquivo

Este plugin de condição irá devolver verdadeiro, caso o arquivo indicado contiver o texto indicado.

O arquivo será monitorado para detectar alterações.

Condição do conteúdo do arquivo

##### Detecção de lábios

A condição de detecção de lábios será avaliada como verdadeira, se a camada de visão do &kmyapplication; tiver identificado uma pessoa sentada em frente à câmera Web configurada e falando algo (movimentos dos lábios).

Condição de detecção de lábios

O treino de detecção de lábios irá tentar determinar o valor ótimo da sensibilidade da detecção ao vigiar os movimentos dos seus lábios. Para uma melhor precisão da condição de detecção dos lábios, pare o treino quando o valor de sensibilidade da barra durante o treino se tornar quase constante.

##### Associação de condições 'ou'

A associação de condições 'ou' permite-lhe configurar uma meta-condição avaliada como verdadeira, caso uma das suas condições-filhas seja avaliada como verdadeira.

As associações de condições 'ou' poderão ter um número arbitrário de condições-filhas que poderão também elas ser associações 'ou'.

Associação de condições 'ou'

##### Processo aberto

Será satisfeita se existir um processo em execução para o nome do executável indicado.

Condição de processo aberto

### Comandos

Quando o Simon está ativo e reconhece algo, o resultado do reconhecimento é passado aos plugins de comandos carregados (na ordem) para serem processados.

Janela de comandos do Simon

O sistema de comandos poderá ser comparado a um grupo de funcionários de uma fábrica. Cada um deles sabe como efetuar uma tarefa (⪚ o Carlos sabe como iniciar um programa e o José sabe como abrir uma pasta, &etc;). Sempre que o Simon reconhecer algo que seja indicado ao Carlos, irá então verificar se esta instrução se destina a ele. Se não souber o que fazer com ela, é passada ao José e assim por diante. Se nenhum dos plugins carregados souber como processar os dados recebidos, os mesmos são ignorados. A ordem pela qual o resultado do reconhecimento é passado aos comandos individuais (pessoas) é configurável nas opções do comando (Comandos > Gerenciar os plugins).

Configuração da ação do Simon

Cada plugin poderá ser associado com um evento de ativação. Se usar os eventos, a responsabilidade de cada plugin poderá ser facilmente dividida.

Usando a abstração acima, isto poderia ser comparado com a definição do nome da entidade que deseja que processe o seu pedido. Por isso, em vez de Abrir a minha pasta pessoal, iria dizer José, abrir a minha pasta pessoal e José (o plugin responsável pela abertura de pastas) iria saber instantaneamente que o pedido é destinado a ele.

Na prática, você poderia ter comandos como o comando executável Firefox, para abrir o conhecido navegador Web e o comando de local Google para abrir o motor de busca na Web. Se atribuir o evento Iniciar ao plugin executável e o evento Abrir ao comando de local, teria de dizer Iniciar Firefox (em vez de dizer apenas Firefox, caso não tivesse nenhum evento para o plugin executável) e Abrir Google para abrir o motor de busca (em vez de apenas Google).

Os eventos, obviamente, não são nenhum requisito e você poderá usar facilmente o Simon sem definir quaisquer eventos de plugins (ainda que muitos dos plugins venham com um evento predefinido do conjunto Computador, o qual teria de remover). Mas, mesmo que use apenas um evento para todos os seus comandos (como o Computador para dizer Computador, Firefox e Computador, Google like), você terá a vantagem de reduzir em grande medida o número de falsos-positivos.

A janela de comandos mostra a frase completa, associada com um determinado comando, no canto superior direito da configuração do mesmo.

Você poderá carregar várias instâncias de um plugin, mesmo num cenário. Cada instância poderá, obviamente, ter também um evento diferente do plugin.

Cada comando tem um nome (que irá disparar a sua invocação), um ícone e mais campos, dependendo do tipo do plugin (ver abaixo).

Alguns plugins de comandos poderão oferecer uma configuração do plugin em si (não os comandos que contém). Estas páginas de configuração serão associadas diretamente à janela de configuração da ação (abaixo do item de menu Geral), quando carregar o plugin associado.

Os plugins que oferecem uma interface gráfica de usuário (como por exemplo o plugin de inserção de números) podem ser configurados através de definição de Comandos de voz. Você poderá alterar a palavra associada que irá disparar o botão, por exemplo, mas também alterar o ícone apresentado, &etc; Se remover todos os comandos da interface de voz de um elemento gráfico, esse elemento ficará oculto automaticamente.

Os comandos da interface de voz são adicionados como os comandos normais, através da configuração de comandos.

Configurar os comandos da interface de voz

Para adicionar um novo comando da interface a uma função, basta selecionar a ação que deseja associar a um comando, clique em Criar a partir de um modelo e adaptar o comando resultante às suas necessidades.

Alguns plugins (como a grade da área de trabalho ou a calculadora) também poderão oferecer um item de menu em Ações.

Comando associado à janela principal

Os cenários poderão definir opcionalmente um comando que será executado imediatamente quando o cenário for inicializado. Se você precisar executar mais de um comando automaticamente, pense em usar um comando composto. Comando de auto-execução

Os eventos de comandos poderão conter itens de substituição no formato "%<índice>", referindo-se a qualquer palavra, ou "%%<índice>" se tiver uma ou mais palavras. Por exemplo, o resultado do reconhecimento "Janela seguinte" será correspondido pelos eventos "%1 seguinte", "%%1 seguinte" e "%%1", mas não pelos eventos "%1", "Janela %1 seguinte", "Janela %%1 seguinte".

#### Comandos executáveis

Os comandos executáveis estão associados a um arquivo executável (Programa) que é iniciado quando o comando é invocado.

Comandos executáveis

São suportados argumentos para os comandos. Se a localização do executável ou os seus argumentos tiverem espaços, os mesmos precisam ser envolvidos entre aspas.

Fornecido o arquivo executável `C:\Programas\Mozilla Firefox\firefox.exe` e o arquivo HTML local `C:\arquivo teste.html`, a linha correta para o Executável seria: `"C:\Programas\Mozilla Firefox\firefox.exe" "C:\arquivo teste.html"`.

A pasta de trabalho define de onde deve ser lançado o processo. Fornecida a pasta de trabalho `C:\pasta`, o comando `"C:\Programas\Mozilla Firefox\firefox.exe" arquivo.html` faria com que o Firefox procurasse pelo arquivo `C:\pasta\arquivo.html`.

A pasta de trabalho não tem normalmente que estar definida e poderá ser deixada em branco, na maioria das ocasiões.

##### Programas de importação

Para uma configuração ainda mais simples, o Simon oferece uma janela de importação que lhe permite selecionar os programas diretamente a partir do menu do KDE.

Esta opção não está disponível no Microsoft Windows.

Importar os programas

A janela irá apresentar todos os programas que têm um item no seu menu do KDE na sua categoria respectiva.

As subcategorias não são suportadas, assim elas aparecem ao mesmo nível das categorias de topo.

Basta selecionar o programa que deseja iniciar com o Simon e clicar em Ok. Os valores corretos para o executável e para a pasta de trabalho, assim como um nome e descrição apropriados para o comando, serão preenchidos automaticamente.

#### Comandos de locais

Com os comandos de locais, você poderá permitir ao Simon abrir qualquer URL indicado. Uma vez que o Simon apenas passa o endereço ao tratamento de URLs da plataforma, os protocolos especiais como o remote:/ (no &Linux;/&kde;) ou até os Atalhos da Web do &kde; são suportados.

Em vez das pastas, os arquivos também poderão ser definidos como URL dos comandos, o que fará com que o arquivo seja aberto com a aplicação associada a ele, quando for invocado o comando.

Locais

Para associar um determinado URL com o comando, você poderá indicá-lo manualmente no campo do URL (selecione primeiro a opção Manual) ou importá-lo com o assistente de importação de locais.

##### Importar os locais

A janela de importação de locais permite-lhe criar facilmente o URL correto para o comando.

Para adicionar uma pasta local, selecione a Localização local e escolha a pasta ou arquivo com o seletor de arquivos. Importar os locais: Local

Para adicionar um URL remoto (HTTP, FTP, &etc;), escolha o URL Remoto.

Importar os locais: Remoto

Lembre-se de que para as URLs com informações de autenticação, a senha será armazenada em texto simples.

#### Comandos de atalhos

Se usar comandos de atalhos, o usuário poderá associar comandos com as combinações de teclas.

O comando irá simular a inserção de teclas pelo teclado do tipo &Ctrl;C ou &Alt;F4.

O plugin poderá pressionar, soltar ou pressionar e soltar a combinação de teclas configurada. Definir comandos de atalho

Para selecionar o atalho, você terá que simular a ativação do botão de atalho e pressionar a combinação de teclas no seu teclado real.

O Simon irá capturar o atalho e associá-lo ao comando.

Devido a limitações técnicas, existem diversos atalhos no Microsoft Windows que não podem ser capturados pelo Simon (isto inclui ⪚ o &Ctrl;&Alt;Del e o &Alt;F4). Estes atalhos especiais podem ser selecionados numa lista abaixo do botão de atalho indicado acima.

Este campo de seleção não é visível na imagem acima, porque a lista só é apresentada na versão para Microsoft Windows do Simon.

#### Comandos de macros de texto

Se usar comandos de macros de texto, o usuário poderá associar texto a um comando. Quando o comando for invocado, o texto associado será escrito como se tivesse sido inserido pelo teclado.

Definir comandos de macros de texto

#### Comandos de listas

O comando da lista é desenhado para combinar vários comandos (são suportados todos os tipos de comandos) numa lista. O usuário poderá então selecionar o n-ésimo elemento, indicando o número associado (1-9).

Isto é muito útil para limitar a quantidade de treino necessária e oferece a possibilidade de reduzir o vocabulário ao mínimo.

Definir comandos de listas

Os comandos de lista são especialmente úteis ao usar comandos com eventos ou comandos difíceis que possam estar agrupados sob um tema geral. Um exemplo típico seria um comando Menu Iniciar para apresentar uma lista de programas a iniciar. Desta forma, os comandos executáveis específicos poderiam conter ainda nomes descritivos (como OpenOffice.org Writer 3.1) sem que o usuário tenha que incluir estas palavras no seu vocabulário e as considere na gramática apenas para ativá-las.

Comandos de vários tipos poderão ser misturados, obviamente.

##### Apresentação de comandos de listas

Quando for invocado, o comando irá mostrar a lista centrada na tela. A lista expandir-se-á automaticamente para acompanhar os seus itens.

Definir comandos de listas

O usuário poderá invocar os comandos contidos na lista, indicando simplesmente o seu número associado (neste exemplo: Um para invocar o Mozilla Firefox).

Enquanto um comando de lista estiver ativo (visível), todos os dados que não sejam direcionados para a lista em si (outros comandos, &etc;) serão rejeitados. O processo pode ser cancelado se clicar no botão Cancelar ou se disser Cancelar.

Se existirem mais de 9 itens, o Simon irá adicionar as opções Seguinte e Anterior na lista (o Zero será associado ao Anterior e o Nove ao Seguinte). Comandos de listas com vários itens

##### Configurar os elementos de listas

Por padrão, o comando de lista usa as seguintes palavras de ativação. Para usar os comandos de listas no máximo do seu potencial, certifique-se de que o modelo da sua língua e modelo acústico contêm e permitem as seguintes frases:

- Zero

- Um

- Dois

- Três

- Quatro

- Cinco

- Seis

- Sete

- Oito

- Nove

- Cancelar

Obviamente, você também poderá configurar estas palavras nas suas preferências do Simon:

- Comandos > Gerenciar os plugins > Geral > Listas para a configuração da lista ao nível do cenário.

- Configurações > Configurar o Simon... > Ações > Listas para a configuração global. Ao criar um novo cenário, a configuração do cenário será inicializada com uma cópia das definições desta lista.

Os comandos de listas são também usados internamente por outros plugins, como por exemplo a grade da área de trabalho. A configuração dos eventos também afeta as suas listas apresentadas.

#### Comandos compostos

Os comandos compostos permitem ao usuário agrupar vários comandos em sequência.

Quando for invocado, os comandos serão executados na ordem. Poderão ser inseridos atrasos entre comandos.

Os comandos compostos também poderão funcionar como "interfaces transparentes", selecionando a opção Passar o resultado do reconhecimento através dos outros comandos. Nesse caso, o resultado do reconhecimento será tratado como "não-processado", mesmo que o comando composto tenha sido executado.

Por exemplo, suponha que você tem um comando para acender a luz num cenário. Além de acender a luz, você poderá querer adicionar algum tipo de relatório da atividade, invocando um programa através de um plugin de programa. Poderá então configurar um cenário de relatórios que tenha um comando composto transparente com o mesmo evento que o comando para acender a luz e certificar-se que este cenário está definido antes do original na lista de cenários. Poderá então ativar e desativar o relatório, bastando para isso carregar e descarregar este cenário.

Definir comandos compostos

Ao usar um comando composto, o usuário poderá compor macros complexas. A imagem acima - por exemplo - faz o seguinte:

- Iniciar o Kopete (Comando Executável)

- Esperar 2000ms pela inicialização do Kopete

- Digitar Marcus (Comando de Macro de Texto) que irá selecionar o 'Marcus' na minha lista de contatos

- Pressionar Enter (Comando de Atalho)

- Esperar 1000ms para que a janela de conversação apareça

- Escrever Olá! (Comando de Macro de Texto); o texto associado a este comando contém uma mudança de linha no fim, para que a mensagem seja enviada.

- Pressionar &Alt;F4 (Comando de Atalho) para fechar a janela de conversação

- Pressionar &Alt;F4 (Comando de Atalho) para fechar a janela principal do Kopete

#### Grade da área de trabalho

A grade da área de trabalho permite ao usuário controlar o seu mouse com a sua voz.

A grade da área de trabalho A grade da área de trabalho divide a tela em nove partes numeradas de 1-9. Se disser um desses números irá dividir o campo selecionado outra vez em 9 campos numerados de 1-9, &etc; Isto é repetido 3 vezes Ao fim da quarta, a grade da área de trabalho será fechada e o Simon irá clicar no meio da área selecionada.

A ação de clique é configurável, mas é perguntado ao usuário por padrão. Assim, será apresentada uma lista com os modos de clique possíveis. Ao selecionar o 'Arrastar e Soltar', a grade da área de trabalha será apresentada de novo para selecionar o ponto de destino.

Grade da área de trabalho: Seleção com o botão

Enquanto a grade da área de trabalho estiver ativa (visível), todos os dados que não sejam dirigidos para a grade em si (outros comandos, &etc;) serão rejeitados. Diga Cancelar a qualquer momento para interromper o processo.

O plugin da grade da área de trabalho registra uma tela de configuração logo na configuração do comando, quando for carregado.

Configurar a grade da área de trabalho O evento que invoca a grade da área de trabalho é, obviamente, configurável por completo. Além disso, o usuário poderá usar uma transparência real ou falsa. Se o seu ambiente gráfico suportar efeitos de composição (efeitos da área de trabalho), então você poderá usar em segurança a transparência real, o que tornará a grade da área de trabalho transparente. Se a sua plataforma não suportar a composição, o Simon irá simular a transparência, tirando uma captura de tela antes de mostrar a grade, apresentado depois a imagem por trás da grade em si.

Se a grade da área de trabalho for configurada para usar uma transparência real e o sistema não suportar a composição, ele irá mostrar um fundo em cinza liso.

Contudo, quase todos os sistemas atuais irão suportar a composição (transparência real).

Isto inclui:

- Microsoft Windows 2000 ou superior (XP, Vista, 7)

- GNU/Linux usando um gerenciador de composição como o Compiz, KWin4, xcompmgr, &etc;

Por padrão, a grade da área de trabalho usa números para selecionar os campos individuais. Para usar a grade da área de trabalho, certifique-se que o modelo acústico e da sua língua contém e permite as seguintes frases:

- Um

- Dois

- Três

- Quatro

- Cinco

- Seis

- Sete

- Oito

- Nove

- Cancelar

Para configurar estes eventos, basta configurar os comandos associados com o plugin.

Grade da área de trabalho: Configurar os elementos de listas

#### Número inserido

Ao usar o plugin de inserção de números, o usuário poderá escrever números grandes facilmente.

Se usar o plugin de ditados ou de macros de texto, uma pessoa poderá associar os números aos seus algarismos e usar isso como método de inserção. Contudo, para introduzir números maiores, existem duas formas que têm ambas desvantagens significativas:

- Adicionar as palavras onze, doze, &etc;

  Embora esta pareça a solução mais elegante, uma vez que permitiria ao usuário dizer quinhentosesetentaedois, podemos ver facilmente que seria um grande problema adicionar todas estas palavras, quanto mais treiná-las. Então e doismilnovecentosedois? Onde é que iria parar?

- Pronuncie o número com os algarismos individuais

  Embora isto não seja tão elegante como dizer o número completo, é muito mais prático.

  Contudo, muitas aplicações (como a ótima extensão do Firefox para navegar sem mouse) baseiam-se na necessidade de o usuário introduzir números enormes sem que tenham muito tempo entre as teclas individuais (a navegação sem mouse, por exemplo, irá esperar exatamente 500ms antes de considerar a inserção do número completa). Por isso, se quiser dizer 52 deveria dizer primeiro Cinco (pausa) Dois. Devido à pausa necessária, a aplicação (como o plugin de navegação sem mouse) iria considerar a inserção do Cinco como a completa.

O plugin de inserção de números - quando ativado - apresenta uma interface semelhante a uma calculadora para inserir um número. A inserção poderá ser corrigida se disser Voltar. Contém um ponto decimal acessível se disser Vírgula. Ao dizer Ok, o número será então escrito. Como em outras situações, a inserção de falas e a correção é tratada pelo plugin em si; a aplicação que irá receber os dados finais só terá alguns milissegundos entre os algarismos individuais. Plugin de inserção de números

Enquanto um plugin de inserção de números estiver ativo (visível), todos os dados que não sejam direcionados para a lista em si (outros comandos, &etc;) serão rejeitados. Diga Cancelar a qualquer momento para interromper o processo.

Como não podem ser criadas instância de comandos deste plugin, não aparece na janela de Novo comando. Contudo, o plugin de inserção de números registra uma tela de configuração à direita da configuração do comando, quando é carregado.

Plugin de inserção de números

O evento define qual a palavra ou frase que irá disparar a apresentação da interface.

Por padrão, o plugin de inserção de números usa os números para selecionar os algarismos individuais e algumas palavras de controle. Para usar o plugin de inserção de números, certifique-se que o seu modelo acústico e linguístico contém e permite as seguintes frases:

- Zero

- Um

- Dois

- Três

- Quatro

- Cinco

- Seis

- Sete

- Oito

- Nove

- Voltar

- Vírgula

- Ok

- Cancelar

Para configurar estes eventos, basta configurar os comandos associados com o plugin.

Plugin de inserção de números

#### Ditados

O plugin de ditados escreve o resultado reconhecido por ele, usando um teclado simulado.

Assumindo que você não definiu nenhum evento para o plugin de ditados, ele irá aceitar todos os resultados do reconhecimento e simplesmente irá escrevê-los. O resultado escrito será considerado texto inserido processado e não será assim encaminhado para outros plugins. Isto significa que, se tiver carregado o plugin de ditados e não tiver definido nenhum evento para ele, todos os plugins abaixo dele nos Plugins selecionados, na configuração do comando, não irão receber nenhum dado.

Como não podem ser criadas instância de comandos deste plugin, ele não aparece na janela de Novo comando.

O plugin de ditados poderá ser configurado para adicionar textos após os resultados do reconhecimento para, por exemplo, adicionar um espaço após cada palavra reconhecida.

Configurar os ditados

#### Inteligência artificial

A Inteligência artificial é um plugin apenas de entretenimento que emula uma conversa humana.

Usando o sistema de texto-para-fala, o computador pode falar com o usuário.

O plugin usa os AIMLs para a inteligência real. A maioria dos conjuntos do AIML deverão ser suportados. O conhecido 'bot' A. L. I. C. E. e uma versão em alemão do mesmo funcionam e são fornecidos com o plugin.

Plugin de IA

O plugin registra um tela de configuração na configuração do comando, onde poderá escolher qual o conjunto AIML carregar.

O Simon irá procurar pelos conjuntos de AIML na seguinte pasta:

- GNU/Linux: ``kde4-config --prefix`/share/apps/ai/aimls/`

- Microsoft Windows: `[pasta de instalação (C:\Program Files\simon 0.2\ por padrão)]\share\apps\ai\aimls\`

Para adicionar um novo conjunto, basta criar uma nova pasta com um nome descritivo e copiar os arquivos '.aiml' para ela.

Para ajustar a personalidade do seu 'robot', dê uma olhada nos arquivos 'bot.xml' e 'vars.xml' na seguinte pasta:

- GNU/Linux: ``kde4-config --prefix`/share/apps/ai/util/`

- Microsoft Windows: `[pasta de instalação (C:\Programas\simon 0.2\ por padrão)]\share\apps\ai\util\`

Como não podem ser criadas instância de comandos deste plugin, ele não aparece na janela de Novo comando.

É recomendável que não use nenhum evento de ativação para este plugin para dar uma sensação mais natural para a conversa.

#### Calculadora

O plugin da calculadora é uma calculadora simples e controlada pela voz.

Plugin da calculadora

A calculadora estende o de Inserção de números, oferecendo algumas funcionalidades adicionais.

Ao carregar o plugin, é adicionado uma tela de configuração para as definições do plugin.

Plugin da calculadora: Configuração

Aqui você poderá também configurar o modo de controle da calculadora. A configuração do modo com algo que não seja Calculadora completa irá ocultar as opções do elemento apresentado.

Plugin da calculadora: Minimalista

Contudo, os controles ocultos irão, ao invés de remover apenas todos os comandos associados das funções, continuar a reagir aos comandos de voz configurados.

Ao selecionar o OK, a calculadora irá perguntar por padrão o que deseja fazer com o resultado gerado. Você poderá, por exemplo, apresentar o cálculo, o resultado, ambos, &etc; Além de selecionar sempre isto na lista apresentada, depois de selecionar o botão OK, isto também poderá ser definido nas opções de configuração.

Plugin da calculadora: Seleção do modo do resultado

#### Filtro

Ao usar o plugin do filtro, você poderá interceptar os resultados do reconhecimento antes de serem passados aos outros plugins de comandos. Se usar este plugin, poderá por exemplo desativar o reconhecimento com a voz.

O plugin de comandos de filtragem registra uma tela de configuração na configuração do comando, onde poderá alterar quais os resultados que deverão ser filtrados.

Plugin de filtragem: Configuração

O padrão é uma expressão regular que será avaliada cada vez que os resultados de reconhecimento recebe o plugin para processar.

O plugin também registra alguns comandos de interface de voz para ativar e desativar o filtro.

No total, o filtro possui três estados:

- Inativo

  O estado padrão. Todos os resultados de reconhecimento serão passados adiante.

- Meio-ativa (se a Ativação por duas fases estiver selecionada)

  - Se o comando seguinte for o "Desativar o filtro", o filtro irá entrar num estado "Inativo".

  - Se, contudo, o resultado seguinte for algo diferente e a opção Comutar os resultados na 1ª etapa da ativação de duas fases estiver selecionada, este resultado será passado para os outros plugins. O filtro irá voltar para "Ativo" depois.

- Ativo

  Quando estiver ativo, o filtro irá comer todos os resultados que correspondam ao padrão configurado. Por padrão, isto significa que todos os resultados que o Simon reconhecer serão aceitos pelo filtro e não serão reencaminhados para nenhum dos plugins que seguem o filtro do plugin.

  Se a opção Ativação em duas fases estiver ativa e o plugin do filtro receber o comando para entrar diretamente no estado "Inativo", este comando é ignorado. Por outras palavras: Se a ativação em duas fases estiver em funcionamento, o filtro só poderá ser desativado através da etapa intermediária.

#### Treino da pronúncia

O treino da pronúncia, quando usado em conjunto com um bom modelo de base estático, poderá ser uma ferramenta poderosa para melhorar a sua pronúncia para uma nova língua.

Treino da pronúncia

Essencialmente, o plugin pedirá para dizer palavras específicas. O reconhecimento irá então reconhecer a sua pronúncia da palavra e compará-la com o seu modelo de fala, que deverá ser um modelo de base de locutores nativos, para isto funcionar corretamente. Aí, o Simon irá mostrar a taxa de reconhecimento (quão semelhante foi a sua versão face ao modelo de base guardado).

Quanto mais próximo do locutor nativo, mais alta a pontuação.

O plugin adiciona um item para o seu menu Comandos para invocar a janela de treino da pronúncia.

O treino em si consiste em várias páginas. Cada página contém uma palavra obtida a partir do seu vocabulário ativo. Estas são identificadas por uma categoria, que precisa ser selecionada na configuração do comando, antes de iniciar o treino.

Treino da pronúncia: Configuração

#### Teclado

O plugin de teclado mostra um teclado virtual e controlado pela voz.

Teclado

O teclado consiste em várias páginas, contendo cada uma delas várias teclas. O total de páginas e teclas é recolhido em conjuntos.

Você poderá selecionar os conjuntos na configuração mas também poderá criar novos a partir do zero, na configuração de comandos do teclado.

Teclado: Configuração

As teclas são normalmente associadas a caracteres individuais, mas poderão também conter textos compridos e até atalhos. Devido a isto, os conjuntos de teclado poderão conter teclas especiais como o Selecionar tudo ou a tecla da Senha (que escreve a sua senha).

Ao lado das páginas que contêm as teclas do seu conjunto, o teclado também poderá mostrar as teclas especiais como o &Ctrl;, &Shift;, &etc; Essas teclas são fornecidas como comandos da interface de voz e são apresentados independentemente de qual das páginas do conjunto é que está ativa no momento.

Como acontece com todos os eventos de voz, se remover o comando associado, irá esconder também os botões.

Além disso, o teclado oferece um teclado numérico que pode ser apresentado se selecionar a opção apropriada na configuração do teclado.

Teclado: Teclado numérico

Ao lado das teclas numéricas e da tecla para apagar do campo de inserção de números ('Backspace' do número), o teclado numérico oferece duas opções para definir o que fazer com o número inserido.

Ao selecionar Escrever um número, o número inserido será escrito com teclas simuladas. Se escolher Selecionar o número, irá tentar descobrir uma tecla ou página no conjunto ativo que tenha este número como evento. Desta forma, você poderá controlar um teclado completo apenas com números.

Teclado: Baseado em números

As teclas do teclado numérico são comandos da interface de voz configuráveis.

#### Janela

O plugin da janela permite aos usuários entrarem em um diálogo programado com o &kmyapplication;.

##### Desenho da janela

O &kmyapplication; trata as janelas como uma sucessão de estados. Cada estado poderá possuir um texto e várias opções associadas.

Desenho da janela

As janelas poderão ter mais de uma variante de texto - uma que será escolhida aleatoriamente quando a janela for apresentada. Isto poderá ajudar a tornar as janelas mais naturais, fornecendo formulações alternativas.

Os textos poderão usar os valores associados e as opções do modelo.

Desenho de janelas: Opções

As opções das janelas encapsulam a lógica da conversação. Estas são os componentes ativos da janela.

Desenho de janelas: Adicionar uma opção

De forma semelhante aos comandos, as opções das janelas têm um nome (evento) que, quando for reconhecido enquanto a janela estiver ativa e no estado-pai da opção, fará com que esta opção se ative. Em alternativa, as opções também poderão ser configuradas para disparar automaticamente ao fim de um determinado período de tempo. Este tempo é relativo a quando se entrou no estado.

As opções da janela, quando apresentadas através do módulo de resultado gráfico, poderão mostrar um texto arbitrário (que será equivalente ao evento, mas não obrigatoriamente) e, opcionalmente, um ícone. Se o módulo de texto-para-fala for usado, o texto (não o evento) será lido em voz alta, a menos que isto esteja desativado com a opção Silenciar.

Todos os estados poderão também ter opcionalmente um avatar que será apresentado quando usar o módulo de resultado gráfico.

Desenho de janelas: Avatar

##### Janela: Valores associados

O texto dos estados das janelas poderá ter variáveis - chamadas de "valores associados" - que serão preenchidos durante a execução.

Por exemplo, o texto da janela "Isto é uma $variavel$" iria substituir "$variavel$" pelo resultado de um valor associado chamado "variavel".

Valores associados

Existem quatro tipos de valores associados:

- Estático

  Valores associados: Estático

  Os valores associados estáticos serão sempre resolvidos para o mesmo texto. Estes são úteis para fornecer opções de configuração preenchidas para personalizar a janela (⪚, o nome do usuário).

- QtScript

  Valores associados: QtScript

  Os valores associados em QtScript são resolvidos com o resultado do código em QtScript introduzido.

- Argumentos de comando

  Valores associados: Argumentos do comando

  Se o comando de ativação da janela (o comando do &kmyapplication; que inicia a janela) usar itens de substituição, estes poderão ser acessados através dos valores associados aos argumentos dos comandos. O número do Argumento define a posição do item de substituição que deseja acessar.

  Por exemplo, se a sua janela começar pelo comando "Chamar %1", e o "nome" for um valor associado como argumento do comando, então a invocação da janela com o reconhecimento de "Chamar Pedro", iria tornar o texto "Tem certeza de que deseja chamar $nome$?" em "Tem certeza de que deseja chamar Pedro?".

- Mecanismo de dados do Plasma

  Valores associados: Mecanismo de dados do Plasma

  Este tipo de valor associado poderá acessar diretamente a uma gama elevada de informações de alto nível através dos mecanismos de dados do Plasma.

##### Opções do modelo

Os textos das janelas poderão ainda ser mais parametrizados através das opções do modelo.

Opções do modelo

Estes valores booleanos poderão escolher entre trechos de texto diferentes ou opcionais.

Por exemplo a opção do modelo "formal" acima, iria alterar o texto da janela "Por favor {{{formal}}poderia calar-se{{elseformal}}cale-se{{endformal}}" para "Por favor poderia calar-se" ou "Por favor cale-se" dependendo se a opção do modelo está definida como verdadeira ou falsa. O caminho alternativo ('else') poderá ser omitido se não for obrigatório (⪚ "Poderia {{formal}}por favor{{endformal}}calar-se").

##### Avatares

Cada estado poderá mostrar potencialmente um avatar diferente.

Estas imagens poderão ir desde a imagem de um locutor (simulado) até à imagem de algo apropriado para o tópico.

Janela: Avatares

Para usar um avatar, primeiro adicione-o e depois defina onde usá-lo na seção de desenho da janela.

##### Resultado

As janelas poderão ser apresentadas de forma gráfica, usarem texto-para-fala ou combinarem ambas as abordagens.

Janela: Resultado

O Separador das opções será falado entre o texto da janela e as opções do estado atual (se existirem). Se não existirem opções neste estado ou todas estiverem configuradas como silenciosas, as mesmas não serão faladas. A opção para escutar todo o anúncio de novo é dispara quando se disser um dos eventos em Repetir no evento. Além disso, o resultado do texto-para-fala poderá ser configurado opcionalmente para repetir a listagens das opções disponíveis (incluindo o separador configurado) quando o usuário disser um comando que não corresponda a nenhuma das opções da janela.

#### Akonadi

O plugin do Akonadi permite ao &kmyapplication; ligar-se à infraestrutura de PIM do KDE.

Configuração do comando do Akonadi

O plugin cumpre dois objetivos principais:

- Executar os comandos do Simon em horas agendadas

  O plugin do Akonadi pode vigiar uma dada coleção (calendário) e reagir aos itens cujo resumo comece por um determinado prefixo. Por padrão, este prefixo é "[simon-command]", o que significa que os eventos no formato "[simon-command] <nome do plugin>//<nome do comando>" irão ativar o comando apropriado do &kmyapplication; na "hora de início" do evento.

  O nome dos plugins e comandos é equivalente aos que são apresentados na janela de comandos e não precisam necessariamente de referenciar os comandos no mesmo cenário que a instância do plugin do Akonadi.

- Mostrar lembretes para os eventos no calendário indicado

  Se for configurado para isso, o plugin do Akonadi poderá mostrar os lembretes para os eventos do calendário com uma marcação de alarme. Estes lembretes serão apresentados através do motor de janelas do &kmyapplication;.

#### D-Bus

Com o plugin de comandos D-Bus, o Simon poderá carregar diretamente os métodos exportados pelos aplicativos de terceiros.

A imagem abaixo, por exemplo, invoca o método "Pause" da interface de MPRIS do leitor de música por 'software' Tomahawk.

Comando de D-Bus

#### JSON

Semelhante ao plugin de comandos por D-Bus, o plugin de JSON também permite contactar as aplicações de terceiros para invocar diretamente as funcionalidades (em vez de simular a atividade do usuário).

Comando de JSON

#### VRPN

Com o plugin de comandos VRPN, o Simon pode funcionar como um servidor VRPN e exportar os botões controlados por voz.

Configuração do plugin VRPN

A configuração do plugin permite-lhe definir a porta em que o servidor deveria operar e definir uma lista arbitrária de botões. Cada um desses objetos de botões terá exatamente um "botão" (no VRPN, um botão pode, em teoria, ter mais que um elemento clicável).

Depois de configurar os botões, você poderá configurar os comandos do Simon para funcionar sobre eles. Poderá definir os comandos Pressionar e Soltar (consecutivamente), Pressionar, Soltar ou Alternar o botão que manipulam.

Configuração do comando VRPN

Por exemplo, o comando apresentado na imagem acima iria pressionar e soltar ("clicar") o botão VRPN no índice 0 do dispositivo de botões que está acessível em "BotaoB@localhost".

## Perguntas e respostas

Num esforço para manter esta seção sempre atualizada, a mesma está disponível na nossa Wiki online.

## Créditos e licença

&kmyapplication;

Direitos autorais do programa 2006-2009 de Peter Grasch peter.grasch@bedahr.org, Phillip Goriup, Tschernegg Susanne, Bettina Sturmann, Martin Gigerl

Direitos autorais da documentação © 2009 de Peter Grasch peter.grasch@bedahr.org

Tradução de Marcus Gama marcus.gama@gmail.com

&underFDL; &underGPL;

## Instalação

Por favor, veja a nossa wiki para obter instruções de instalação.

&documentation.index;