Skip to content

flxtr/asr-eliza-tts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ASR-ELIZA-TTS - German Language ELIZA Chatbot

An interactive speech recognition and text-to-speech system that processes German audio input with the ELIZA chatbot and speaks responses.

Features

  • Speech Recognition (ASR) - German speech recognition with Vosk
  • ELIZA Chatbot - Psychotherapist simulation in the style of Joseph Weizenbaum
  • Speech Synthesis (TTS) - German speech synthesis with eSpeak-NG
  • Audio Pausing - Audio input is automatically paused during TTS output

Installation

1. Install Python, pip, and System Requirements

Linux (Debian/Ubuntu)

# Update package manager
sudo apt-get update
sudo apt-get upgrade

# Install Python and pip
sudo apt-get install python3 python3-pip python3-venv

# Install eSpeak-NG (for speech output)
sudo apt-get install espeak-ng

# Verify installations
python3 --version
pip3 --version
espeak-ng --version

Linux (Arch)

# Update package manager
sudo pacman -Syu

# Install Python and pip
sudo pacman -S python python-pip

# Install eSpeak-NG (for speech output)
sudo pacman -S espeak-ng

# Verify installations
python --version
pip --version
espeak-ng --version

2. Setup Virtual Environment and Python Dependencies

# Create virtual environment
python3 -m venv .venv

# Activate virtual environment
source .venv/bin/activate

# Upgrade pip
pip install --upgrade pip

# Install Python dependencies
pip install vosk sounddevice

3. Download Speech Model

The German Vosk model must be downloaded:

cd models

# Download model
wget https://alphacephei.com/vosk/models/vosk-model-small-de-0.15.zip
unzip vosk-model-small-de-0.15.zip

Alternatively, download manually from alphacephei.com and extract to models/ directory.

Usage

Start the Chatloop

# Activate virtual environment
source .venv/bin/activate

# Start chatloop
python chatloop.py

Process Flow

  1. Greeting: ELIZA introduces itself and speaks the greeting
  2. Audio Paused: Audio input is paused while ELIZA speaks
  3. User Input: After the output, you can speak
  4. Processing: ELIZA processes your input
  5. Response: ELIZA responds and speaks the answer
  6. Loop: Process repeats until exit

Exit the Program

Say one of the quit words:

  • "auf wiedersehen" (goodbye)
  • "tschüss" (bye)
  • "beende" (end)
  • "ende" (end)

Or press Ctrl+C in the terminal.

About

Speaking Eliza Chatbot

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages