{"id":15866324,"url":"https://github.com/qubitpi/aristotle","last_synced_at":"2026-06-23T23:31:30.097Z","repository":{"id":258462802,"uuid":"855627783","full_name":"QubitPi/aristotle","owner":"QubitPi","description":"🤗 Hearing Ancient Greek Philosopher with NLP","archived":false,"fork":false,"pushed_at":"2024-12-14T21:30:42.000Z","size":81,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-07T13:53:59.495Z","etag":null,"topics":["ancient-greek","language","nlp"],"latest_commit_sha":null,"homepage":"https://huggingface.co/spaces/QubitPi/aristotle","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/QubitPi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-09-11T07:29:39.000Z","updated_at":"2024-12-14T21:29:14.000Z","dependencies_parsed_at":"2024-10-19T05:45:18.889Z","dependency_job_id":"9050de4a-edf3-4dc3-9a05-ea8e5ae69152","html_url":"https://github.com/QubitPi/aristotle","commit_stats":{"total_commits":3,"total_committers":1,"mean_commits":3.0,"dds":0.0,"last_synced_commit":"9af0f3f710658c215e60d6a1d6f0cdc266fa2f67"},"previous_names":["qubitpi/aristotle"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QubitPi%2Faristotle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QubitPi%2Faristotle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QubitPi%2Faristotle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QubitPi%2Faristotle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QubitPi","download_url":"https://codeload.github.com/QubitPi/aristotle/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246709907,"owners_count":20821298,"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":["ancient-greek","language","nlp"],"created_at":"2024-10-05T23:20:20.617Z","updated_at":"2025-04-01T21:20:00.382Z","avatar_url":"https://github.com/QubitPi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\ntitle: Aristotle\nemoji: 🏆\ncolorFrom: gray\ncolorTo: green\nsdk: gradio\nsdk_version: 5.1.0\napp_file: app.py\npinned: false\nlicense: apache-2.0\nshort_description: Ancient Greek text to audio\n---\n\nAristotle\n=========\n\n![Python Version Badge]\n[![Hugging Face space badge]][Hugging Face space URL]\n[![GitHub workflow status badge][GitHub workflow status badge]][GitHub workflow status URL]\n[![Hugging Face sync status badge]][Hugging Face sync status URL]\n[![Docker Hub][Docker Pulls Badge]][Docker Hub URL]\n[![Apache License Badge]][Apache License, Version 2.0]\n\n__Aristotle__ is an automatic text to speech application that takes an Ancient Greek excerpt as input and generates a\ndownloadable audio for language learner for practice speaking in Ancient Greek. Aristotle generates speech using the\n[OpenAI's text-to-speech API](https://platform.openai.com/docs/guides/text-to-speech).\n\nThe app is available on [🤗 Hugging Face space][Hugging Face space URL]. Please check it out.\n\nA Docker image is also available:\n\n```console\ndocker run -d --name aristotle -p 7860:7860 jack20191124/aristotle\n```\n\nWhen container is up and running, visit app at  [http://localhost:7860](http://localhost:7860).\n\nHow Does It Work\n----------------\n\nAncient Greek is a phonetically-lost language, because no one knows the correct pronunciation of such an ancient\nlanguage. __A lack of audio content is a major hurdle to learning Ancient Greek__. So I decided to tackle this problem\nwith NLP.\n\nOpenAI will read Ancient Greek text with a modern Greek pronunciation. What's different about OpenAI from other\nText-to-Speech tools is that OpenAI is unaffected by the different accents and breathing marks in Ancient Greek. It will\nsimply read the Ancient Greek text in modern pronunciation with the accents in the right places. Studying Ancient Greeek\nwith modern pronunciation is simply not satisfactory for me, though, so I started messing around with the text to see if\nI could get the pronunciation closer to Erasmian/Attic/whatever we want to call it. We can simply replace letters in the\nGreek words with Latin letters to try and get what we want.\n\nHere is an example sentence.\n\nThis is the original text, which OpenAI will read in Modern Greek with no problem:\n\n\u003e Σόλων ἦν συνετώτατος πάντων τῶν Ἀθηναίων, τὴν γὰρ σοφίαν αὐτοῦ οὐ μόνον οἱ πολῖται ἐθαύμαζον, ἀλλὰ καὶ οἱ ἂλλοι\n\u003e  Ἓλληνες πάντες, πολλοὶ δὲ καὶ τῶν βαρβάρων.\n\nAnd here is the same but with letters replaced to try and get OpenAI to read in an \"Attic\" pronunciation:\n\n\u003e sόλωn en sunetώtαtος πάntωn tón aθenáiωn, tén γáρ sοφίan autu u μόnon hoi πολítαi eθáuμαζon, aλλá kái hoi áλλοi\n\u003e Héλλeneς πάnteς, πολλói δé kái tón βαρβάρωn.\n\nA huge list of [letter replacements](./ancient-greek-phonemes.txt) has been made to try and imitate Attic pronunciation\nas closely as possible. The result is pretty solid and is close enough to be useful for creating audio files for texts\nwhere we don't have any audio recordings.\n\nDevelopment\n-----------\n\n### Running Locally\n\n```console\ngit clone git@github.com:QubitPi/aristotle.git\ncd aristotle\n\nvirtualenv .venv\nsource .venv/bin/activate\npip3 install -r requirements.txt\n```\n\nTo start the app:\n\n```console\nexport SERVER_NAME=127.0.0.1\npython3 app.py\n```\n\nThe app will be available at [http://localhost:7860](http://localhost:7860) and the API docs at\n[http://localhost:7860/?view=api](http://localhost:7860/?view=api)\n\n### Docker\n\nTo build a Docker container of Aristotle, follow these steps:\n\n1. Make sure Docker has been installed\n2. Open a terminal and navigate to the project directory.\n3. Run the following command to build the Docker image:\n\n    ```consule\n    docker build -t jack20191124/aristotle .\n    ```\n\n4. Wait for the build process to complete.\n5. Once the build is finished, we can run the Docker container using the following command:\n\n    ```console\n    docker run -it --name aristotle -p 7860:7860 jack20191124/aristotle\n    ```\n\n6. Open up browser and navigate to [http://localhost:7860](http://localhost:7860) to access the space.\n\n### Toubleshooting\n\n#### `No matching distribution found for fastapi` While Executing `pip3 install -r requirements.txt`\n\nThis could be caused by one's proxy. Simply turn-off or switch proxy should work\n\nLicense\n-------\n\nThe use and distribution terms for [aristotle]() are covered by the [Apache License, Version 2.0].\n\n[Apache License Badge]: https://img.shields.io/badge/Apache%202.0-F25910.svg?style=for-the-badge\u0026logo=Apache\u0026logoColor=white\n[Apache License, Version 2.0]: https://www.apache.org/licenses/LICENSE-2.0\n\n[Docker Pulls Badge]: https://img.shields.io/docker/pulls/jack20191124/aristotle?style=for-the-badge\u0026logo=docker\u0026color=2596EC\n[Docker Hub URL]: https://hub.docker.com/r/jack20191124/aristotle\n\n[GitHub workflow status badge]: https://img.shields.io/github/actions/workflow/status/QubitPi/aristotle/ci-cd.yaml?branch=master\u0026style=for-the-badge\u0026logo=github\u0026logoColor=white\u0026label=CI/CD\n[GitHub workflow status URL]: https://github.com/QubitPi/aristotle/actions/workflows/ci-cd.yaml\n\n[Hugging Face space badge]: https://img.shields.io/badge/Hugging%20Face%20Space-aristotle-FF9D00?style=for-the-badge\u0026logo=huggingface\u0026logoColor=white\u0026labelColor=6B7280\n[Hugging Face space URL]: https://huggingface.co/spaces/QubitPi/aristotle\n[Hugging Face sync status badge]: https://img.shields.io/github/actions/workflow/status/QubitPi/aristotle/ci-cd.yaml?branch=master\u0026style=for-the-badge\u0026logo=github\u0026logoColor=white\u0026label=Hugging%20Face%20Sync%20Up\n[Hugging Face sync status URL]: https://github.com/QubitPi/aristotle/actions/workflows/ci-cd.yaml\n\n[Python Version Badge]: https://img.shields.io/badge/Python-3.10-FFD845?labelColor=498ABC\u0026style=for-the-badge\u0026logo=python\u0026logoColor=white\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqubitpi%2Faristotle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqubitpi%2Faristotle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqubitpi%2Faristotle/lists"}