The CVoiceControl Handbook: Questions and Answers

Next Previous Contents

## 5. Questions and Answers

Summary:

Q: What will happen to KVoiceControl?

Q: Can I use KVoiceControl speaker models with CVoiceControl?

Q: CVoiceControl rejects too many utterances. What can I do?

Q: How can I make sure my sound card and sound driver work properly?

Q: Configure, make and make install work fine, but when I try to launch microphone_config it just exits with `Segmentation Fault`. What can I do?

> `

> `

Q: What will happen to KVoiceControl?

A: Many people asked me for a console based version of KVoiceControl. These people want to be able to use speech recognition without having to run the KDE desktop environment or even X windows. That's why I created CVoiceControl. Further development will therefore be concentrated on CVoiceControl. Nevertheless, the latest version of KVoiceControl can still be downloaded from http://www.kiecza.de/daniel/.

Q: Can I use KVoiceControl speaker models with CVoiceControl?

A: In general, yes. On http://www.kiecza.de/daniel/ you can find a tool (`kvc2cvc`) to convert KVoiceControl speaker models to CvoiceControl speaker models. Important: The microphone calibration tools in the two programs differ from each other! This may lead to different recording results and therefore KVoiceControl speaker models may prove unusable in CVoiceControl. Nevertheless, you can convert the speaker model using the tool mentioned above, and give it a try...

Q: CVoiceControl rejects too many utterances. What can I do?

A: Most likely this happens because the recognition score threshold is too small. You can adjust this threshold in the configuration file `config` in the directory `.cvoicecontrol` below your home directory. Increase the score threshold value by about 5 to 10 (you have to play with it). Increasing the value too much will decrease recognition speed and also recognition performance!

Q: How can I make sure my sound card and sound driver work properly?

A: A quick and easy check is to type the following command at a command prompt:

> `

>       cat /dev/sndstat

> `

If you see something like

> `

>       cat: /dev/sndstat: Operation not supported by device

> `

then your sound card is definitively not installed properly!

Output similar to the following indicates that the sound card should work:

> `

>       Card config:
>       Yamaha OPL3-SAx at 0x530 irq 7 drq 0,1
>       OPL3-SA MIDI at 0x330 irq 5
>       OPL-2/OPL-3 FM at 0x388

>       Audio devices:
>       0: MS Sound System (CS4231) (DUPLEX)
>       1: Shadow of audio device #0 (DUPLEX)

>       Synth devices:
>       0: Yamaha OPL-3

>       Midi devices:
>       0: OPL3-SA (MPU401)

>       Timers:
>       0: System clock
>       1: MS Sound System (CS4231)

>       Mixers:
>       0: MS Sound System (CS4231)

> `

Then, to make sure that your microphone (make sure you HAVE one and that it is connected in the right place) is functioning you can use the following method to retrieve a quick recording. Please see section Sound Recording for information about accessing the microphone device.

Start the recording at a command prompt by typing:

> `

>       dd if=/dev/dspW of=/tmp/example.raw bs=8192 count=100

> `

Let the recording run for a few seconds then interrupt by pressing Ctrl-c. Now you can play the recorded stuff on the audio device by typing

> `

>       cat /tmp/example.raw > /dev/dspW

> `

If you can hear what you expected your microphone works fine. If not, oops! (contact me)

Q: Configure, make and make install work fine, but when I try to launch microphone_config it just exits with `Segmentation Fault`. What can I do?

A: Most probably a wrong version of the NCurses library is loaded at runtime. Microphone_config is compiled with version 5 of NCurses. The following instructions may help to solve this problem. Open a console and type:

> `

>       % ldd microphone_config

> `

The output should look similar to the following (I marked the interesting line with an arrow):

> `

>         libm.so.6 => /lib/libm.so.6 (0x40017000)
>     ->  libncurses.so.5 => /lib/libncurses.so.5 (0x40034000)
>         libc.so.6 => /lib/libc.so.6 (0x40072000)
>         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

> `

If the libncurses related entry in this list does not end in `.so.5` you basically need to correct the symbolic link `libncurses.so` to point to the correct version of the library. First, find the symbolic link (I marked the interesting lines in the output):

> `

>         % ldconfig -p | grep libncurses

>     (1) libncurses.so.5 (libc6) => /lib/libncurses.so.5
>         libncurses.so.4 (libc6) => /lib/libncurses.so.4
>     (2) libncurses.so (libc6) => /usr/lib/libncurses.so

> `

We see from `(2)` that the link is located in `/usr/lib` and from `(1)` we see that version 5 of the library is located in `/lib`. Now, let us make the link point to the right version of `libncurses`:

> `

>         % cd /usr/lib
>         % rm -f libncurses.so
>         % ln -s /lib/libncurses.so.5 libncurses.so
>         % ldconfig

> `

Microphone_config should work ok now. Hint: If you are unsure about what you are doing here, please consult a Unix expert about it. You don't want to mess with the libraries!

Next Previous Contents