{"id":24617520,"url":"https://github.com/pacphi/spring-ai-converse","last_synced_at":"2025-03-18T21:26:57.670Z","repository":{"id":273428803,"uuid":"919694544","full_name":"pacphi/spring-ai-converse","owner":"pacphi","description":"Community Spring Boot and Spring AI building blocks for conversations between humans and artificial intelligence.","archived":false,"fork":false,"pushed_at":"2025-03-04T17:35:53.000Z","size":111,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-04T18:33:41.637Z","etag":null,"topics":["inquiry","llms","speech-to-text","spring-ai","spring-boot","synthesis","text-to-speech","transcription"],"latest_commit_sha":null,"homepage":"","language":"Java","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/pacphi.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":"2025-01-20T20:47:44.000Z","updated_at":"2025-03-04T17:35:55.000Z","dependencies_parsed_at":"2025-01-20T21:40:31.194Z","dependency_job_id":"77aba325-e3fa-4878-ae73-05b20560d6f5","html_url":"https://github.com/pacphi/spring-ai-converse","commit_stats":null,"previous_names":["pacphi/spring-ai-converse"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pacphi%2Fspring-ai-converse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pacphi%2Fspring-ai-converse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pacphi%2Fspring-ai-converse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pacphi%2Fspring-ai-converse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pacphi","download_url":"https://codeload.github.com/pacphi/spring-ai-converse/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244308634,"owners_count":20432241,"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":["inquiry","llms","speech-to-text","spring-ai","spring-boot","synthesis","text-to-speech","transcription"],"created_at":"2025-01-24T23:39:38.797Z","updated_at":"2025-03-18T21:26:57.645Z","avatar_url":"https://github.com/pacphi.png","language":"Java","readme":"# Spring AI Converse\n\n[![GA](https://img.shields.io/badge/Release-Alpha-darkred)](https://img.shields.io/badge/Release-Alpha-darkred) ![Github Action CI Workflow Status](https://github.com/pacphi/spring-ai-converse/actions/workflows/ci.yml/badge.svg) [![Known Vulnerabilities](https://snyk.io/test/github/pacphi/spring-ai-converse/badge.svg?style=plastic)](https://snyk.io/test/github/pacphi/spring-ai-converse)\n\nCommunity Spring Boot and Spring AI building blocks for conversations between humans and artificial intelligence.\n\n* [Background](#background)\n* [Getting started](#getting-started)\n* [Prerequisites](#prerequisites)\n* How to\n    * [Clone](#how-to-clone)\n    * [Build](#how-to-build)\n    * [Consume](#how-to-consume)\n    * [Run](#how-to-run)\n\n## Background\n\nAs a Spring Boot and Spring AI developer, I want\nto consume libraries that make it convenient to add capabilities to my application(s)\nas for the following\n\nUse-cases:\n\n* [x] Interfaces and abstract implementations for conversations (speech to text, inquiry, and text to speech)\n* Support for speech to text using\n  * [x] [Assembly AI](https://www.assemblyai.com/blog/speech-recognition-in-java/)\n  * [x] [Google STT](https://cloud.google.com/speech-to-text/docs/transcribe-client-libraries#client-libraries-install-java)\n  * [x] [Picovoice Cheetah](https://github.com/Picovoice/cheetah?tab=readme-ov-file#java-demos)\n  * [x] [Picovoice Leopard](https://github.com/Picovoice/leopard?tab=readme-ov-file#java-demos)\n* Support for text to speech using \n  * [x] [ElevenLabs API](https://elevenlabs.io/docs/api-reference/text-to-speech/convert)\n  * [ ] [Parler TTS](https://huggingface.co/ecyht2/parler-tts-mini-v1-GGUF)\n  * [x] [Google TTS](https://cloud.google.com/text-to-speech/docs/create-audio-text-client-libraries#client-libraries-install-java)\n* [ ] Sample converse implementations\n\n## Getting started\n\nStart with:\n\n* A Github [account](https://github.com/signup)\n* One or more of a(n)\n  * AssemblyAI [account](https://www.assemblyai.com/dashboard/signup)\n  * Eleven Labs [account](https://elevenlabs.io/app/sign-up)\n  * Google Cloud [account](https://cloud.google.com/docs/get-started)\n  * Picovoice [account](https://console.picovoice.ai/signup)\n* An LLM provider\n  * e.g., HuggingFace, Gemini, Ollama, or OpenAI\n\n## Prerequisites\n\n* Git CLI (2.43.0 or better)\n* Github CLI (2.65.0 or better)\n* httpie CLI (3.2.2 or better)\n* Java SDK (21 or better)\n* Maven (3.9.9 or better)\n* an LLM provider account (if using public cloud or commercially hosted models)\n\n## How to clone\n\nwith Git CLI\n\n```bash\ngit clone https://github.com/pacphi/spring-ai-converse\n```\n\nwith Github CLI\n\n```bash\ngh repo clone pacphi/spring-ai-converse\n```\n\n## How to build\n\nOpen a terminal shell, then execute:\n\n```bash\ncd spring-ai-converse\nmvn clean install\n```\n\n## How to consume\n\nIf you want to incorporate any of the starters as dependencies in your own projects, you would:\n\n### Add dependency\n\nMaven\n\n```maven\n\u003cdependency\u003e\n    \u003cgroupId\u003eme.pacphi\u003c/groupId\u003e\n    \u003cartifactId\u003espring-boot-elevenlabs-starter\u003c/artifactId\u003e\n    \u003cversion\u003e{release-version}\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nGradle\n\n```gradle\nimplementation 'me.pacphi:spring-boot-elevenlabs-starter:{release-version}'\n```\n\n\u003e Replace occurrences of {release-version} above with a valid artifact release version number\n\n### Add configuration\n\nFollowing Spring Boot conventions, you would add a stanza like this to your:\n\napplication.properties\n\n```properties\nspring.elevenlabs.enabled=true\nspring.elevenlabs.api-key=${ELEVENLABS_API_KEY:}\n# Consult https://api.elevenlabs.io/v1/voices for a list of all the available voices\nspring.elevenlabs.defaults.voiceId=Xb7hH8MSUJpSbSDYk0k2\n```\n\napplication.yml\n\n```yaml\nspring:\n  elevenlabs:\n    enabled: true\n    api-key: ${ELEVENLABS_API_KEY:}\n    defaults:\n      # Consult https://api.elevenlabs.io/v1/voices for a list of all the available voices\n      voiceId: Xb7hH8MSUJpSbSDYk0k2\n```\n\n\u003e Each dependency you add will require a similar stanza where you will typically: activate the capability, specify an API key (if required), and tune other associated configuration.\n\nConsult the [playground](playground) module's configuration for alternative\n`dependencies` and `configuration` that are available to add.\n\nConfiguration will be found in labeled `spring.config.activate.on-profile` sections of the [pom.xml](playground/pom.xml) file.\n\n## How to run\n\nThere's a sample application in the [playground](playground) module.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpacphi%2Fspring-ai-converse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpacphi%2Fspring-ai-converse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpacphi%2Fspring-ai-converse/lists"}