you should close stream after all chunks has been send
// Send audio chunks in goroutine
go func() {
const chunkSize = 8192
for i := 0; i < len(audioData); i += chunkSize {
end := min(i+chunkSize, len(audioData))
chunk := audioData[i:end]
if err := client.SendAudio(ctx, chunk); err != nil {
errChan <- fmt.Errorf("failed to send audio chunk: %w", err)
return
}
time.Sleep(200 * time.Millisecond)
}
errChan <- client.stream.CloseSend()
}()