Team’s Status Report for 4/25

The most significant risks that could jeopardize the success of this project would be our inability to tune the motor controllers correctly so that they can properly give the right instructions to the motors themselves. We’re currently working on this portion of the project, and once that’s done, we should mostly be done with the project, apart from incorporating the audio component to handle pivoting to the designated actor after the previous actor’s dialogue is completed. Once that is done, we’ll be ready for the TechSpark demo along with the final demo, and we’ll also be able to meet on Thursday with Dr. Dueck and the School of Music for our demo with them for the “Ah Perdona” piece. Apart from that, we will of course also be working on the final report and the final video so that we can submit all of them in time when they are due.

On the audio side, the main tests that we performed were calculating the WER for the ASR system, specifically for the trigger phrases rather than the whole dialogue. We realized that it didn’t make sense to track the whole dialogue by each speaker, rather it would improve processing and accuracy if we only focused on the few words before the next actor’s part began. What we found was that the system was very accurate, with a 7% WER (10% is high-quality) on these trigger phrases, and that the trigger was almost always correctly initiated. However, the fact that it wasn’t perfect concerned us slightly, which is why we included a manual override button in the UI that allowed the director to control the cueing themselves in case the trigger didn’t work. On the tracking side, the main tests we performed were calculating the difference between the ground truth and the predictions by the UI, and we discovered that the accuracy was even better than we expected, allowing us to stick with our current design. On the overall system side, we tested the reliability of the entire system, and we confirmed that the nodes and other components all ran for at least 4 hours, which was what we were hoping for.

Pareekshith’s Status Report for 4/25

This week, I focused mainly on re-testing my speech technology setup to ensure that nothing horrifically wrong had happened or will happen in the next two weeks, and I also met with Dr. Dueck and the School of Music students to troubleshoot our Accomplice setup and the cueing. One good thing is that the software now correctly follows the MIDI keyboard and is able to output cues properly, although I need the exact cue positions so that I can pinpoint exactly where and when our camera needs to turn. I also needed to order a new BLDC motor driver after one of the motor drivers we originally got through the School of Music was faulty, and so we received that today and look to complete the setup and fully integrate. My progress is on schedule, and since my portion is mostly complete (apart from getting the exact cue positions for the “Ah Perdona” piece), I’ll be helping out my team with any other necessary tasks this week as we look to complete the project and demo it at the TechSpark demo as well as at the public demo. I’ll also be working on the poster, the final video, and the final report this week so we won’t be pressed for time as we conclude the semester.

Pareekshith’s Status Report for 4/18

This week, I mostly worked on the opera portion of our collaboration with the School of Music and was debugging issues with the tempo of the pieces. After several attempts, I figured out the problem and was able to obtain the correct tempo for the piece that Dr. Dueck will be playing for our demo. There’s one more piece that I need to work on that is more difficult because of certain changes in tempo throughout the piece, but I’ll try to get that to work using specific cuing mechanisms. On the other hand, I am also working on testing the speech portion and using the WER metric to see the accuracy of the ASR. I don’t need the WER of the entire dialogue by an actor, simply the trigger phrase that’s used to pivot between actors. This shouldn’t take too long to do, and I should have it completed in about a day or so. This upcoming week, I plan to complete the validation and testing for the speech side, set up the cues in Accomplice, and help my team with any final debugging that needs to be done. While working on this project, I learned a lot about speech technology, fuzzy matching, and music technology. Interestingly, I learned a majority of the first two from my Speech Technology for Conversational AI course that I’m taking this semester, and that’s where I learned about WER, Vosk, and the other components of the speech side. On the other hand, learning about Accomplice, how it works, and how to use it needed me to get on a call with Professor Dannenberg, who was extremely kind and helpful. I was able to get most of the information I needed through our chat, and he’s been nice enough to be available for any questions and concerns that I might have.

Pareekshith’s Status Report for 4/4

