KiRAT - Kiel Real-time Application Toolkit

Structure of KiRAT

What is KiRAT?

Since 2010 the DSS-Group is developing KiRAT, this is an acronym that stands for Kiel Real-time Application Toolkit. First, it was made for audio and speech signal processing. Meanwhile, it also supports medical and underwater applications. The idea of KiRAT is to share common signal processing modules to benefit from each other. This enables a fast development, optimization, and evaluation of new real-time algorithms.

What is a report?

A report can consolidate various analyses from a study or experiment. It can display metadata associated with the examination or…

A report can consolidate various analyses from a study or experiment. It can display metadata associated with the examination or measurement, as well as extracted features. Additionally, it can plot different signals to visualize data. The primary purpose of this report is to summarize findings and store them in an organized manner. Furthermore, it can be customized to suit specific application needs. It can be exported as a PDF for a print-ready format or as an HTML for interactive online viewing. Additionally, raw data can be stored. It is important to notice that this has to be implemented directly in the code.

Posted 4 months agoby mmat

How to configure a survey?

Surveys Surveys are divided into two sections. On the one hand, welcome pages can be defined which are shown before…
Surveys
Surveys are divided into two sections. On the one hand, welcome pages can be defined which are shown before the actual tests start. These can request answers for the user. Subsequent queries are implemented as actual survey options as patient survey. Both variants are configured similarly.
The following parameters can be adjusted in the corresponding area of the config: First you have to specify whether the respective section is to be used and how many questions belong in the corresponding section.
%---------------------------------------------------------
% Welcome Page
%---------------------------------------------------------

bEnableWelcomePages = true
iNumWelcomePages = 39

%---------------------------------------------------------
% Patient survey
%---------------------------------------------------------

bSurveyenabled = true
iNumofQuestions = 0

The following configuration options are only shown on the basis of the welcome pages. The same options are available for the general patient survey. Each question can be displayed and linked with the help of an HTML page:
%--- Welcome page no. : 0

cHtmlLinkWelcome_0 = "C:/dss_kirat_config/objective_speech_analysis/patient_survey/html/welcome.html"

A keyword can be defined for each question. This can be used in a later summary of the answers to identify which question was asked. It should therefore clearly represent the question. This can be defined by the user himself in the config:

cHtmlKeywordWelcome_0 = "Nutzung Stimme"
bWelcomePageAnswerNeeded_0 = false

In the next step, you can select whether this question requieres an answer or not. No answer is required, for example, if only information is to be displayed.
Answers
If an answer is required, the parameter is set to true and there are three different options in which responses are possible:
  1. Answer with a slider. The slider can be defined in the config and is displayed in the Exo as defined:

    eQuestionTypeWelcome_4 = 0

    % (0: slider, 1: single (1 of N), 2: multiple (m of n), 3: info to confirm)

    %--- Slider settgings: 4

    cSliderLabelLeftWelcome_4 = "still"
    cSliderLabelRightWelcome_4 = "äußerst gesprächig"
    iSliderMinimumWelcome_4 = 1
    iSliderMaximumWelcome_4 = 10
    bSliderTickEnabledWelcome_4 = true
    iSliderTickIntervalWelcome_4 = 1
    iSliderNumOfAdditionalLabelsWelcome_4 = 1
    iSliderPositionOfAdditionalLabelsWelcome_0_0 = 6
    cSliderAdditionalLabelsWelcome_0_0 = "normal"


  2. One answer is possible. The number of answers and the answer options are adjusted and displayed.

    eQuestionTypeWelcome_5 = 1

    % (0: slider, 1: single (1 of N), 2: multiple (m of n), 3: info to confirm)
    %--- One of N answers settings: 5

    iNumOfAnswersOneOfNWelcome_5 = 5

    cAnswerOneOfNWelcome_5_0 = "nie"
    cAnswerOneOfNWelcome_5_1 = "selten (fast nie)"
    cAnswerOneOfNWelcome_5_2 = "manchmal"
    cAnswerOneOfNWelcome_5_3 = "oft (fast immer)"
    cAnswerOneOfNWelcome_5_4 = "immer"


  3. Multiple answers are possible.

    eQuestionTypeWelcome_1 = 2

    % (0: slider, 1: single (1 of N), 2: multiple (m of n), 3: info to confirm)
    %--- Multiple-answer settings: 1

    iNumOfAnswersWelcome_1 = 2

    cAnswerWelcome_0_0 = "Ja"
    cAnswerWelcome_0_1 = "Nein"

Posted 4 months agoby mmat

What is possible to output as a CSV file with KiRAT?

With KiRAT you can output a variety of data as CSV files, including: Extracted features Patient data Survey responses It…

