vocra_core 0.2.2
vocra_core: ^0.2.2 copied to clipboard
Pure-Dart engine behind Vocra: streaming voice-AI orchestration (STT to LLM to TTS) with pluggable Groq, OpenAI, Gemini, xAI, Z.ai, Deepgram, and ElevenLabs providers.
Changelog #
0.2.2 #
Packaging and metadata only — no Dart API or behavior changes.
Added #
- A funding link (GitHub Sponsors) and
https://www.vocra.cloudin the package metadata.
Fixed #
repositoryandissue_trackerpointed at the demo app repository, which broke pub.dev's repository verification. Both now resolve to this package's directory in the SDK repository.
Changed #
- Licensed under MIT (the 0.2.1 release was published as MIT; an interim proprietary relicense never shipped to pub.dev).
0.2.1 #
First pub.dev release (developed in-repo as voice_core through 0.1.0).
Added #
- Provider facades
VocraLlm/VocraTts/VocraStt(e.g.VocraLlm.openAi(apiKey: ...)); newOpenAiLlm+ sharedOpenAiCompatibleLlmbase, plusXaiLlm(Grok) andZaiLlm(GLM) adapters. - Typed model/voice catalogs picked by the facades:
GroqModel,OpenAiModel,GeminiModel,XaiModel,ZaiModel,DeepgramVoice,ElevenLabsVoice,ElevenLabsModel,DeepgramSttModel— each withvalues,.custom(id), and aModelTier; plusLlmVendor/TtsVendor/SttVendorenums for pickers. VocraPromptstructured system prompts (sections,json,jsonText) as an alternative toVocraConfig.systemPrompt.- Conversation control & retrieval:
conversation,messages(live aggregated transcript viaTranscriptAggregator),mute/unmute/isMuted,endSession(),sessionEnded,lastReport, and theSessionReportmodel. VocraConfig.policies(SessionPolicies: max duration, silence timeout, end phrases, farewellendMessage) andVocraConfig.assistantName.Greeting.none();DeepgramSttlanguageparameter.VocraConfig.greeting(Greeting.text/Greeting.generated) so the assistant can speak first when a conversation starts.VocraConfig.naturalSpeech: augments the system prompt with a live-voice style guide (brief spoken replies, contractions, no markdown/emojis), plus light audio-tag guidance when the TTS supports tags.SpeechTextNormalizer: strips markdown, emojis, and unsupported audio tags from text before it reaches TTS. Transcripts and history keep the original.VoiceEngine.speak(text): speak a scripted assistant utterance (no LLM call).TtsProvider.supportsAudioTagsandLlmProvider.warmUp/TtsProvider.warmUp.GeminiLlm(streaming) andElevenLabsTtsproviders;ElevenLabsTtsgains optionalstyle/useSpeakerBoostvoice settings.DeepgramSttexposesendpointing/utteranceEndtuning parameters.
Changed #
- Breaking (rename):
VoiceConfig→VocraConfig;systemPromptis now optional (provide it orprompt). - Breaking (behavior): conversation history now resets on each
startConversation()(a session is one conversation). - Breaking (interface):
LlmProviderandTtsProvidergained members (warmUp,supportsAudioTags). Custom providers usingimplementsmust add them; the built-in adapters are updated. - Breaking (default):
GroqLlmnow defaults toopenai/gpt-oss-20b(llama-3.1-8b-instantis retired by Groq on 2026-08-16) and sendsreasoning_effort: low/include_reasoning: falseforopenai/gpt-oss*. - Text sent to TTS is now normalized (see
SpeechTextNormalizer). - First-turn latency: LLM/TTS network paths are pre-warmed and the mic + STT transport start concurrently at conversation start.
Fixed #
- A
MicSource.resume()failure after a turn now surfaces as aProviderError(provider: 'microphone')on theerrorsstream instead of escaping as an unhandled async exception.
0.1.0 #
Internal pre-release (git tag v0.1.0, never published): streaming
conversation engine (VoiceEngine, TurnMachine, AudioQueue), Groq LLM +
Deepgram STT/TTS adapters, and the typed VoiceError hierarchy.