Catalog npm
PACKAGE EXPLORERView in registry

60db

npm

Official 60db SDK for Node.js

60dbaisttttsvoice
Versions collected8
Direct dependencies3From release 1.0.9
Last observed20 Oct, 20:44 UTC

README

Current package documentation

60db

Official 60db SDK for JavaScript/TypeScript

Installation

npm install 60db

Quick Start

import { SixtyDBClient } from '60db';

const client = new SixtyDBClient('your-api-key');

Features

🎤 Text-to-Speech

Basic TTS (returns ArrayBuffer):

const audio = await client.textToSpeech({
  text: 'Hello, world!',
  voice_id: 'your-voice-id',
  speed: 1.0,        // 0.5 to 2.0 (default 1.0)
  pitch: 0,          // -10 to 10 (default 0)
  stability: 1,      // 0 to 1 (default 1)
  boost_volume: false,
  sample_rate: 24000
});

Streaming TTS (real-time chunks):

await client.textToSpeechStream(
  {
    text: 'This is a streaming example.',
    voice_id: 'your-voice-id',
    sample_rate: 24000
  },
  {
    onChunk: (chunkIndex, totalBytes) => {
      console.log(`Progress: ${chunkIndex} chunks, ${totalBytes} bytes`);
    },
    onRawChunk: (pcmBytes, sampleRate) => {
      console.log(`Received: ${pcmBytes.length} bytes at ${sampleRate}Hz`);
    },
    onComplete: (wavUrl, sampleRate, totalPcmBytes) => {
      console.log(`Complete! WAV: ${wavUrl}`);
      console.log(`Duration: ${totalPcmBytes / (sampleRate * 2)} seconds`);
    },
    onError: (error) => {
      console.error('Error:', error);
    }
  }
);

🤖 Chat Completions (LLM)

Non-streaming (simple):

const response = await client.chat.completions.create({
  model: 'qcall/slm-3b-int4',
  messages: [
    { role: 'system', content: 'You are a helpful assistant.' },
    { role: 'user', content: 'What is 60db?' }
  ],
  stream: false
});

console.log(response.choices[0].message.content);

Streaming (real-time):

const stream = await client.chat.completions.create({
  model: 'qcall/slm-3b-int4',
  messages: [
    { role: 'system', content: 'You are a helpful assistant.' },
    { role: 'user', content: 'Tell me a joke' }
  ],
  stream: true
});

for await (const chunk of stream) {
  if (chunk.choices?.[0]?.delta?.content) {
    process.stdout.write(chunk.choices[0].delta.content);
  }
}

Custom parameters:

const response = await client.chat.completions.create({
  model: 'qcall/slm-3b-int4',
  messages: [
    { role: 'user', content: 'Explain AI briefly' }
  ],
  top_k: 50,                           // Default: 100
  chat_template_kwargs: {
    enable_thinking: true              // Enable thinking mode
  },
  stream: false
});

🎧 Voices

// List all voices
const voices = await client.getVoices();
console.log('Total voices:', voices.data.cloned_voices.length);

// Get specific voice
const voice = await client.getVoice(voiceId);

🌍 Languages

const languages = await client.getLanguages();
// Returns: [{ language_id: 'en', name: 'English' }, ...]

🎤 Speech-to-Text

const result = await client.speechToText(audioFile, {
  language: 'en'
});

Configuration

const client = new SixtyDBClient({
  apiKey: 'your-api-key',
  baseUrl: 'https://api.60db.ai'  // Optional, default shown
});

API Reference

MethodDescription
textToSpeech(params)Convert text to speech (returns ArrayBuffer)
textToSpeechStream(params, callbacks)Stream text to speech with callbacks
chat.completions.create(params)Chat completions (LLM) with streaming support
getVoices()List all available voices
getVoice(id)Get specific voice details
getLanguages()Get supported languages
speechToText(audio, options)Transcribe audio to text

License

MIT

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 8

Collected releases
VersionPublishedDirect dependenciesOpen version
1.0.9Registry latest8 Apr 20263
1.0.88 Apr 20263
1.0.78 Apr 20263
1.0.56 Feb 20263
1.0.46 Feb 20263
1.0.36 Feb 20263
1.0.26 Feb 20263
1.0.16 Feb 20263

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 20:44 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:a7d0c7c2fc26f33e768db4bd1c4972812b9f9b1d95d27b0ed5fd4ec5ce74bb5e