MR
Mayur Rathi
@mayurrathi
⭐ 5 GitHub stars

Azure Ai Voicelive Java

|

mkdir -p ./skills/azure-ai-voicelive-java && curl -sfL https://raw.githubusercontent.com/mayurrathi/awesome-agent-skills/main/skills/azure-ai-voicelive-java/SKILL.md -o ./skills/azure-ai-voicelive-java/SKILL.md

Run in terminal / PowerShell. Requires curl (Unix) or PowerShell 5+ (Windows).

Skill Content

# Azure AI VoiceLive SDK for Java


Real-time, bidirectional voice conversations with AI assistants using WebSocket technology.


Installation


```xml

<dependency>

<groupId>com.azure</groupId>

<artifactId>azure-ai-voicelive</artifactId>

<version>1.0.0-beta.2</version>

</dependency>

```


Environment Variables


```bash

AZURE_VOICELIVE_ENDPOINT=https://<resource>.openai.azure.com/

AZURE_VOICELIVE_API_KEY=<your-api-key>

```


Authentication


API Key


```java

import com.azure.ai.voicelive.VoiceLiveAsyncClient;

import com.azure.ai.voicelive.VoiceLiveClientBuilder;

import com.azure.core.credential.AzureKeyCredential;


VoiceLiveAsyncClient client = new VoiceLiveClientBuilder()

.endpoint(System.getenv("AZURE_VOICELIVE_ENDPOINT"))

.credential(new AzureKeyCredential(System.getenv("AZURE_VOICELIVE_API_KEY")))

.buildAsyncClient();

```


DefaultAzureCredential (Recommended)


```java

import com.azure.identity.DefaultAzureCredentialBuilder;


VoiceLiveAsyncClient client = new VoiceLiveClientBuilder()

.endpoint(System.getenv("AZURE_VOICELIVE_ENDPOINT"))

.credential(new DefaultAzureCredentialBuilder().build())

.buildAsyncClient();

```


Key Concepts


| Concept | Description |

|---------|-------------|

| `VoiceLiveAsyncClient` | Main entry point for voice sessions |

| `VoiceLiveSessionAsyncClient` | Active WebSocket connection for streaming |

| `VoiceLiveSessionOptions` | Configuration for session behavior |


Audio Requirements


- **Sample Rate**: 24kHz (24000 Hz)

- **Bit Depth**: 16-bit PCM

- **Channels**: Mono (1 channel)

- **Format**: Signed PCM, little-endian


Core Workflow


1. Start Session


```java

import reactor.core.publisher.Mono;


client.startSession("gpt-4o-realtime-preview")

.flatMap(session -> {

System.out.println("Session started");


// Subscribe to events

session.receiveEvents()

.subscribe(

event -> System.out.println("Event: " + event.getType()),

error -> System.err.println("Error: " + error.getMessage())

);


return Mono.just(session);

})

.block();

```


2. Configure Session Options


```java

import com.azure.ai.voicelive.models.*;

import java.util.Arrays;


ServerVadTurnDetection turnDetection = new ServerVadTurnDetection()

.setThreshold(0.5) // Sensitivity (0.0-1.0)

.setPrefixPaddingMs(300) // Audio before speech

.setSilenceDurationMs(500) // Silence to end turn

.setInterruptResponse(true) // Allow interruptions

.setAutoTruncate(true)

.setCreateResponse(true);


AudioInputTranscriptionOptions transcription = new AudioInputTranscriptionOptions(

AudioInputTranscriptionOptionsModel.WHISPER_1);


VoiceLiveSessionOptions options = new VoiceLiveSessionOptions()

.setInstructions("You are a helpful AI voice assistant.")

.setVoice(BinaryData.fromObject(new OpenAIVoice(OpenAIVoiceName.ALLOY)))

.setModalities(Arrays.asList(InteractionModality.TEXT, InteractionModality.AUDIO))

.setInputAudioFormat(InputAudioFormat.PCM16)

.setOutputAudioFormat(OutputAudioFormat.PCM16)

.setInputAudioSamplingRate(24000)

.setInputAudioNoiseReduction(new AudioNoiseReduction(AudioNoiseReductionType.NEAR_FIELD))

.setInputAudioEchoCancellation(new AudioEchoCancellation())

.setInputAudioTranscription(transcription)

.setTurnDetection(turnDetection);


// Send configuration

ClientEventSessionUpdate updateEvent = new ClientEventSessionUpdate(options);

session.sendEvent(updateEvent).subscribe();

```


3. Send Audio Input


```java

byte[] audioData = readAudioChunk(); // Your PCM16 audio data

session.sendInputAudio(BinaryData.fromBytes(audioData)).subscribe();

```


4. Handle Events


```java

session.receiveEvents().subscribe(event -> {

ServerEventType eventType = event.getType();


if (ServerEventType.SESSION_CREATED.equals(eventType)) {

System.out.println

🎯 Best For

  • Claude users
  • Data professionals
  • Analytics teams
  • Researchers

💡 Use Cases

  • Data pipeline auditing
  • Query optimization

📖 How to Use This Skill

  1. 1

    Install the Skill

    Copy the install command from the Terminal tab and run it. The SKILL.md file downloads to your local skills directory.

  2. 2

    Load into Your AI Assistant

    Open Claude and reference the skill. Paste the SKILL.md content or use the system prompt tab.

  3. 3

    Apply Azure Ai Voicelive Java to Your Work

    Provide context for your task — paste source material, describe your audience, or share existing work to guide the AI.

  4. 4

    Review and Refine

    Edit the AI output for accuracy, tone, and completeness. Add human insight where the AI lacks context.

❓ Frequently Asked Questions

How do I install Azure Ai Voicelive Java?

Copy the install command from the Terminal tab and run it. The skill downloads to ./skills/azure-ai-voicelive-java/SKILL.md, ready to use.

Can I customize this skill for my team?

Absolutely. Edit the SKILL.md file to add team-specific instructions, examples, or workflows.

⚠️ Common Mistakes to Avoid

Ignoring data quality

AI analysis inherits all data quality issues — profile your data first.

🔗 Related Skills