{"id":14979003,"url":"https://github.com/adityaseth777/audio-spectracli","last_synced_at":"2025-10-28T14:30:49.999Z","repository":{"id":223938406,"uuid":"761963290","full_name":"AdityaSeth777/Audio-SpectraCLI","owner":"AdityaSeth777","description":"AudioSpectraCLI is a tool that provides real-time FFT visualization of audio spectra. It captures audio input from the microphone and displays the corresponding frequency spectrum directly in the terminal window, allowing users to monitor and analyze audio signals.","archived":false,"fork":false,"pushed_at":"2024-05-19T13:34:44.000Z","size":315,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-19T15:02:02.081Z","etag":null,"topics":["audio","docker-image","fft-analysis","pypi-package"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/Audio-SpectraCLI/","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/AdityaSeth777.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":"Contributing.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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-02-22T20:20:40.000Z","updated_at":"2024-05-27T10:58:24.107Z","dependencies_parsed_at":"2024-05-01T07:27:30.332Z","dependency_job_id":"9dfa9a33-ee5a-4169-904d-f14ad9b7736b","html_url":"https://github.com/AdityaSeth777/Audio-SpectraCLI","commit_stats":null,"previous_names":["adityaseth777/audio-spectracli"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdityaSeth777%2FAudio-SpectraCLI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdityaSeth777%2FAudio-SpectraCLI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdityaSeth777%2FAudio-SpectraCLI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdityaSeth777%2FAudio-SpectraCLI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AdityaSeth777","download_url":"https://codeload.github.com/AdityaSeth777/Audio-SpectraCLI/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238662664,"owners_count":19509642,"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":["audio","docker-image","fft-analysis","pypi-package"],"created_at":"2024-09-24T13:58:53.842Z","updated_at":"2025-10-28T14:30:44.938Z","avatar_url":"https://github.com/AdityaSeth777.png","language":"Python","funding_links":["https://www.buymeacoffee.com/adityaseth"],"categories":[],"sub_categories":[],"readme":"```\n    _             _ _            ____                  _              ____ _     ___\n   / \\  _   _  __| (_) ___      / ___| _ __   ___  ___| |_ _ __ __ _ / ___| |   |_ _|\n  / _ \\| | | |/ _` | |/ _ \\ ____\\___ \\| '_ \\ / _ \\/ __| __| '__/ _` | |   | |    | |\n / ___ \\ |_| | (_| | | (_) |_____|__) | |_) |  __/ (__| |_| | | (_| | |___| |___ | |\n/_/   \\_\\__,_|\\__,_|_|\\___/     |____/| .__/ \\___|\\___|\\__|_|  \\__,_|\\____|_____|___|\n                                      |_|\n```\n\n## Audio Spectrum Visualization is a Python project that visualizes real-time audio input as a spectrum using Fast Fourier Transform (FFT). It provides an interactive and dynamic interface for users to start the visualization and exit the program.\n\n \u003cp\u003e\n\n![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)\n[![Visitors](https://api.visitorbadge.io/api/visitors?path=https%3A%2F%2Fgithub.com%2FAdityaSeth777%2FAudio-SpectraCLI\u0026label=Visitors\u0026countColor=%23263759\u0026style=plastic)](https://visitorbadge.io/status?path=https%3A%2F%2Fgithub.com%2FAdityaSeth777%2FAudio-SpectraCLI)\n![GitHub forks](https://img.shields.io/github/forks/AdityaSeth777/Audio-SpectraCLI)\n![GitHub Repo stars](https://img.shields.io/github/stars/AdityaSeth777/Audio-SpectraCLI)\n![GitHub last commit](https://img.shields.io/github/last-commit/AdityaSeth777/Audio-SpectraCLI)\n![GitHub repo size](https://img.shields.io/github/repo-size/AdityaSeth777/Audio-SpectraCLI)\n![GitHub issues](https://img.shields.io/github/issues/AdityaSeth777/Audio-SpectraCLI)\n![GitHub closed issues](https://img.shields.io/github/issues-closed-raw/AdityaSeth777/Audio-SpectraCLI)\n![GitHub pull requests](https://img.shields.io/github/issues-pr/AdityaSeth777/Audio-SpectraCLI)\n![GitHub closed pull requests](https://img.shields.io/github/issues-pr-closed/AdityaSeth777/Audio-SpectraCLI)\n\n \u003c/p\u003e\n\n\u003ca href=\"https://www.producthunt.com/posts/audio-spectracli?utm_source=badge-featured\u0026utm_medium=badge\u0026utm_souce=badge-audio\u0026#0045;spectracli\" target=\"_blank\"\u003e\u003cimg src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=458166\u0026theme=light\" alt=\"Audio\u0026#0045;SpectraCLI - Visualizing\u0026#0032;real\u0026#0045;time\u0026#0032;audio\u0026#0032;input\u0026#0032;as\u0026#0032;a\u0026#0032;spectrum\u0026#0032;using\u0026#0032;FFT | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /\u003e\u003c/a\u003e\n\n### Notable point : From v4.0, I have implemented a whole new code using PyQt5, which you will find evident here in the new main default code - [\u0026#39;main.py\u0026#39;](./Audio_SpectraCLI/main.py) and the [\u0026#39;test.py\u0026#39;](./tests/test.py) case supporting that.\n\n### The [\u0026#39;main-old.py\u0026#39;](./Audio_SpectraCLI/main-old.py), which is the code for the main file for v3.2, and the [\u0026#39;test-old.py\u0026#39;](./tests/test-old.py) case supporting that, is DEPRECATED.\n\n## Current Features (with respect to 4.0.1)\n\n- Real-time visualization of Fast Fourier Transform (FFT) spectrum of audio input.\n- Support for adjusting parameters such as duration, sampling rate, and block size.\n- Seamless integration with SoundDevice for audio input capture.\n- Customizable Frequency Range: Allow users to specify the frequency range to display in the spectrum.\n- Color Customization: Provide options for users to customize the colors used in the spectrum visualization.\n- Added PyQt5 modules and a Gaussian filter that enables user input for Duration (in seconds), Sampling Rate (in Hz), Block Size, and also smoothens the output.\n- Might need to keep in mind that the Gaussian filter is too strong and it won't recognise any noise and display it's spectra. Only actual input through mic such as conversations and music are displayed which can be categorised as real inputs or audio, and of course in real time.\n- Much more dynamic and user-controlled interface.\n\n## Packaging\n\n```\nAudio-SpectraCLI/\n\n├── .gitignore\n├── CODE_OF_CONDUCT.md\n├── Contributing.md\n├── Dockerfile\n├── LICENSE\n├── Readme.md\n├── requirements.txt\n├── setup.cfg\n├── setup.py\n├── .github/\n│   └── workflows/\n│       ├── docker-publish.yml\n│       ├── label.yml\n│       └── python-publish.yml\n├── Audio_SpectraCLI/\n│   ├── main-old.py\n│   ├── main.py\n│   └── __init__.py\n└── tests/\n    ├── test-old.py\n    └── test.py\n```\n\n## Installation \u0026 Usage (Using PIP)\n\n1. Install using pip\n\n```\npip install Audio-SpectraCLI\n```\n\n2. Import and use modules\n\n- Create a Python file.\n- You can use [Example.py](https://github.com/AdityaSeth777/Audio-SpectraCLI/blob/main/tests/test.py) as a reference or use the following code :\n\n```python\nfrom Audio_SpectraCLI import AudioSpectrumVisualizer\nfrom PyQt5.QtWidgets import QApplication\n\n# Creating an instance of AudioSpectrumVisualizer with custom parameters\napp = QApplication([])\naudio_visualizer = AudioSpectrumVisualizer(\n    duration=5, fs=22050, block_size=1024, frequency_range=(1000, 5000), color='red')\n\n# Starting the audio spectrum visualization\naudio_visualizer.show()\napp.exec_()\n```\n\nOnce you have activated the audio_visualizer instance, feel free to use it wherever in the program. It consists of several parameters (which gives more control to the user), so make sure to configure and add those before using it in your code. Also, the user can modify (wrt [v4.0](https://github.com/AdityaSeth777/Audio-SpectraCLI/tree/4.0)) the Duration (in seconds), Sampling Rate (in Hz), and Block Size.\n\n---\n\n## Examining \u0026 Usage for fun :D (Using Docker)\n\n1. Prerequisites\n   You should have docker installed on your machine. You can download and install Docker from [here](https://www.docker.com/products/docker-desktop).\n2. Pulling the Docker Image\n\nYou can pull the pre-built Docker image from Docker Hub using the following command:\n\n```sh\ndocker pull adityaseth777/audio-spectracli\n```\n\n3. Viewing Files Inside the Docker Container\n   For seeing the files inside the Docker container for debugging purposes, you can run an interactive shell session:\n\n```sh\ndocker run --rm -it --entrypoint /bin/bash audio-spectracli\n```\n\n4. Use the 'ls' command to view the files and get a proper understanding of the file structure :\n\n```sh\nls\n```\n\n5. You can use [Example.py](https://github.com/AdityaSeth777/Audio-SpectraCLI/blob/main/tests/test.py) as a reference or use the following code :\n\n```python\nfrom Audio_SpectraCLI import AudioSpectrumVisualizer\nfrom PyQt5.QtWidgets import QApplication\n\n# Creating an instance of AudioSpectrumVisualizer with custom parameters\napp = QApplication([])\naudio_visualizer = AudioSpectrumVisualizer(\n    duration=5, fs=22050, block_size=1024, frequency_range=(1000, 5000), color='red')\n\n# Starting the audio spectrum visualization\naudio_visualizer.show()\napp.exec_()\n```\n\nOnce you have activated the audio_visualizer instance, feel free to use it wherever in the program. It consists of several parameters (which gives more control to the user), so make sure to configure and add those before using it in your code. Also, the user can modify (wrt [v4.0](https://github.com/AdityaSeth777/Audio-SpectraCLI/tree/4.0)) the Duration (in seconds), Sampling Rate (in Hz), and Block Size.\n\n---\n\n## Building the Docker Image Locally (for fun :D)\n\nIf you prefer to build the Docker image locally, follow these steps:\n\n1. Clone the repository :\n\n```sh\ngit clone https://github.com/AdityaSeth777/Audio-SpectraCLI.git\ncd Audio-SpectraCLI\n```\n\n2. Build the Docker image:\n\n```sh\ndocker build -t audio-spectracli .\n```\n\n3. Viewing Files Inside the Docker Container\n   For seeing the files inside the Docker container for debugging purposes, you can run an interactive shell session:\n\n```sh\ndocker run --rm -it --entrypoint /bin/bash audio-spectracli\n```\n\n4. Use the 'ls' command to view the files and get a proper understanding of the file structure :\n\n```sh\nls\n```\n\n5. You can use [Example.py](https://github.com/AdityaSeth777/Audio-SpectraCLI/blob/main/tests/test.py) as a reference or use the following code :\n\n```python\nfrom Audio_SpectraCLI import AudioSpectrumVisualizer\nfrom PyQt5.QtWidgets import QApplication\n\n# Creating an instance of AudioSpectrumVisualizer with custom parameters\napp = QApplication([])\naudio_visualizer = AudioSpectrumVisualizer(\n    duration=5, fs=22050, block_size=1024, frequency_range=(1000, 5000), color='red')\n\n# Starting the audio spectrum visualization\naudio_visualizer.show()\napp.exec_()\n```\n\nOnce you have activated the audio_visualizer instance, feel free to use it wherever in the program. It consists of several parameters (which gives more control to the user), so make sure to configure and add those before using it in your code. Also, the user can modify (wrt [v4.0](https://github.com/AdityaSeth777/Audio-SpectraCLI/tree/4.0)) the Duration (in seconds), Sampling Rate (in Hz), and Block Size.\n\n## Upcoming Features\n\n- Save and Export: Implement functionality to save the generated spectrum as an image file or export data for further analysis.\n- CLI endpoints.\n- Option to choose between CLI/GUI.\n\n---\n\n## For contributing\n\nCheck the [Contributing page.](https://github.com/AdityaSeth777/Audio-SpectraCLI/blob/main/Contributing.md)\n\n## License\n\n[MIT © Aditya Seth](https://github.com/AdityaSeth777/Audio-SpectraCLI/blob/main/LICENSE)\n\n## What next?\n\nI will be improving this project.\n\n## Where to contact ?\n\nContact: [contact@adityaseth.in](mailto:contact@adityaseth.in?subject=Email%20owing%20to%20adityaseth.in\u0026body=Greetings%2C%0AI%20am%20%5Bname%5D.%20I%20just%20came%20across%20your%20website%20and%20was%20hoping%20to%20talk%20to%20you%20about%20something.)\n\n## 🙋‍♂️ Support\n\n💙 If you like this project, give it a ⭐ and share it with friends! \u003cbr\u003e\u003cbr\u003e\n\n[\u003cimg width=\"200\" height=\"70\" src=\"https://i.postimg.cc/R0cqPmDf/bmc-button.png\" alt=\"buymeacoffee\"\u003e](https://www.buymeacoffee.com/adityaseth)\n\n---\n\n# Made with \u003cimg width=\"40\" height=\"40\" src=\"https://img.icons8.com/clouds/100/love-circled.png\" alt=\"love-circled\"/\u003e and \u003cimg width=\"40\" height=\"40\" src=\"https://img.icons8.com/clouds/100/python.png\" alt=\"python\"/\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadityaseth777%2Faudio-spectracli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadityaseth777%2Faudio-spectracli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadityaseth777%2Faudio-spectracli/lists"}