Starting the WebSpeechToText Service

There are two ways to start the WebSpeechToText service.

The simplest method is to launch the service directly with the WebSpeechToText.exe file from the folder where it was extracted. However, this approach may be less reliable in the event of abnormal startup conditions, especially during the first launch. If the service fails to start, you can check the log file at the following location: C:\ProgramData\Cinegy\WebSpeechtotext

Alternatively, you can start the service using the Windows terminal. Although this method requires additional steps, it provides full visibility into the process and allows better control over service behavior. So, using the terminal is recommended for initial setup and troubleshooting.

To start the service via terminal, follow these steps:

1. Open the Windows terminal

Press Win+R and type cmd in the Run window. Then press Enter.

2. Navigate to the WebSpeechtotext application folder

In the Windows terminal, type the following command:

cd [path to the folder where the WebSpeechtotext service files are extracted]

Press Enter.

For example: cd C:\WebSpeechtotext

3. Run the application executable

In the Windows terminal, type the following command:

WebSpeechtotext.exe

Press Enter.

4. Allow network access if prompted

If prompted by Windows Firewall, allow the application to access the network to ensure it can function properly.

Result

Following is an example of the Terminal output:

Runtime Identifier: win-x64
OS Description: Microsoft Windows 10.0.19045
Working folder [C:\WebSpeechtotext\]
Log folder [C:\ProgramData\Cinegy\WebSpeechtotext]
2025-05-23 13:08:17.2943 (INFO)     Program              LOCAL IP: "List of interfaces. Like this: [192.168.0.2] [127.0.0.1]"
2025-05-23 13:08:17.3142 (INFO)     Core                 Settings: Set model path ["./models"]
2025-05-23 13:08:17.3142 (INFO)     Core                 Settings: Set model name ["ggml-large-v3.bin"]+
2025-05-23 13:08:17.4701 (INFO)     Program              Run test...
2025-05-23 13:08:17.7021 (DEBUG)    Core                 Library loaded successfully
2025-05-23 13:08:17.7021 (DEBUG)    Core                 Create(empty)...
2025-05-23 13:08:17.7483 (DEBUG)    Core                 Whisper Wrapper created.
2025-05-23 13:08:17.7483 (DEBUG)    Core                 Destroy Whisper Wrapper [NULL]
2025-05-23 13:08:17.7483 (INFO)     Program              End test. Ok
2025-05-23 13:08:19.9013 (INFO)     Lifetime             Now listening on: http://[::]:55000
2025-05-23 13:08:19.9372 (INFO)     Lifetime             Application started. Press Ctrl+C to shut down.
2025-05-23 13:08:19.9674 (INFO)     Lifetime             Hosting environment: Release
2025-05-23 13:08:19.9674 (INFO)     Lifetime             Content root path: C:\WebSpeechtotext
2025-05-23 13:08:20.9657 (INFO)     SpeechToTextControll Observer connect [::1]
2025-05-23 13:08:20.9675 (INFO)     Core                 Startup model settings ["C:\WebSpeechtotext\models\ggml-large-v3.bin"]
2025-05-23 13:08:20.9675 (DEBUG)    Core                 Create...
2025-05-23 13:08:20.9675 (DEBUG)    Core                 Whisper Wrapper created.

At this point, the WebSpeechtotext service is running and ready to accept requests.

WebSpeechtotext Default Settings

The appsettings.json and appsettings.Production.json configuration files are provided with the WebSpeechtotext installation package. They contain a basic set of values that must be adjusted for your environment before the initial launch of the WebSpeechtotext service.

Below is a version of the appsettings.json configuration file with some example values:

{
  "override_keys": {
    "model_search_path": "./models",
    "model_name": "ggml-large-v3.bin",
    "timeout_ms" : 0
  }
}

The model_search_path parameter defines the directory path where the speech recognition models are located. You can use a relative or absolute path.

The model_name parameter defines the filename of a model that will be used for speech recognition.

The timeout_ms parameter specifies a processing timeout in milliseconds. When "0" is defined, it means no timeout. This feature is considered experimental.

Below is a version of the appsettings.Production.json configuration file with some example values:

  "AllowedHosts": "*",
  "Kestrel": {
    "Endpoints": {
      "Http": {
        "Url": "http://*:55000"
      }
    }
  }

The AllowedHosts parameter controls which hosts are allowed to connect. Here, * means that all hosts are allowed.

The Kestrel parameter defines the configuration for the Kestrel web server that hosts the application.

The Endpoints parameter defines network endpoints, while Http – HTTP endpoint configuration.

The Url parameter defines IP_Address:Port to establish a TCP connection with the Cinegy Subtitling Service.

In the default configuration, the WebSpeechtotext service listens on port 55000 on all network interfaces. Please make sure that the port defined here is the same as you defined for the Endpoint parameter in the "RecognitionSource" section in the Cinegy Subtitling Service configuration.