{"id":15165920,"url":"https://github.com/magnuss0/huginnhears","last_synced_at":"2026-01-21T19:35:27.715Z","repository":{"id":229711283,"uuid":"766516725","full_name":"MagnusS0/HuginnHears","owner":"MagnusS0","description":"Huginn Hears is a local app that transcribes and summarizes your meetings in Norwegian and English, using state-of-the-art models and open-source libraries. No cloud needed, run everything offline.","archived":false,"fork":false,"pushed_at":"2024-05-19T22:27:45.000Z","size":520,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-14T13:18:17.916Z","etag":null,"topics":["faster-whisper","langchain","llama-cpp-python","llamacpp","local-llm","norwegian","speech-to-text"],"latest_commit_sha":null,"homepage":"","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/MagnusS0.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-03-03T13:42:03.000Z","updated_at":"2024-05-19T22:27:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"ab8e02b0-d486-4f10-8dff-efd2b724e3e9","html_url":"https://github.com/MagnusS0/HuginnHears","commit_stats":{"total_commits":32,"total_committers":1,"mean_commits":32.0,"dds":0.0,"last_synced_commit":"24f74a2d0c6b631746762d41d184806369a85c40"},"previous_names":["magnuss0/huginnhears"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MagnusS0%2FHuginnHears","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MagnusS0%2FHuginnHears/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MagnusS0%2FHuginnHears/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MagnusS0%2FHuginnHears/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MagnusS0","download_url":"https://codeload.github.com/MagnusS0/HuginnHears/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247886572,"owners_count":21012864,"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":["faster-whisper","langchain","llama-cpp-python","llamacpp","local-llm","norwegian","speech-to-text"],"created_at":"2024-09-27T04:20:17.676Z","updated_at":"2026-01-21T19:35:27.706Z","avatar_url":"https://github.com/MagnusS0.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Huginn Hears 🐦‍⬛\n\n\nHuginn Hears is a Python application designed to transcribe speech and summarize it in Norwegian. It is meant to be used locally and ran on a single machine. The application is built using the [Streamlit](https://streamlit.io/) framework for the user interface, [Faster-Whisper](https://github.com/SYSTRAN/faster-whisper) for speech-to-text transcription, [llmlingua-2](https://github.com/microsoft/LLMLingua) for compressing the transcribed text and [llama-ccp-python](https://github.com/abetlen/llama-cpp-python) for summarization. The main goal is to allow useres with little technical knowledge to test and try out STOA models locally on their computer. Taking advatage of the amazing open source projects out there and bundel it all into a simple installer. \n\n## Features\n- Transcribes speech into text.\n- Summarizes the transcribed text.\n- Supports both English and Norwegian languages.\n\n\n\nhttps://github.com/MagnusS0/HuginnHears/assets/97634880/9cc09696-e26b-4464-a2cd-3a0e5603533c\n\n\n\n## Installation\nThis project uses [Poetry](https://python-poetry.org/) for dependency management. Before installing the project dependencies, it's essential to set up certain environment variables required by [llama-ccp-python](https://github.com/abetlen/llama-cpp-python).\n\n### Setting Environment Variables for llama-cpp-python\n`llama-cpp-python` requires specific environment variables to be set up in your system to function correctly. Follow the instructions in their repo to get the correct variables for your system. https://github.com/abetlen/llama-cpp-python \n\n**Examples**\n\n```bash    \n# Linux and Mac\nCMAKE_ARGS=\"-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS\"\n```\n\n```bash\n# Windows\n$env:CMAKE_ARGS = \"-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS\"\n```\n\u003c/details\u003e\n\n#### Commen errors 🤯\n\u003cdetails\u003e\n\u003csummary\u003e Soulutions from llama-cpp-python \u003c/summary\u003e\n    \n### Windows Notes\n\n\u003cdetails\u003e\n\u003csummary\u003eError: Can't find 'nmake' or 'CMAKE_C_COMPILER'\u003c/summary\u003e\n\nIf you run into issues where it complains it can't find `'nmake'` `'?'` or CMAKE_C_COMPILER, you can extract w64devkit as [mentioned in llama.cpp repo](https://github.com/ggerganov/llama.cpp#openblas) and add those manually to CMAKE_ARGS before running `pip` install:\n\n```ps\n$env:CMAKE_GENERATOR = \"MinGW Makefiles\"\n$env:CMAKE_ARGS = \"-DLLAMA_OPENBLAS=on -DCMAKE_C_COMPILER=C:/w64devkit/bin/gcc.exe -DCMAKE_CXX_COMPILER=C:/w64devkit/bin/g++.exe\"\n```\n\nSee the above instructions and set `CMAKE_ARGS` to the BLAS backend you want to use.\n\u003c/details\u003e\n\n### MacOS Notes\n\nDetailed MacOS Metal GPU install documentation is available at [docs/install/macos.md](https://llama-cpp-python.readthedocs.io/en/latest/install/macos/)\n\n\u003cdetails\u003e\n\u003csummary\u003eM1 Mac Performance Issue\u003c/summary\u003e\n\nNote: If you are using Apple Silicon (M1) Mac, make sure you have installed a version of Python that supports arm64 architecture. For example:\n\n```bash\nwget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh\nbash Miniforge3-MacOSX-arm64.sh\n```\n\nOtherwise, while installing it will build the llama.cpp x86 version which will be 10x slower on Apple Silicon (M1) Mac.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eM Series Mac Error: `(mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64'))`\u003c/summary\u003e\n\nTry installing with\n\n```bash\nCMAKE_ARGS=\"-DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_APPLE_SILICON_PROCESSOR=arm64 -DLLAMA_METAL=on\" pip install --upgrade --verbose --force-reinstall --no-cache-dir llama-cpp-python\n```\n\u003c/details\u003e\n\u003c/details\u003e\n\n### Installing Project Dependencies\nAfter setting up the required environment variables, you can proceed to install the project.\nEnsure you have Poetry installed on your system. Then, run the following command in the project root directory:\n```bash\npoetry install\n```\nThis will install all the necessary dependencies as defined in the `pyproject.toml` file.\n\n## Usage\nTo run the application, use the following command:\n```bash\nstreamlit run streamlit_app/app.py\n```\nThis will start the Streamlit server and the application will be accessible at `localhost:8501`.\n\n## Building\nTo build the project into an executable, use the `setup.py` script with [cx_Freeze](https://cx-freeze.readthedocs.io/): \u003cbr\u003e\n**NB**: Make sure you installed `llama-cpp-python` with static linking. \n```bash\npython setup.py build\n```\nThis will create an executable in the `build` directory.\n\n## Acknowledgements\nThis project build on a lot of great work done by others. The following projects were used:\n- [Faster-Whisper](https://github.com/SYSTRAN/faster-whisper) for speech-to-text transcription.\n- [llmlingua-2](https://github.com/microsoft/LLMLingua) for prompt compression.\n- [llama-ccp-python](https://github.com/abetlen/llama-cpp-python) to run LLMs locally and on CPUs.\n    - [llama-ccp](https://github.com/ggerganov/llama.cpp)\n- [cx_Freeze](https://cx-freeze.readthedocs.io/) for building executables.\n- [Langchain](https://www.langchain.com/) for controlling the prompt-response flows.\n- [Streamlit](https://streamlit.io/) for building the UI.\n\nBig thanks to all the contributors to these open-source projects!\n\nIn addition, the following models were used:\n- [Nasjonalbiblioteket AI Lab](https://huggingface.co/NbAiLab/nb-whisper-small) NB-Whisper.\n- [Microsoft](https://huggingface.co/microsoft/llmlingua-2-xlm-roberta-large-meetingbank) LLMLingua-2.\n- [TheBloke](https://huggingface.co/TheBloke) for all sorts quantisized models.\n\n### Papers\nYou can read more about these models in these papers:\n\n- [LLMLingua-2: Data Distillation for Efficient and Faithful Task-Agnostic Prompt Compression](https://arxiv.org/abs/2403.12968)\n\n- [Whispering in Norwegian: Navigating Orthographic and Dialectic Challenges](https://arxiv.org/abs/2402.01917)\n\n\n## License\nThis project is licensed under the Appache 2.0 License. See the `LICENSE` file for more information.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagnuss0%2Fhuginnhears","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmagnuss0%2Fhuginnhears","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagnuss0%2Fhuginnhears/lists"}