{"id":22277075,"url":"https://github.com/fm1320/song-vibe","last_synced_at":"2025-07-28T16:32:50.026Z","repository":{"id":200865810,"uuid":"666418311","full_name":"fm1320/song-vibe","owner":"fm1320","description":"AI song recommendations based on the feel of a song","archived":false,"fork":false,"pushed_at":"2024-06-30T15:52:04.000Z","size":6167,"stargazers_count":18,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-07-04T01:31:37.210Z","etag":null,"topics":["embeddings-similarity","faiss","llms","sentence-transformers","vector-search-engine"],"latest_commit_sha":null,"homepage":"https://mood-music.streamlit.app/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fm1320.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":"2023-07-14T13:18:24.000Z","updated_at":"2024-06-30T15:52:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"95366341-b5cf-4b31-90b4-d1db54deca18","html_url":"https://github.com/fm1320/song-vibe","commit_stats":null,"previous_names":["fm1320/song-vibe"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fm1320%2Fsong-vibe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fm1320%2Fsong-vibe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fm1320%2Fsong-vibe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fm1320%2Fsong-vibe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fm1320","download_url":"https://codeload.github.com/fm1320/song-vibe/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227932528,"owners_count":17843136,"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":["embeddings-similarity","faiss","llms","sentence-transformers","vector-search-engine"],"created_at":"2024-12-03T14:17:12.656Z","updated_at":"2024-12-03T14:17:13.379Z","avatar_url":"https://github.com/fm1320.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n🎶 Song vibe 🎶\n\u003c/h1\u003e\n\n\u003cdiv id=\"top\" align=\"center\"\u003e\n\n![GitHub](https://img.shields.io/github/license/fm1320/song-vibe?link=https%3A%2F%2Fgithub.com%2Ffm1320%2Fsong-vibe%2Fblob%2Fmain%2FLICENSE)\n![GitHub Repo stars](https://img.shields.io/github/stars/fm1320/song-vibe?logo=github)\n![GitHub forks](https://img.shields.io/github/forks/fm1320/song-vibe?logo=github)\n\n\n\u003c/div\u003e\n\n#### *This is a tool that gives song recommendations based on vibes and moods. Sometimes the music and playlists we hear don't \"hit\" our vibe, so we are using AI to try to change that.*\nFind a deep dive and overview of the project in this [YouTube video](https://www.youtube.com/watch?v=WIBtZa7mcCs\u0026t=26s\u0026ab_channel=Qdrant-VectorDatabase%26SearchEngine)\n## Technical details \n\nA dataset of songs and their descriptions of moods and vibes is generated by promoting an LLM. \nEach song's vibe is encoded using a transformer model and saved as a vector index. \nThen this vector index is queried by similarity using the vector embedding of the user's input and the top 10 matches are returned.\n\n## Installation\n\nFollow the instructions below to run the Streamlit server locally.\n\n### Pre-requisites\n\nMake sure you have Python 3.10 and Poetry installed.\n\n### Steps\n\n1. Clone the repository\n\n```bash\ngit clone https://github.com/fm1320/song-vibe\ncd song-vibe\n```\n\n2. Install dependencies from requirements file\n\n```bash\npoetry install\n```\n\n3. (For Training a new index) The file  `data.csv` is an example of what the training data of song descriptions looks like. This training data has been synthetically generated by prompting an LLM.\n   By running `train.py` the song descriptions are encoded by a transformer network and a vector index file `index.bin` using FAISS is created. Currenlty a flat index is used.\n\n\u003e **Note:** Make sure data is formatted properly if you are going to use your own dataset!\n\n4. Run the Streamlit server\n\n```bash\npoetry run streamlit run app.py\n```\nOpen http://localhost:8501 in your browser to access the app.\n\n## Tech Stack\n\n- User Interface - [Streamlit](https://streamlit.io/)\n- Index search - [FAISS](https://github.com/facebookresearch/faiss)\n- Sentence Transformers - [SBERT](https://www.sbert.net/)\n\n## Roadmap\n\n\n- *coming soon*: Full web app using Spotify API and more songs\n- Support and add more synthetic song descriptions \n- Support for more transformer encoders and indices\n\n## Contributing\n\nAll contributions are welcome!\n\n## License\n\nFree to use, star, share, and acknowledge use if you can!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffm1320%2Fsong-vibe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffm1320%2Fsong-vibe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffm1320%2Fsong-vibe/lists"}