From 2e90ebaf6a6b3f2b2600645b651028cf927a4c32 Mon Sep 17 00:00:00 2001 From: Jeremy Vachier <89128100+jvachier@users.noreply.github.com> Date: Sat, 10 May 2025 15:15:33 +0200 Subject: [PATCH 1/5] Updating README file. --- README.md | 121 +++++++++++--------------- src/modules/transformer_components.py | 4 + 2 files changed, 56 insertions(+), 69 deletions(-) diff --git a/README.md b/README.md index ae03851..8844856 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,9 @@ # Sentiment Analysis and Translation -This repository contains a sentiment analysis application and an English-to-French translation model. The sentiment analysis application uses TensorFlow and Keras to classify text data into positive or negative sentiments. The translation model implements a Transformer-based architecture for sequence-to-sequence learning. +This repository provides a comprehensive solution for real-time **speech-to-text**, **sentiment analysis**, and **English-to-French translation** using state-of-the-art machine learning techniques. It includes an interactive web application and robust pipelines for text processing, sentiment classification, and language translation. + +--- ## Features @@ -29,19 +31,32 @@ This repository contains a sentiment analysis application and an English-to-Fren ## Installation -### Install Dependencies - -Install Poetry if you haven't already: +### Prerequisites +- Python 3.8 or higher +- Poetry for dependency management -```bash -pip install poetry -``` - -Then, install the project dependencies: +### Install Dependencies +1. Install Poetry: + ```bash + pip install poetry + ``` +2. Install project dependencies: + ```bash + poetry install + ``` -```bash -poetry install -``` +### Download the Vosk Model +1. Download the `vosk-model-en-us-0.22` model from the [official Vosk repository](https://alphacephei.com/vosk/models). +2. Extract the `.zip` file into the project directory: + ```bash + unzip vosk-model-en-us-0.22.zip -d vosk-model-en-us-0.22 + ``` +3. Ensure the extracted folder is located in the root directory: + ``` + Sentiment_Analysis/ + ├── vosk-model-en-us-0.22/ + └── ... + ``` --- @@ -52,7 +67,6 @@ Sentiment_Analysis/ ├── app/ # Application-specific files │ ├── __init__.py # Makes the folder a Python package │ └── voice_to_text_app.py # Main application script -│ ├── src/ # Source folder │ ├── data/ # Dataset folder │ ├── models/ # Saved models @@ -87,7 +101,10 @@ Sentiment_Analysis/ │ ├── test_data_processor.py # Tests for data_processor.py │ └── test_model.py # Tests for speech_to_text.py │ -├── .github/ # GitHub-specific files +├── .github/ │ ├── test_data_processor.py # Tests for data_processor.py +│ └── test_model.py # Tests for speech_to_text.py +│ +# GitHub-specific files │ ├── workflows/ # GitHub Actions workflows │ ├── AUTHORS.md # List of authors │ ├── CODEOWNERS # Code owners for the repository @@ -107,84 +124,42 @@ Sentiment_Analysis/ ## Usage ### Interactive Application - -1. **Run the Application** - - Start the Dash-based web application: - +1. **Run the Application**: ```bash poetry run python app/voice_to_text_app.py ``` - -2. **User Interface** - - The application provides the following features: - - **Start Recording**: Click the "Start Recording" button to begin recording your speech. - - **Stop Recording**: Click the "Stop Recording" button to stop recording. +2. **Features**: + - **Start Recording**: Begin recording your speech. + - **Stop Recording**: Stop recording. - **Recognized Text**: Displays the text recognized from your speech. - **Translated Text**: Displays the English-to-French translation of the recognized text. - **Sentiment Analysis**: Displays the sentiment (positive or negative) of the recognized text. - **Download Recognized Text**: Provides a link to download the recognized text as a `.txt` file. -3. **Example Workflow** - - - Click "Start Recording" and speak into your microphone. - - Click "Stop Recording" when you're done. - - The app will display: - - The recognized text. - - The French translation of the recognized text. - - The sentiment analysis result. - ---- - ### Sentiment Analysis - -1. **Train or Load the Model** - - Run the sentiment analysis script to train or load the model: - +1. **Train or Load the Model**: ```bash poetry run python src/sentiment_analysis.py ``` - - If a saved model exists, it will be loaded. - Otherwise, a new model will be trained and saved in the `src/models/` folder. - -2. **Evaluate the Model** - - The script evaluates the model on the test dataset and with an accuracy of: - +2. **Evaluate the Model**: + The script evaluates the model on the test dataset: ``` Test Accuracy: 95.00% ``` -3. **Inference** - - Modify the `raw_text_data` variable in `src/sentiment_analysis.py` to test the model with your own text input. The script will output the predicted sentiment. - ### English-to-French Translation - -1. **Prepare the Dataset** - - Place your English-French dataset in the `src/data/` folder. The dataset should be in a format compatible with the `DatasetProcessor` class. - -2. **Train or Load the Model** - - Run the translation script to train or load the Transformer model: - +1. **Prepare the Dataset**: + Place your English-French dataset in the `src/data/` folder. +2. **Train or Load the Model**: ```bash poetry run python src/translation_french_english.py ``` - - If a saved model exists, it will be loaded. - Otherwise, a new model will be trained and saved in the `src/models/` folder. - -3. **Evaluate the Model** - - The script evaluates the model on the test dataset and calculates the BLEU score. - - Output: - +3. **Evaluate the Model**: + The script evaluates the model on the test dataset and calculates the BLEU score: ``` Test loss: 1.97, Test accuracy: 67.26% BLEU score on the test dataset: 0.52 @@ -201,4 +176,12 @@ Sentiment_Analysis/ ## License -This project is licensed under the MIT License. See the `LICENSE` file for details. \ No newline at end of file +This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details. + +--- + +## About + +This repository is designed for researchers, developers, and enthusiasts interested in exploring advanced NLP techniques. It provides a practical implementation of speech-to-text, sentiment analysis, and translation pipelines, along with an interactive web application. + +For questions or feedback, feel free to open an issue or contact the repository maintainers. \ No newline at end of file diff --git a/src/modules/transformer_components.py b/src/modules/transformer_components.py index b159e97..81a4d30 100644 --- a/src/modules/transformer_components.py +++ b/src/modules/transformer_components.py @@ -61,6 +61,8 @@ def build(self, input_shape): ) self.dense_proj = tf.keras.Sequential( [ + tf.keras.layers.Dense(self.dense_dim, activation="gelu"), + tf.keras.layers.Dense(self.dense_dim, activation="gelu"), tf.keras.layers.Dense(self.dense_dim, activation="gelu"), tf.keras.layers.Dense(self.embed_dim), ] @@ -104,6 +106,8 @@ def build(self, input_shape): ) self.dense_proj = tf.keras.Sequential( [ + tf.keras.layers.Dense(self.dense_dim, activation="gelu"), + tf.keras.layers.Dense(self.dense_dim, activation="gelu"), tf.keras.layers.Dense(self.dense_dim, activation="gelu"), tf.keras.layers.Dense(self.embed_dim), ] From 441404a36b3a6dde5748b97737b7a08b6168529e Mon Sep 17 00:00:00 2001 From: Jeremy Vachier <89128100+jvachier@users.noreply.github.com> Date: Sat, 10 May 2025 15:54:48 +0200 Subject: [PATCH 2/5] Update and add README files. --- README.md | 23 +++++++++-- app/README.md | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 122 insertions(+), 4 deletions(-) create mode 100644 app/README.md diff --git a/README.md b/README.md index 8844856..ee8eed8 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,24 @@ This repository provides a comprehensive solution for real-time **speech-to-text --- +## Required Datasets + +### 1. Sentiment Analysis Dataset +- **Dataset**: [TripAdvisor Hotel Reviews Dataset](https://www.kaggle.com/datasets/andrewmvd/trip-advisor-hotel-reviews) +- **Description**: Hotels play a crucial role in traveling, and with increased access to information, new pathways for selecting the best ones have emerged. This dataset consists of 20,000 reviews crawled from TripAdvisor, allowing you to explore what makes a great hotel and potentially use this model in your travels. +- **Setup**: + - Download the dataset from the link above. + - Place the dataset in the `src/data/` directory. + +### 2. English-to-French Translation Dataset +- **Dataset**: [English-French Dataset (Kaggle)](https://www.kaggle.com/datasets/dhruvildave/en-fr-translations) +- **Description**: This dataset contains English sentences paired with their French translations. It is used to train and evaluate the Transformer-based translation model. +- **Setup**: + - Download the dataset from the link above. + - Place the dataset in the `src/data/` directory as `en-fr.parquet`. + +--- + ## Project Structure ``` @@ -101,10 +119,7 @@ Sentiment_Analysis/ │ ├── test_data_processor.py # Tests for data_processor.py │ └── test_model.py # Tests for speech_to_text.py │ -├── .github/ │ ├── test_data_processor.py # Tests for data_processor.py -│ └── test_model.py # Tests for speech_to_text.py -│ -# GitHub-specific files +├── .github/ # GitHub-specific files │ ├── workflows/ # GitHub Actions workflows │ ├── AUTHORS.md # List of authors │ ├── CODEOWNERS # Code owners for the repository diff --git a/app/README.md b/app/README.md new file mode 100644 index 0000000..814a1b2 --- /dev/null +++ b/app/README.md @@ -0,0 +1,103 @@ +# Speech-to-Text Translation and Sentiment Analysis App + +This directory contains the Dash web application for real-time speech processing with translation and sentiment analysis capabilities. + +## Overview + +This interactive web application allows users to: + +- **Record and convert spoken English to text** using Vosk speech recognition. +- **Translate the recognized English text to French** using a Transformer model. +- **Analyze the sentiment** of the recognized text (positive or negative). +- **Download the recognized text** as a text file. + +## Features + +- **Real-time Audio Processing**: Records audio directly from the user's microphone. +- **Speech Recognition**: Converts spoken words to text using Vosk. +- **Translation**: Translates English text to French using a Transformer-based model. +- **Sentiment Analysis**: Determines if the speech content is positive or negative. +- **Download Option**: Save recognized text for future reference. + +## Prerequisites + +Before running the application, ensure you have: + +1. **Vosk Model**: + - Download the Vosk model (`vosk-model-en-us-0.22`) from the [official Vosk repository](https://alphacephei.com/vosk/models). + - Place the extracted folder in the project root directory. + +2. **English-French Dataset**: + - Ensure the dataset (`src/data/en-fr.parquet`) is available for training and preprocessing. + +3. **Transformer Model**: + - Train or download the Transformer model for translation. + - Ensure the model is saved at the path defined in `ModelPaths.TRANSFORMER_MODEL.value`. + +4. **Inference Model**: + - Ensure the sentiment analysis inference model is available at the path defined in `ModelPaths.INFERENCE_MODEL.value`. + +5. **Dependencies**: + - Install all project dependencies using Poetry: + ```bash + poetry install + ``` + +## How to Run + +From the project root directory: + +```bash +poetry run python app.py +``` + +The application will start and be accessible at: [http://127.0.0.1:8050](http://127.0.0.1:8050) + +## Usage Instructions + +### Start Recording: +- Click the **"Start Recording"** button. +- Speak clearly into your microphone in English. + +### Stop Recording: +- Click the **"Stop Recording"** button when finished speaking. + +### View Results: +- The recognized English text will appear. +- Below that, you'll see the French translation. +- The sentiment analysis (positive or negative) will be displayed. + +### Download Results: +- Click **"Download Recognized Text"** to save the recognized text as a `.txt` file. + +## Code Structure + +The application consists of: + +1. **Initialization**: Sets up the `SpeechToText` module, loads the translation model, and configures the Dash app. +2. **User Interface**: Defines the layout with buttons and display areas. +3. **Callback Function**: Handles the recording process, speech recognition, translation, and sentiment analysis. +4. **Main Entry Point**: Starts the Dash server. + +## Troubleshooting + +If you encounter issues: + +- Verify the Vosk model is correctly installed at `vosk-model-en-us-0.22`. +- Check that the dataset exists at `en-fr.parquet`. +- Ensure the Transformer model is available at the path defined in `ModelPaths.TRANSFORMER_MODEL.value`. +- Ensure the sentiment analysis inference model is available at the path defined in `ModelPaths.INFERENCE_MODEL.value`. +- Look for error messages in the console logs. + +## Technical Details + +- **Framework**: Dash web application framework. +- **Speech Recognition**: Vosk speech recognition model. +- **Translation**: Custom Transformer model for English-to-French translation. +- **Sentiment Analysis**: Neural network-based sentiment classifier. +- **State Management**: Uses Dash callbacks and `dcc.Store` for managing application state. + +## Development Notes + +- The app runs in debug mode by default. +- For production deployment, set `debug=False` in the `app.run_server()` method. \ No newline at end of file From ce67b6f525728683f1da6458e7122f9c9b6ce3e0 Mon Sep 17 00:00:00 2001 From: Jeremy Vachier <89128100+jvachier@users.noreply.github.com> Date: Sat, 10 May 2025 16:35:02 +0200 Subject: [PATCH 3/5] Adding in gitignore. --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 932cd0e..9fc6de9 100644 --- a/.gitignore +++ b/.gitignore @@ -183,4 +183,6 @@ optuna_model.json models/ vosk-model-en-us-0.22/ vosk-model-small-sv-rhasspy-0.15/ -recognized_text.txt \ No newline at end of file +recognized_text.txt +src/models/*.keras +src/models/*.json \ No newline at end of file From 5a554d5912ba57a5dbe7f5979bd6dca9a75286f1 Mon Sep 17 00:00:00 2001 From: Jeremy Vachier <89128100+jvachier@users.noreply.github.com> Date: Sat, 10 May 2025 17:11:10 +0200 Subject: [PATCH 4/5] Update README file. --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ee8eed8..b323d21 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@ [![Linting: Ruff](https://img.shields.io/badge/linting-ruff-yellowgreen)](https://github.com/charliermarsh/ruff) [![Deep Learning](https://img.shields.io/badge/Deep%20Learning-TensorFlow-orange)](https://www.tensorflow.org/) [![Keras](https://img.shields.io/badge/Keras-red)](https://keras.io/) +[![TensorFlow](https://img.shields.io/badge/TensorFlow-2.0%2B-orange)](https://www.tensorflow.org/) [![Python](https://img.shields.io/badge/Python-3.8%2B-blue)](https://www.python.org/) -[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) +[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) # Sentiment Analysis and Translation @@ -191,7 +192,7 @@ Sentiment_Analysis/ ## License -This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details. +This project is licensed under the Apache License 2.0. See the [LICENSE](LICENSE) file for details. --- From 16dcbfbec05539b99207d463f44db6f6c0fb6a00 Mon Sep 17 00:00:00 2001 From: Jeremy Vachier <89128100+jvachier@users.noreply.github.com> Date: Sat, 10 May 2025 17:42:58 +0200 Subject: [PATCH 5/5] Updating README and adding docs with picture. --- README.md | 19 +++++++++++++++++-- docs/images/app_workflow.png | Bin 0 -> 65056 bytes 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 docs/images/app_workflow.png diff --git a/README.md b/README.md index b323d21..a210b0b 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,15 @@ This repository provides a comprehensive solution for real-time **speech-to-text**, **sentiment analysis**, and **English-to-French translation** using state-of-the-art machine learning techniques. It includes an interactive web application and robust pipelines for text processing, sentiment classification, and language translation. +--- + +## Overview + +![Application Workflow](docs/images/app_workflow.png) + +*Figure: High-level workflow of the application, including speech-to-text, sentiment analysis, and translation.* + + --- ## Features @@ -30,6 +39,12 @@ This repository provides a comprehensive solution for real-time **speech-to-text --- +## Note on Models + +The sentiment analysis and translation models included in this repository are **toy models** designed for demonstration purposes. They may not achieve production-level accuracy and are intended for educational and exploratory use. + +--- + ## Installation ### Prerequisites @@ -65,7 +80,7 @@ This repository provides a comprehensive solution for real-time **speech-to-text ### 1. Sentiment Analysis Dataset - **Dataset**: [TripAdvisor Hotel Reviews Dataset](https://www.kaggle.com/datasets/andrewmvd/trip-advisor-hotel-reviews) -- **Description**: Hotels play a crucial role in traveling, and with increased access to information, new pathways for selecting the best ones have emerged. This dataset consists of 20,000 reviews crawled from TripAdvisor, allowing you to explore what makes a great hotel and potentially use this model in your travels. +- **Description**: This dataset consists of 20,000 reviews crawled from TripAdvisor, allowing you to explore what makes a great hotel and potentially use this model in your travels. - **Setup**: - Download the dataset from the link above. - Place the dataset in the `src/data/` directory. @@ -177,7 +192,7 @@ Sentiment_Analysis/ 3. **Evaluate the Model**: The script evaluates the model on the test dataset and calculates the BLEU score: ``` - Test loss: 1.97, Test accuracy: 67.26% + Test loss: 2.13, Test accuracy: 67.26% BLEU score on the test dataset: 0.52 ``` diff --git a/docs/images/app_workflow.png b/docs/images/app_workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..2a0adceb3d8e5487af5266d5ec7deee03d277aff GIT binary patch literal 65056 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