With KiRAT you can output a variety of data as CSV files, including:

  1. Extracted features
  2. Patient data
  3. Survey responses

It is important to notice that the ability to output data as CSV files has to be implemented directly in the code (for features) and is dependent on the specific application. Input data can be recorded directly via a recordings tool.

Posted 4 months agoby mmat

How to read a CSV file?

A possible way to open a CSV file is to use a text editor like Notepad or TextEdit. However, text…

A possible way to open a CSV file is to use a text editor like Notepad or TextEdit. However, text editors are not designed to work with tabular data, so they may not display the data in a very user-friendly way.

Opening the CSV file in Excel is a much better option. It will display the data in a clear and organized way, and it will make it easy to work with the data. Additionally, Excel can automatically detect the delimiter that is used in the CSV file, and it can also handle CSV files that have a header reo. To ensure that the data is displayed correctly and that you can easily work with it.

Follow the following steps to open the file in Excel:

  1. Open Excel.

  2. Click the data tab.

  3. In the Get external data group, click from Text/CSV.

  4. In the import data dialog, locate the CSV file you want to open, and click import.

  5. In the text import wizard dialog box, make sure that the delimited option is selected, and then click next.

  6. In the delimiters step, select the comma checkbox, and then click next.

  7. In the data format step, make sure that the general option is selected for all of the columns, and then click Finish.

The CSV file will be imported into a new Excel worksheet. You can then work with the data as you would with any other Excel data.

Posted 4 months agoby mmat

What is a CSV file?

A CSV file (comma separated values) is a plain text file that stores tabular data in a simplified format. It…

A CSV file (comma separated values) is a plain text file that stores tabular data in a simplified format. It uses commas to separate data fields and newlines to separate data records. CSV files are often used to exchange data between different applications because they are simple and easy to read.

Posted 4 months agoby mmat

What is the Exo?

The exo is the user interface for KIRAT. It is a graphical application that allows users to interact with KiRAT…

The exo is the user interface for KIRAT. It is a graphical application that allows users to interact with KiRAT and visualize its output. It allows the user to easily interact with the program and understand its output. The exo provides a variety of features depending on the application, such as:

exo oberer Teil

Users can use the exo to start, stop, and pause KiRAT, as well as to adjust various parameters.

plotter im exo

The exo can be used to plot various signals or features that are extracted by KiRAT.

Posted 4 months agoby mmat

What is the algorithmic structure?

The algorithmic core is constructing an algorithmic structure, which offers an additional graphical user interface. This part of KiRAT is…

The algorithmic core is constructing an algorithmic structure, which offers an additional graphical user interface. This part of KiRAT is written in C++ using the Qt-framework.

algorthimic core

The left column enables a fast access to the main functions of the framework. E.g. the processing can be started or stopped using the associated buttons. The upper area is showing the connection between different modules. It can also be recognized how the modules are nested. The lower part mainly consists of monitoring tools. The plotter is used to depict signals and parameters in real-time. There is also the possibility to see the actual memory consumption and the CPU load of every module.

Posted 4 months agoby mmat

What is the algorithmic core?

This part of KiRAT consists of the algorithms for signal processing. Everything is written in ANSI-C, which enables a fast…

This part of KiRAT consists of the algorithms for signal processing. Everything is written in ANSI-C, which enables a fast porting to many platforms. Frequently used functions like vector operations or the fast fourier transform are called using an abstraction layer. This leads to the possibility to use processor specific optimized functions. Basically, the algorithmic core is divided into four types of functions:

Init

The initialization function of a module is needed to convert user friendly parameters into internal ones. It also allocates dynamic memory for internal signals and parameters. Everything is controlled by using initialization files.

Process

The process function is called for each new frame. It consists of the actual processing of the algorithms

Reset

There the internal memory is reset, which leads to a defined state

Deinit

Freeing memory

KiRAT also supports a low latency multi-channel AD and DA conversion using the port audio library and many other interfaces for external devices. Another benefit is the possibility to measure impulse responses, to record signals and parameters as well as to simulate various types of systems and environments in real-time.

Posted 4 months agoby mmat

What is the structure of KiRAT?

KiRAT is mainly divided into two parts: the algorithmic core and the algorithmic structure. Inherent to KiRAT’s core functionality a…

KiRAT is mainly divided into two parts: the algorithmic core and the algorithmic structure. Inherent to KiRAT’s core functionality a user interface is specifically tailored to the application itself.

Posted 4 months agoby mmat

Contact

Prof. Dr.-Ing. Gerhard Schmidt

E-Mail: gus@tf.uni-kiel.de

Christian-Albrechts-Universität zu Kiel
Faculty of Engineering
Institute for Electrical Engineering and Information Engineering
Digital Signal Processing and System Theory

Kaiserstr. 2
24143 Kiel, Germany