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.
Python: 3.9.13 - 3.9.17
- Clone the project from git:
git clone https://github.com/odonald/Opera-Access.git
- Change directory in to project root:
cd Opera-Access
- Create your virtual environment:
python -m venv venv
- Activate your virtual environment:
source venv/bin/activate
- Install requirements:
pip install -r requirements.txt
- Run the Application:
python run.py
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:
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.
To start the suite without the end-to-end test, run:
ptw -- -m "not e2e"
- 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.)
- 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.
-
The Application will start a local server at http://{YOURNETWORKIP}:7832 (shown in the program).
-
If required, you can change the port from 7832 to a different setting via "File" --> "Change Port".
-
Load a .txt file into the program using the "Import Text" button. (The program will automatically split the text file line by line).´
-
Repeat step 3 to add translations of the desired text. (Text files and their translations need to have the same length in lines).
-
Switch the display language to your preferred language (this will only be visible to the navigator).
-
Use the "Open Website" Button and navigate through the text using the "previous" and "next" buttons to preview the user device output page.
-
Share the link with the users - Use the QR code or share the Link from your browser window in step 5.
- The user devices have to be logged in to the same network the host device is broadcasting on.
- The program needs to be restarted if introduced to a new network - It will not automatically switch networks while still open.
Go ahead and contribute :)