# The &kmyapplication; Handbook

## Introduction

&kmyapplication; is the server component of the Simon speech recognition suite. It handles the recognition and the model compilation and receives it input from the Simon client(s) which connect to the server using TCP/IP.

For more information please see the Simon manual.

## Using &kmyapplication;

Simond is a command line application which does not have any user interface. There are no special launch parameters.

However, Simond installs a KCM that is listed in KDEs systemsettings and can also be accessed directly using the `kcmshell4`:

- `kcmshell4 simondconfiguration`

Because Simond compiles the speech model (if instructed to do so by the Simon client(s)), the configuration of the speech model compilation is of course also relevant when administrating Simond. You can open it by using `kcmshell4`:

- `kcmshell4 simonmodelcompilationconfig`

When used from within a graphical environment (if you don't know what this is you are most likely using one), it is recommended to use the graphical frontend called `ksimond` which also provides access to the configuration modules through its configuration dialog. See the KSimond manual for details.

### User Configuration

Using the user configuration you can define, edit and remove users and their models from the server.

Screenshot of the Simond user configuration Simond user configuration

Simond identifies its connections with a user / password combination which is completely independent from the underlying operating system and its users (which means you have to have at least one Simond user set up to use it). Every Simon client logs onto the server with a user / password combination which identifies a unique user and thus a unique speech model.

The users are stored in a sqlite database that is managed through the `simonduserconfiguration` KCM.

This database is stored depending on your operating system:

### Simond user database storage

Microsoft Windows | GNU/Linux
`%appdata%\.kde\share\apps\simond\simond.db` | `~/.kde/share/apps/simond/simond.db`

Simond does come with a default user so you don't have to add a user before you can connect Simon to the Simond server.

The default user name is "default" and the password is "nopassword".

The password of the users will be hashed and cannot be shown in cleartext. When a user forgets his or her password there is no way to retrieve the original password from the Simond database but you can reset it using the "Change Password" button.

When removing a user from the database which already has a speech model associated with him, you will be prompted if you also want to remove the model. If you select no and add a user with the same name later on, he will start off with this speech model.

When selecting the Keep recognition samples option the samples the recognition works on are not deleted. This means that during normal operation, users will gather everything they say with the most likely transcription returned by &kmyapplication;. This can be used to automatically gather training data while using Simon. The samples will be stored in different locations depending on your operation system:

### Simond recognition sample storage

Microsoft Windows | GNU/Linux
`%appdata%\.kde\share\apps\simond\models\(user)\recognitionsamples` | `~/.kde/share/apps/simond/models/(user)/recognitionsamples`

When multiple clients connect to Simond with the same username simultaneously, they will use a joint recognition instance. In practice, this means that multiple clients can provide audio data (multiple microphones) and all connected clients with the same username will receive all results of this data. To avoid this behavior and instead force separate recognition paths, activate Isolated Mode.

### Network Configuration

Using the network configuration, the user can change the port used by the server and restrict access to a specific IP.

If you don't know what hosts, ports or IPs are it is very likely that the default values are just fine.

screenshot of the Simond network configuration Simond network configuration

The port can be changed freely. The default of 4444 is however not occupied by any major application or protocol and thus recommended. If you adjust the port here, make sure you also make the necessary adjustments on your Simon clients.

Using the option to "Only allow connections from" you can restrict the access to your server from anywhere but the given IP address. By default this is configured to only allow (Simon) connections from the local host which only allows for local Simon clients to connect to the server.

This is simply a security measure because it effectively blocks connections from anywhere else (even if the attacker knows your Simon username and password). To allow connections from other hosts simply uncheck the checkbox.

Furthermore, write access can be restricted to a specific host. This allows to run "public" servers, where users can connect and use the recognition but are not allowed to initiate any form of synchronization.

Protocol encryption is not yet implemented.

### Speech Model Compilation Configuration

Simon compiles the speech model by utilizing external software.

While Simon will find the needed executables automatically if they are in your systems path, you can also override those automatic values in this configuration page.

Here you can also change the selected recognition backend in case of user generated models. Depending on your Simon installation, not all backends might be available.

Screenshot of the speech model compilation configuration Simond speech model configuration

## Questions and Answers

In an effort to keep this section always up-to-date it is available at our online wiki.

## Credits and License

&kmyapplication;

Program copyright 2008-2012 Peter Grasch peter.grasch@bedahr.org

Documentation Copyright © 2009-2012 Peter Grasch peter.grasch@bedahr.org

&underFDL; &underGPL;

## Installation

Please see our wiki for install instructions.

&documentation.index;