This past week, I mostly completed the work on the speech track of the project, and I was able to show my progress in the demo where Ted and I played Nora and Torvald from A Doll’s House. I also added a manual override button in the UI, allowing the director to automatically trigger a cue in case, for some reason, the actor wasn’t heard correctly by the system. To complete this track, I need to simply add the specific motor controller instructions to the Python logic rather than only displaying to the UI. On the opera track, I also made progress, meeting with Professor Dannenberg to debug early setup issues I was facing with the off-the-shelf solution, Accomplice. After our call, I was able to correctly open the music projects and play the music through the SimpleSynth synthesizer. Our team was able to get access to the studio theater where we regularly meet Dr. Dueck and the School of Music, and so I was able to play around with the MIDI keyboard and connect it to my Mac. While most of the system works, I was facing issues with receiving the OSC messages that represent the triggers in the piano script, and it turns out that it’s an issue with the Accomplice software that Professor Dannenberg will resolve soon. I’m currently on progress with my schedule, and I hope to test and also complete the opera track by the end of the week once Accomplice is fixed. Regarding the verification testing, I’ve already been testing with scripts and seeing the success rate of each trigger. I’ve noticed that on modern English, Vosk does extremely well, with a 95+% accuracy, but with Middle English or Early modern English (e.g. Shakespeare, Marlowe, etc.), certain words like “thy” and “thine” aren’t translated correctly, and thus reduce the accuracy of the model. By using fuzzy matching and hacks like changing the trigger from “thy” to “by,” I’m able to improve the accuracy of the system, but I need to explore more permanent solutions that may help with WER and trigger precision. The speech track will rely mostly on these kinds of tests, using actual plays and scenes as references and counting the number of times the triggers don’t engage, and the results will be used to modify the triggers, increase the range of the fuzzy matching, and improve the system itself. For both the speech and opera tracks, I will be running latency tests to determine how long it takes for the system to acknowledge the trigger after the conclusion of the performer’s dialogue. We want to minimize the latency to a time that won’t be noticeable for the audience.

Team Status Report for 03/28/2026

On the audio side, there are 2 significant risks, one related to the opera (music-based) portion and one related to the play (speech-based) portion. On the opera side, we need to ensure that the equipment that we’ll be using to obtain the MIDI recording is compatible with the off-the-shelf software that Professor Dannenberg designed. On the speech side, while Vosk is working pretty well with a single microphone, it remains to be seen how the performance will be with multiple actors, especially performers who are close to each other. There’s a worry that the interference caused by the audio being heard on multiple microphones could confuse Vosk and thus, mess up the processing and cue engine. This week allowed for major improvements to the tracking system overall. New firmware, updated software, and increased polling rate to the UWB sensors has allowed considerable system improvements. The central RPI 5 has also been configured to handle all processing needs offloading load from the four wearable nodes. The centralized system will allow seamless integration with our motors, CV camera, and audio cues. Communication from the wearable nodes has also been configured which will allow us to quickly send audio cues to the central pi to adjust the camera as necessary. Having this centralized system all communication goes to reliably initiates our full project implementation. Regarding the opera portion, a significant change has been made to the design, in that we’re now using an off-the-shelf system that was created by Professor Dannenberg. This software is based on MIDI files, and it enables high performance regardless of the presence of other performers and their vocalization. Our group is currently on schedule, as we look to complete the rail design by the end of the week and finish the audio and tracking subsystems too. We’ll look to integrate these different systems together in the coming weeks as our entire project comes together. There haven’t been any changes to our schedule.

 

 

4 Node Tracking

 

 

Pareekshith’s Status Report for 3/28

This week, I made progress on the speech as well as the musical portion of the project. I’ve decided to follow 2 tracks: one which focuses on opera and getting the piano music (as part of the collaboration with the School of Music) and the other which is based on plays and uses Vosk for ASR. For the demo, I’ll be showing the latter track and display the Lavalier microphone connected to the wearable node that’ll indicate the parsing of the speech and the switching of the pivots on a UI. Regarding the other path, we had a call with Professor Dannenberg during our meeting with Dr. Dueck and the School of Music, and he introduced an off-the-shelf solution that relies on MIDI files and software; this solution may be exactly what we need for our project. This solution has the ability to send information and commands through a robust network protocol developed by Professor Dannenberg, so we’d be able to send information to the central Pi and make it send the commands over to the motor controller. I’m currently on schedule with my work; I’ll be meeting with Professor Dannenberg next week to set up his solution locally and make sure it’s all working, and I’ll be further enhancing the speech solution and verifying that it works accurately when there are multiple microphones involved in a close setting. I hope to be able to get both systems to work for our final project presentation, as it’d be cool to demonstrate the different capabilities our system has and the various use cases we support.

Team Status Report for 03/21/2026

