Talking Clock Assignment
Welcome to the shared assignment between the Introduction to Voice Technology and Introduction to Programming courses. In this interdisciplinary project, you will work in groups of 3-4 students to create a functional multilingual talking clock. This assignment will allow you to integrate your knowledge of programming with the principles of voice technology, audio recording, GitHub collaboration, open-source licensing, and FAIR data principles.
Task
Your task is to develop a talking clock application that displays the current time in a 12-hour format while offering voice output. The project should provide a user-friendly interface, allowing users to interact with the clock. The clock is programmed in Python and uses audio recordings, which are produced as part of the assignment, as well as (optionally) text-to-speech libraries. The functional scope of the clock and its interface are not limited. The students are encouraged to develop their own feature ideas, such as allowing the user to change the language, voice, pitch, and speed, adding alarm and snooze functionalities, and/or adding support for multiple time zones. The project must adhere to ethical considerations related to data privacy and user consent.
Assignment Components
- Basic Clock Functionality: Implement a clock in Python that accurately displays the current time in a 12-hour format.
- Audio Recording: Record audio files for time announcements (minimal requirement: English, consider additional language support).
- Voice Integration: Integrate your audio recordings (potentially: also integrate a text-to-speech library or API for automated voice output).
- User Interface and Customization: Forge an intuitive user interface (GUI) enabling users to control your clock. Customize your clock: consider additional features and integrate them into the user interface.
- Error Handling: Construct mechanisms that handle user errors and unanticipated inputs effectively.
- GitHub Collaboration: Use GitHub for version control, collaboration and distribution. Collaborate effectively within your group, making branches, committing changes, and creating pull requests. Each group member should actively participate via their GitHub account.
- Documentation: Provide clear and comprehensive documentation for your project. Include at least
- Installation instructions, including dependency handling
- Documentation of team organization and project workflow
- Technical documentation and reflection. Code comments and a dedicated section in your documentation, listing all used resources and libraries, and reflecting on the technical challenges and limitation you encountered.
- A user manual for the graphical user interface, describing all features and how to use them.
- Licensing and FAIR data principles: Choose an open-source license for your project. Discuss its significance and explain how your project adheres to FAIR data principles
Timeline
[will be added shortly]
Assessment
The assignment is integrated across the two courses Intro to Voice Technology and Programming for Voice Technology, with each course assessing different components of the assignment.
Introduction to Voice Technology:
- Audio recording and language support: Conceptualization, and recording quality.
- User Experience and Customization: This covers the user experience of components 1,3 and 4 without considering any code.
- Non-Technical Documentation: Team organization and project workflow (component 7.2), GUI user manual (component 7.4) and Licensing statement / reflection FAIR data (component 7.5)
For more details on how the talking clock is graded in the Intro to Voice Technology course, see the rubric.
Programming for Voice Technology:
- Code quality: This covers the technical assessment of components 1, 3, 4 and 5
- GitHub Collaboration
- Technical Documentation: The installation instructions and dependency handling (component 7.1), and the resource documentation and technical reflection (component 7.3)
Resources
[will be added shortly]
- Additional Python resources
- Recommended text-to-speech libraries or APIs
- Tutorials on audio recording
- GitHub guides for version control
- Open-source licensing guides
Notes
- This is a group assignment. All group members are expected to contribute equally. Using GitHub, each team members contribution can be traced.
- Consider the integration of skills acquired in both courses for a comprehensive project.
- Each group will present their project in a short video demonstration [@Matt: I have not considered this in the components/assessment yet]