JavaScript
DolphinVoice JavaScript SDK
DolphinVoice SDKは音声認識と合成のために使用されます。このSDKは3つの主要なモジュールを提供します:
- リアルタイム音声認識 (ASR)
- 録音ファイル書き起こし (FileAsr)
- 音声合成 (TTS)
ドキュメント
DolphinVoice SDKに関する詳細なドキュメントやガイドについては、以下のリソースを参照してください:
技術サポートが必要な場合や質問がある場合は、開発者サポートチームにお問い合わせください。
インストール
このSDKは npm から直接インストールできます。
npm install @dolphinvoice/sdkまたは
pnpm install @dolphinvoice/sdkまたは
yarn add @dolphinvoice/sdk使用方法
// ASRモジュールと必要な型定義をインポート
import { RealTimeAsrSDK } from '@dolphinvoice/sdk';
import type { RealTimeAsrOptions, RealTimeAsrEventData } from '@dolphinvoice/sdk';
// 認証情報を使ってSDKを初期化
const app_id = 'YOUR_APP_ID';
// 方法1: Signatureを使用(推奨)
// 署名を生成するには、'https://developers.dolphinvoice.ai/ja/docs/api/start/auth#15-signature計算方法' を参照してください。
const authOptions = {
signature: 'SERVER_GENERATED_SIGNATURE',
timestamp: 1712345678,
};
// リアルタイム音声認識SDKの新しいインスタンスを作成
const sdk = new RealTimeAsrSDK(app_id, authOptions);
//// 方法2:appSecretを直接使用(安全でない)
//const appSecret = 'YOUR_APP_SECRET';
//// リアルタイム音声認識SDKの新しいインスタンスを作成
//const sdk = new RealTimeAsrSDK(app_id, appSecret);
// 後で使用するためにマイクストリームの参照を保存
let micStream: MediaStream | null = null;
// マイクベースの音声認識を開始する関数
const startMicRecognition = async () => {
// 認識パラメータを構成
const options: RealTimeAsrOptions = {
lang_type: 'ja-JP', // 言語コード
};
// マイクのアクセス権を要求し、最適な音声設定を設定
micStream = await navigator.mediaDevices.getUserMedia({
audio: {
echoCancellation: true, // エコーの干渉を減少させる
noiseSuppression: true, // 背景ノイズの干渉を減少させる
sampleRate: 16000, // 16kHzサンプリングレート、認識パラメータのサンプリングレート設定に応じて調整が必要で、最適な認識効果を得る
},
});
// 認識セッションを初期化
await sdk.start(options);
// 異なる認識状態のイベント処理
// 認識セッション開始
sdk.on('TranscriptionStarted', (data: RealTimeAsrEventData) => {
console.log('TranscriptionStarted:', data);
// 認識開始、マイクストリームをSDKに送信
if (micStream) {
sdk.sendStream(micStream);
}
});
// 新しい文の開始
sdk.on('SentenceBegin', (data: RealTimeAsrEventData) => {
console.log('SentenceBegin:', (data as any).payload?.result);
});
// 認識中間結果
sdk.on('TranscriptionResultChanged', (data: RealTimeAsrEventData) => {
console.log('TranscriptionResultChanged:', (data as any).payload?.result);
});
// 完了した文
sdk.on('SentenceEnd', (data: RealTimeAsrEventData) => {
console.log('SentenceEnd:', (data as any).payload?.result);
});
// セッション完了
sdk.on('TranscriptionCompleted', (data: RealTimeAsrEventData) => {
console.log('TranscriptionCompleted:', (data as any).payload?.result);
// 完了後にマイクリソースをクリーンアップ
micStream?.getTracks().forEach((track) => track.stop());
});
// 警告イベント
sdk.on('Warning', (data: RealTimeAsrEventData) => {
console.log('Warning:', (data as any).header);
});
// エラーイベント
sdk.on('Error', (data: RealTimeAsrEventData) => {
console.error('Error:', (data as any).header);
});
};
// 認識を停止しリソースをクリーンアップ
const stopMicRecognition = () => {
sdk.stop(); // 認識セッションを停止
// マイクリソースを解放
micStream?.getTracks().forEach((track) => track.stop());
};
// 認識開始呼び出しメソッド
startMicRecognition();
// 認識停止呼び出しメソッド
stopMicRecognition();// FileAsrモジュールと必要な型定義をインポート
import { FileAsr } from '@dolphinvoice/sdk';
import type { FileAsrParams } from '@dolphinvoice/sdk';
// 認証情報を使ってSDKを初期化
const app_id = 'YOUR_APP_ID';
//// 急速版を使用する場合は、baseOptionsを設定
//const baseOptions = {
// interface_version: 'vip',
//}
// 方法1: Signatureを使用(推奨)
// 署名を生成するには、'https://developers.dolphinvoice.ai/ja/docs/api/start/auth#15-signature計算方法' を参照してください。
const authOptions = {
signature: 'SERVER_GENERATED_SIGNATURE',
timestamp: 1712345678,
};
// 録音ファイル書き起こしSDKの新しいインスタンスを作成
const sdk = new FileAsr(app_id, authOptions, baseOptions);
//// 方法2:appSecretを直接使用(安全でない)
//const appSecret = 'YOUR_APP_SECRET';
//// 録音ファイル書き起こしSDKの新しいインスタンスを作成
//const sdk = new FileAsr(app_id, appSecret, baseOptions);
// 録音ファイルを書き起こす関数
const transcribeAudioFile = () => {
// パラメータを構成
const params: FileAsrParams = {
"lang_type": "ja-JP", // 言語コード
"format": "mp3", // 音声ファイル形式
};
// ファイルをアップロードして書き起こす
sdk.upload(params, (progress, result) => {
// 進行状況コールバックが処理中の更新を提供
console.log(`Progress: ${progress}%`, result);
}).then(finalResult => {
// 成功コールバック、書き起こしの結果を含む
console.log('Result:', finalResult);
}).catch(err => {
// エラーハンドリング
console.error('Error:', err);
});
}
// 書き起こし開始呼び出しメソッド
transcribeAudioFile(); // TTSモジュールと必要な型定義をインポート
import { ShortTtsSDK } from '@dolphinvoice/sdk';
import type { ShortTtsEventData, ShortTtsOptions } from '@dolphinvoice/sdk';
// 認証情報を使ってSDKを初期化
const app_id = 'YOUR_APP_ID';
//// 非ストリーミングAPI(HTTP API)を使用する場合は、baseOptionsを設定
//const baseOptions = {
// interface_mode: 'http',
//}
// 方法1: Signatureを使用(推奨)
// 署名を生成するには、'https://developers.dolphinvoice.ai/ja/docs/api/start/auth#15-signature計算方法' を参照してください。
const authOptions = {
signature: 'SERVER_GENERATED_SIGNATURE',
timestamp: 1712345678,
};
// 音声合成SDKの新しいインスタンスを作成
const sdk = new ShortTtsSDK(app_id, authOptions, baseOptions); // baseOptionsは非必須
//// 方法2:appSecretを直接使用(安全でない)
//const appSecret = 'YOUR_APP_SECRET';
//// 音声合成SDKの新しいインスタンスを作成
//const sdk = new ShortTtsSDK(app_id, appSecret, baseOptions); // baseOptionsは非必須
// テキストを合成する音声の関数
const synthesizeSpeech = () => {
// 合成パラメータを構成
const options: ShortTtsOptions = {
"text": "天気がいいから、散歩しましょう。", // 合成するテキスト
"lang_type": "ja-JP" // 言語コード
};
// 音声合成セッションを初期化
sdk.start(options);
// 異なる合成状態のイベント処理
// 合成開始
sdk.on('SynthesisStarted', (data: ShortTtsEventData) => {
console.log('SynthesisStarted:', data)
});
// 合成時間
sdk.on('SynthesisDuration', (data: ShortTtsEventData) => {
// 合成音声の総時間を提供
console.log('SynthesisDuration:', data)
});
// 合成タイムスタンプ
sdk.on('SynthesisTimestamp', (data: ShortTtsEventData) => {
// 合成テキストのタイムスタンプ情報を提供
console.log('SynthesisTimestamp:', data)
});
// 合成音声データブロック
sdk.on('BinaryData', (data: ShortTtsEventData) => {
// 合成中に受信した音声データ
console.log('BinaryData:', data)
// ここでは通常音声データを処理します
// 例えば、再生するかファイルに保存
});
// 合成完了
sdk.on('SynthesisCompleted', (data: ShortTtsEventData) => {
console.log('SynthesisCompleted:', data)
});
// 警告イベント
sdk.on('Warning', (data: ShortTtsEventData) => {
console.log('Warning:', data.header);
});
// エラーイベント
sdk.on('Error', (data: ShortTtsEventData) => {
console.error('Error:', data.header);
});
}
// 音声合成開始呼び出しメソッド
synthesizeSpeech(); APIリファレンス
リアルタイム音声認識モジュールは、リアルタイムオーディオストリームを処理するために使用されます。
メソッド
on(event: RealTimeAsrEventType, callback: RealTimeAsrEventCallback)- 認識イベントにイベントハンドラーを登録start(params: RealTimeAsrOptions)- 指定されたパラメータを使用して新しい認識セッションを開始stop()- 現在の認識セッションを停止し、リソースを解放sendStream(stream: MediaStream)- 音声ストリームを認識サービスに送信
完全なAPIドキュメントはDolphinVoice APIドキュメントを参照してください。
イベント
TranscriptionStarted- 認識セッションが開始されたときにトリガーSentenceBegin- 新しい文が検出されたときにトリガーTranscriptionResultChanged- 中間結果が更新されたときにトリガーSentenceEnd- 文が完了したときにトリガーTranscriptionCompleted- 認識セッション全体が完了したときにトリガーWarning- 非致命的な警告が発生したときにトリガーError- エラーが発生したときにトリガー
音声ファイルの書き起こしモジュールは、事前に録音された音声ファイルを処理するために使用されます。
メソッド
upload(params: FileAsrParams, onProgress: (progress: number, result?: any) => void)- 音声ファイルをアップロードして書き起こし、進行状況の更新を提供
完全なAPIドキュメントはDolphinVoice APIドキュメントを参照してください。
音声合成モジュールは、テキストを自然な音声に変換するために使用されます。
メソッド
on(event: ShortTtsEventType, callback: ShortTtsEventCallback)- 合成イベントにイベントハンドラーを登録start(params: ShortTtsOptions)- 指定されたパラメータを使用して新しい合成セッションを開始
完全なAPIドキュメントはDolphinVoice APIドキュメントを参照してください。
イベント
SynthesisStarted- 合成プロセスが開始されたときにトリガーSynthesisDuration- 合成音声の総時間を提供SynthesisTimestamp- 合成テキストのタイムスタンプ情報を提供BinaryData- 合成中に受信した音声データSynthesisCompleted- 合成プロセスが完了したときにトリガーWarning- 非致命的な警告が発生したときにトリガーError- エラーが発生したときにトリガー
ライセンス
MIT