The ability of the UWB anchors to work continuously over the duration of the play is something we have to test thoroughly; during our Saturday work session, we’ve had problems with the anchors turning off due to slightly incorrect resistor values. Although we’ve now gotten them all to run properly, we’ll have to do more stress testing to ensure that they are capable of recording a full play with no problems. Another risk that we have regarding the audio portion of the project is the presence of multiple instruments and the operatic dialogue that could cause interference with the piano music that is necessary for the Matchmaker library. We’ll have to discuss the scope of the project with Dr. Dueck and understand the exact use case, ensuring that we’re using the right tools. The plan to mitigate this is to use a powerful Samson microphone solely for the piano, as opposed to the Lavalier microphones we initially were using for each actor’s dialogue. Another risk we have is the motor VESC wiring. We’re currently connecting the motor phase wires to the VESC through just solder and e tape, and we run the risk of the connections breaking/shorting if they become a stress point during rail movement. We’re planning to mitigate these risks by later replacing the E tape with heat shrink for a more secure connection. In terms of schedule, we’re working on most systems concurrently. The UWB sensors/anchors should be up and running very soon, and once the ECE pick-up center is open, every part needed will be in our possession.

Pareekshith’s Status Report for 3/21

This week, I did research into open-source libraries that we could use to do real-time music tracking. The one library that I found that works really well with our use case was Matchmaker, which was released last year and is able to output the current position in the script based on the sheet music and the audio data. With this, we might have to pivot from our Lavalier microphones to a Samson microphone that isn’t omnidirectional and can focus properly on the piano music and not the surrounding operatic dialogue. The only concern I have with this is that it works specifically for piano; other instruments and orchestras would most likely mess up the alignment. Because of this, I want to check with Dr. Dueck if using this library is feasible. We might need to slightly pivot with this, especially because I am unable to find any other library that works on orchestral music. During our group’s work session this Saturday, I also helped with the taping of the anchors and the battery packs. I’m currently on schedule, and I plan to experiment with the Samson microphone that one of my partners might have. There are some technical details that need to be honed out, such as the conversion of the sheet music into specific MusicXML files and the exact audio input format. These will be covered and explored next week, and I plan on doing on-device testing and integration with the Pis.

Pareekshith’s Status Report for 3/14

This past week, I received the Lavalier microphones from the ECE Receiving office and thus, got a better idea of how to integrate them into our system. When we met with Dr. Dueck and her students, we discussed placements of the wearable nodes and the mics under the costumes, and we will be in contact figuring out how exactly to hide them discreetly. The good news is that the microphones are 6 meters long, so if there is a safe spot on an actor, the microphone can easily clip on and work properly. I also brought up the dilemma that we have with Vox, namely that it won’t work as well as expected with an operatic voice. Because of this, we are considering switching gears and using the sheet music as the script and then indicating where the cues should happen. Although our original plan was to use speech technology, given the collaboration with the School of Music, it makes sense to go with this approach; if we have time near the end, we might also try to incorporate speech technology into our system for drama productions, which typically have more conversational speech than operas and musicals. I’m still on track with my schedule, although I might need some more time to research libraries that can track music in real time; we’ll also have to discuss with Dr. Dueck the situation regarding an orchestra, where multiple instruments will be playing and could cause interference. This upcoming week, I hope to do just that, and I also want to find a way to keep the microphones incorporated so that we don’t waste our budget for no reason; we might end up using the microphones as microphones, and these can then be used to simply store the audio from each actor and be used for post-production processing.

Pareekshith’s Status Report for 3/7

The week before spring break, my group and I were focused heavily on completing the design report. Along with detailed audio subsystem explanations and certain design tradeoffs, I specifically took charge of the Design Requirements and Project Management portions of the report. I also ordered the Lavalier microphones that were critical for the audio component. Along with this, the team also met Dr. Dueck and her students in the 57584 course from the School of Music, and we had a great conversation about the potential role of our project in opera productions. We pored over different details, explored optimizations, and voiced our opinions about potential challenges that could arise through the course of the collaboration. I’m in charge of keeping the group updated with our team’s schedule, and we plan to meet weekly to show our latest progress, get feedback, and have actual testers of our product. I’m currently on track with my schedule, and next week, I hope to receive my microphones (along with our team’s parts) and start setting up our wearable node and its corresponding software. The only thing I’m a bit worried about with the School of Music collaboration is that I don’t know if Vosk, our offline ASR library, will be able to handle opera voices that aren’t spoken English. We’ll have to see if it’s viable for that, and if not, we’d either need to search for a model that is compatible or abandon the audio component specifically for opera (it would still work for stage plays though).