Catalog npm
Back to packageRELEASE DETAILS

1.0.1

npm

60db

Official 60db SDK for Node.js

60dbaisttttsvoice
Published6 Feb 2026
Direct dependencies3
Transitive dependenciesNot calculated

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.

Declared dependencies 3

Native requirements
3 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
axios
Environment
{
  "local_name": "axios",
  "alias": false,
  "peer_metadata": null
}
^1.6.0runtime
typescript
Environment
{
  "local_name": "typescript",
  "alias": false,
  "peer_metadata": null
}
^5.3.0development
@types/node
Environment
{
  "local_name": "@types/node",
  "alias": false,
  "peer_metadata": null
}
^20.0.0development

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "shasum": "5a67bda6c5c3b40884c5d13fec98cf56ada60eb5",
  "tarball": "https://registry.npmjs.org/60db/-/60db-1.0.1.tgz",
  "fileCount": 4,
  "integrity": "sha512-2hFIbIZ3D0ognR0j2Q4yVoqtJeNU+LsQArAN4nyM7CX4HGoAQheKxwKnqXO3dWlKvSy+3y1tt2clVu7Lrv+suQ==",
  "signatures": [
    {
      "sig": "MEQCIFK7ordS4GHYc5JBNxeiH39BAnSgw5N8Gi0eix7b7qX5AiADerlzt+QVlLqS6RED+cew65MZmAMtr3/ZhgYNM+7+QA==",
      "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"
    }
  ],
  "unpackedSize": 10572
}

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_version:beeccefdf68585e312fc73fda4d59c74947dd7adef83804d64c547f4eefa80db

Other collected versions

1.0.98 Apr1.0.88 Apr1.0.78 Apr1.0.56 Feb1.0.46 Feb1.0.36 FebView all collected versions →