{"id":22393786,"url":"https://github.com/tobybenjaminclark/mema","last_synced_at":"2025-03-26T22:26:14.436Z","repository":{"id":176913003,"uuid":"659684631","full_name":"tobybenjaminclark/mema","owner":"tobybenjaminclark","description":"🎥 Memory Machine 3.5 (Object Access \u0026 Storage Facilitator) Development for Horizon Digital Economy Research at University of Nottingham. Deployed using Python3, Open-CV, Arduino \u0026 gTTS.","archived":false,"fork":false,"pushed_at":"2023-09-01T14:56:12.000Z","size":16374,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-01T04:22:57.483Z","etag":null,"topics":["gtts-api","opencv-python","python3","speech-recognition"],"latest_commit_sha":null,"homepage":"https://www.horizon.ac.uk/project/mema-3-0/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tobybenjaminclark.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-28T10:43:08.000Z","updated_at":"2024-06-02T19:59:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"14d7f9ac-150c-4d8e-be40-aa98793ee2dd","html_url":"https://github.com/tobybenjaminclark/mema","commit_stats":null,"previous_names":["tobybenjaminclark/mema"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobybenjaminclark%2Fmema","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobybenjaminclark%2Fmema/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobybenjaminclark%2Fmema/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobybenjaminclark%2Fmema/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tobybenjaminclark","download_url":"https://codeload.github.com/tobybenjaminclark/mema/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245745122,"owners_count":20665386,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gtts-api","opencv-python","python3","speech-recognition"],"created_at":"2024-12-05T05:07:53.962Z","updated_at":"2025-03-26T22:26:14.423Z","avatar_url":"https://github.com/tobybenjaminclark.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/tobybenjaminclark/mema\"\u003e\n    \u003cimg src=\"imagebank/mema_logo.png\" alt=\"Logo\" width=\"300\" height=\"200\"\u003e\n  \u003c/a\u003e\n\n\u003ch3 align=\"center\"\u003eMemory Machine (MeMa)\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    Memory Machine is an accessible and user-friendly device designed for older adults to store and cherish their memories. By integrating advanced technologies such as text-to-speech, speech recognition, and facial recognition, it enables effortless interaction, enhances accessibility, and provides a secure repository for preserving and reliving precious moments.\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/tobybenjaminclark/mema/wiki\"\u003eWiki\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/tobybenjaminclark/mema\"\u003eDemo\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/tobybenjaminclark/mema/issues\"\u003eIssues\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eProject Vision\u003c/a\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#setup-\u0026-getting-started\"\u003eSetup \u0026 Installation\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#roadmap\"\u003eFeatures \u0026 Roadmap\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact Points\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#acknowledgments\"\u003eAcknowledgments\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About The Project\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/tobybenjaminclark/mema\"\u003e\n    \u003cimg src=\"imagebank/prototype_digital/prototype_digital_preliminary_version_two.png\" alt=\"Logo\" width=\"300\" height=\"240\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nThe **Memory Machine/MeMa** represents a device specifically engineered to serve as an extensive memory repository, catering to the *unique needs of older adults*. With a paramount focus on **accessibility** and **usability**, this innovative solution enables individuals to **store and safeguard their treasured memories** through a user-friendly interface. The Memory Machine seamlessly integrates advanced technologies, including `Text-to-Speech (TTS)` utilizing [gTTS](https://gtts.readthedocs.io/en/latest/), [speech recognition](https://pypi.org/project/SpeechRecognition/), and [facial recognition](https://pypi.org/project/face-recognition/), thereby enhancing the overall user experience and facilitating effortless interaction with the device.\n\nThe fundamental objective of the Memory Machine is to **empower older adults in capturing and reliving moments of profound significance**. Through its intuitive design, this device allows users to **store memories in diverse formats**, ranging from *spoken anecdotes* to *visual content*. The incorporation of *TTS* functionality enables the machine to convert *text-based memories* into *highly naturalized speech*, rendering them accessible to individuals with **visual impairments**. Moreover, the integration of speech recognition capabilities facilitates *hands-free* interaction, further *augmenting accessibility* and simplifying the device's operation.\n\nA notable feature of the Memory Machine is it's **facial recognition functionality**, which removes the necessity to remember long, complicated passwords. As the target use-case is **older people**, MeMa 3.1 allows for a facial-based login system, similar to the iOS FaceID system. It's important that **memories are protected and secure**, which is a fundamental value in MeMa's Design.\n\nIn summary, the **Memory Machine provides a robust and inclusive solution for storing and reliving memories**, while specifically addressing the requirements of older adults. By seamlessly incorporating `TTS`, `speech recognition`, and `facial recognition` technologies, this device ensures *accessibility* and *ease of use*, ultimately **enabling individuals to engage with their memories in a personalized and meaningful manner**. The Memory Machine stands as a testament to the advancements in memory preservation technology, consistently evolving, improving and adapting to new ways to capture and store memories.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- GETTING STARTED --\u003e\n## Setup \u0026 Getting Started\n\nMeMa can be setup on either\n1.  MeMa Shell (see [wiki](https://github.com/tobybenjaminclark/mema/wiki) for setup)\n2.  Linux Device with Physical Interface Emulators\n\n### Prerequisites\n\nFor both options, MeMa has several dependencies that are going to be listed under this section. Further information on how to construct your own working, MeMa Shell is available in the [wiki](https://github.com/tobybenjaminclark/mema/wiki), and the `.stl` files are available in `/modelbank/`. This section is only going to **overview setting up the virtual prototype**.\n\n**Operating System Dependencies**\u003cbr\u003e\nMeMa 3.1 is currently available to deploy on Linux devices. Developed on [Ubuntu 22.04.2 LTS](https://releases.ubuntu.com/jammy/), this is the reccommended system. As MeMa should be used as a standalone device, it's **reccommended to use this version of Ubuntu** to avoid any errors.\n\nThere is no current support for **macOS** or **Windows** compatiable versions of MeMa, however with the current libraries this is possible to add.\n\n**Device \u0026 Hardware Dependencies**\u003cbr\u003e\nMeMa 3.1 has several device-specific dependencies. These are pretty straight-forward, the device should contain the following:\n* **Webcam/Camera** (Higher Quality for better Facial Recognition)\n* **Microphone** (Higher Quality for better Speech Recognition)\n* **Speaker/Headphones** (Headphones are reccommended)\n\nIn terms of processing-specific requirements, currently MeMa is too computationally demanding to run on small embedded systems such as **Raspberry Pi**, and it is reccommended to run MeMa on a mini-pc inside of the operating shell. For a more-specific reccommended set of requirements, see below:\n\n\u003e `Recommended RAM: ` 8GB DDR4\u003cbr\u003e\n\u003e `Recommended CPU: ` Intel i5 (or equivalent) 4-Cores @2.4GHz\u003cbr\u003e\n\u003e `Storage/HDD/SSD: ` 3GB of available space\u003cbr\u003e\n\u003e\n\n**Python 3.11.4, PI \u0026 Tkinter Dependencies**\u003cbr\u003e\nIt's important that your **system repository** is up to date, firstly run the following command to update any new package data.\u003cbr\u003e\n\u003e sudo apt-get update\n\nNow we must install Python 3.8, Tkinter and PIP. Tkinter is a graphics framework that comes as part of the standard library for the macOS and Windows versions of Python, however the Linux release does not include this base.\n\nPIP (or pip) is Pythons package manager which we will later use to install further dependencies and libraries, such as **opencv**, **pillow** and **face_recognition**. For now, run the following 3 commands to install Python 3.8, PIP and Tkinter.\n\u003e sudo apt-get install python3.8\u003cbr\u003e\n\u003e sudo apt install python3-pip\u003cbr\u003e\n\u003e sudo apt-get install python3.8-tk\n\n**Python Packages/Libraries**\u003cbr\u003e\nSeveral libraries are required to run MeMa, these are available in `requirements.txt` in the main repository. PIP will be able to perform a **one-line install of all package dependencies** using the following command. More information about the required packages is available in the [wiki](https://github.com/tobybenjaminclark/mema/wiki).\n\u003e pip install -r 'requirements.txt'\n\n### Installation\nIn terms of installation, MeMa is easy to run and setup. Simply run the file at `codebank/mema_main_window.py` with the `--emulator` flag to show that you want to emulate the buttons. This should setup and start the program. To create a new user, simply say 'new'.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- USAGE EXAMPLES --\u003e\n## Usage\n\n**Setting up an account with MeMa**\u003cbr\u003e\nTo start using **MeMa**, the user needs to create an account. The process can be initiated by saying the command `New` or selecting the `Make Account` option on the device's interface.  MeMa only needs the users **name** and a picture of their **face** to create an account.\n\n**Logging in to MeMa**\u003cbr\u003e\nAfter creating an account, the user can log in using facial recognition. They need to **position their face in front of the camera**, and MeMa will **recognize their face and grant access to their account**. This is symbolized by a **white circle around the users face.** This system eliminates the need for remembering long and complicated passwords.\n\n**Creating Memories with MeMa**\u003cbr\u003e\nOnce logged in, the user can create new memories to store in MeMa. Within MeMa a **memory** is a *collection of associated data, such as videos, pictures and labels, centered around a past event or memory*. This is handled using **memory frames**. In MeMa, a **memory frame** a *slice* or *section* of a memory, think of it like a *segment of a photo-reel*, where the user can store a **picture** or **video** alongside a **label** or **caption**. One or more **memory frames** make up a **memory** within MeMa.\n\n\u003eThe user is able to **record live** using the devices camera and microphone, allowing the creation of **new memories** on the spot, or **digitize photograph memories**. Memories are captioned using **Speech Recognition**, the user simply talks about the memory, and MeMa will automatically transcribe and store the caption underneath the displayed memory.\n\n**Viewing Memories with MeMa**\u003cbr\u003e\nOnce memories are created and stored, the user can easily access and relive them. They can view their memories inside of MeMa, through its intuitive, easy-to-use interface. As a memory isn't just one photo, one video or one label; MeMa displays memories as **collections of data, together to emphasize remembering, reliving and reminiscing** on moments in he past.\n\n_For more examples, please refer to the [wiki](https://github.com/tobybenjaminclark/mema/wiki)_\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- ROADMAP --\u003e\n## Features \u0026 Roadmap\n\nCurrent\n* **Account Creation** and **Management**.\n* **Facial-Recognition Login** System\n* Memory **Creation** and **Editing**\n* Recording **Video**\n* Recording **Images**\n* Recording **Labels**\n* **Viewing Memories**\n* **Video Generation** from **Memories**\n\nFuture\n* Exporting Memories as Videos (writing to DVD)\n* Recording of audio over memories (music etc...)\n* Full MeMa Shell\n\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- CONTACT --\u003e\n## Contact Points\n\n**Toby Benjamin Clark**\u003cbr\u003e\nHappy to help with any queries/implementation concerns. Please contact me by one of the below methods explaining the issue that you are facing and I will get back to you as soon as possible with assistance.\n\u003cp align = \"center\"\u003e\n\u003ca href=\"https://github.com/tobybenjaminclark/\"\u003eGitHub\u003c/a\u003e\n·\n\u003ca href=\"https://www.linkedin.com/in/toby-clark-14350815a/\"\u003eLinkedIn\u003c/a\u003e\n·\n\u003ca href=\"mailto:tobybenjaminclark@gmail.com\"\u003eEmail\u003c/a\u003e\n\u003c/p\u003e\n\nProject Link: [https://github.com/tobybenjaminclark/mema](https://github.com/tobybenjaminclark/mema)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- ACKNOWLEDGMENTS --\u003e\n## Acknowledgments\n\n* []()\n* []()\n* []()\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftobybenjaminclark%2Fmema","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftobybenjaminclark%2Fmema","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftobybenjaminclark%2Fmema/lists"}