Giter Club home page Giter Club logo

opera-access's Introduction

Overtitle

Opera-Access provides a practical solution for the delivery of surtitles—also known as supertitles, SurCaps, or OpTrans—in theaters and operas.

Using the well-established Python and Tkinter technologies, the software enables the surtitle driver to send text fragments to the audience in real-time via SSE. This eliminates the need for a dedicated app, allowing audience members to access these surtitles through a browser on their devices via local WiFi.

The system offers customization options such as text format settings and language preferences, making performances more accessible to individuals with visual or auditory disabilities and to non-native speakers. While the technology may not be new, the application of this tool to enhance the theater-going experience is a notable improvement for the partnering theaters and opera houses.

Table of Contents

Requirements

Python: 3.9.13 - 3.9.17

Installation

  1. Clone the project from git:
git clone https://github.com/odonald/Opera-Access.git
  1. Change directory in to project root:
cd Opera-Access
  1. Create your virtual environment:
python -m venv venv
  1. Activate your virtual environment:
source venv/bin/activate
  1. Install requirements:
pip install -r requirements.txt
  1. Run the Application:
python run.py

Testing

To run all tests, make sure you are within the virtual environment by repeating steps 2, 3 & 4 from the Installation instructions.

You currently have two options:

1. Run without end-to-end test (recommended):

The testing suite currently includes a very "flaky" pyautogui end-to-end test, chances are high it will not work, unless you are running it on macOS using dark mode system settings.

!At this point it is highly recommended to run tests excluding the end-to-end test!

To start the suite without the end-to-end test, run:

ptw -- -m "not e2e"

2. Run all tests including the end-to-end test (not recommended):

  1. From the application root first activate the hot developer reload function of the application:
python dev_hot_reload.py

(Note: You have to keep this running in a separate terminal window within your environment. It automatically closes and reopens the application after every saved code change.)

  1. Then, again in a separate terminal window within your environment, start Pytestwatch by running:
ptw

Note: Pytestwatch monitors your IDE and performs a round of tests after every saved code change.

Usage

  1. The Application will start a local server at http://{YOURNETWORKIP}:7832 (shown in the program).

  2. If required, you can change the port from 7832 to a different setting via "File" --> "Change Port".

  3. Load a .txt file into the program using the "Import Text" button. (The program will automatically split the text file line by line).´

  4. Repeat step 3 to add translations of the desired text. (Text files and their translations need to have the same length in lines).

  5. Switch the display language to your preferred language (this will only be visible to the navigator).

  6. Use the "Open Website" Button and navigate through the text using the "previous" and "next" buttons to preview the user device output page.

  7. Share the link with the users - Use the QR code or share the Link from your browser window in step 5.

Important:

  1. The user devices have to be logged in to the same network the host device is broadcasting on.
  2. The program needs to be restarted if introduced to a new network - It will not automatically switch networks while still open.

Contributing

Go ahead and contribute :)

License

MIT

opera-access's People

Contributors

odonald avatar aylinoez avatar

Stargazers

 avatar  avatar

Watchers

Fatma avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.