Current collected state Current
Observed since 20 Oct, 20:44 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
60db
Official 60db SDK for Node.js
Official 60db SDK for JavaScript/TypeScript
npm install 60db
import { SixtyDBClient } from '60db';
const client = new SixtyDBClient('your-api-key');
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);
}
}
);
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
});
// 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);
const languages = await client.getLanguages();
// Returns: [{ language_id: 'en', name: 'English' }, ...]
const result = await client.speechToText(audioFile, {
language: 'en'
});
const client = new SixtyDBClient({
apiKey: 'your-api-key',
baseUrl: 'https://api.60db.ai' // Optional, default shown
});
| Method | Description |
|---|---|
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 |
MIT
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
axiosEnvironment{
"local_name": "axios",
"alias": false,
"peer_metadata": null
} | ^1.6.0 | runtime |
typescriptEnvironment{
"local_name": "typescript",
"alias": false,
"peer_metadata": null
} | ^5.3.0 | development |
@types/nodeEnvironment{
"local_name": "@types/node",
"alias": false,
"peer_metadata": null
} | ^20.0.0 | development |
Source distribution
{
"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
}Observed since 20 Oct, 20:44 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:beeccefdf68585e312fc73fda4d59c74947dd7adef83804d64c547f4eefa80db