This project was developed as part of the Mobility in Computational Systems course in the Computer Science and Engineering degree during the academic year 2023/2024.
The Smart Butler is a voice-controlled Android application designed to assist users with daily tasks through natural speech interaction. The system is built on top of the ACME oneM2M Centralised protocol, enabling seamless communication between distributed entities in a smart environment.
The application operates exclusively through Speech-To-Text (STT) and Text-To-Speech (TTS) technologies, allowing users to interact with the Butler without any button presses. Users can issue commands such as "Say temperature" or "Tell mailbox", which are interpreted by the STT module and translated into requests to the ACME Network.
The Butler retrieves information from other registered entities (such as a Mailbox entity) and responds verbally using TTS. Supported queries include checking the current temperature, verifying mailbox status, managing reminder lists, navigating between rooms, and exiting the application.
In addition to user-initiated commands, the Smart Butler also supports Butler-initiated communication. Other applications can send messages to the Butler via the ACME Network using a dedicated "speak" content instance. A subscription mechanism ensures that any received message is immediately vocalised to the user in real time.
To support multiple devices simultaneously, a WebSocket server was implemented. Notifications from the ACME server are handled by a notification server and broadcast to all connected Butler clients, ensuring low-latency communication.
The application includes a simple UI with a Butler avatar that visually reacts while speaking, as well as buttons to manually set the current room location (kitchen or bedroom), simulating indoor mobility tracking.
- Android Studio: Development environment for the Android application
- Google Speech-To-Text API: Voice recognition
- Android Text-To-Speech: Voice feedback to the user
- ACME oneM2M: Centralised IoT service layer
- Python: Notification and monitoring server
- WebSocket: Real-time communication with mobile clients
- MikroTik: Local network infrastructure
The Smart Butler demonstrated an average voice recognition success rate of 69% in clean environments and 56% in noisy environments. Communication latency between entities consistently remained below one second, even when handling real-time spoken notifications.
- Our project received a grade of 15.05 out of 20.
- This project was developed for the Computer Engineering (Mobile Computing) master's degree at Polytechnic of Leiria