aivmlib-web
Version:
Aivis Voice Model File (.aivm/.aivmx) Utility Library for Web
89 lines (88 loc) • 4.49 kB
TypeScript
import { AivmMetadata, AivmManifest } from './schemas/aivm-manifest';
export * from './schemas/aivm-manifest';
export * from './schemas/style-bert-vits2';
export * from './schemas/aivm-manifest-constants';
/**
* Aivis Voice Model File (.aivm/.aivmx) Utility Library
*
* AIVM / AIVMX ファイルフォーマットの仕様は下記ドキュメントを参照のこと
* ref: https://github.com/Aivis-Project/aivmlib#aivm-specification
*/
export default class Aivmlib {
/**
* ハイパーパラメータとスタイルベクトルファイルを読み込み、バリデーションする内部メソッド
* @param model_architecture 音声合成モデルのアーキテクチャ
* @param hyper_parameters_file ハイパーパラメータファイル
* @param style_vectors_file スタイルベクトルファイル
* @returns ハイパーパラメータとスタイルベクトルのデータ
*/
private static loadAndValidateHyperParametersAndStyleVectors;
/**
* ハイパーパラメータファイルとスタイルベクトルファイルから AIVM メタデータを生成する
* @param model_architecture 音声合成モデルのアーキテクチャ
* @param hyper_parameters_file ハイパーパラメータファイル
* @param style_vectors_file スタイルベクトルファイル
* @returns 生成された AIVM メタデータ
*/
static generateAivmMetadata(model_architecture: AivmManifest['model_architecture'], hyper_parameters_file: File, style_vectors_file: File | null): Promise<AivmMetadata>;
/**
* 既存の AIVM メタデータを、新しいハイパーパラメータとスタイルベクトルで更新する (モデル差し替え用)
* 既存の UUID やユーザー設定メタデータは可能な限り維持される
* @param existing_metadata 既存の AIVM メタデータ
* @param hyper_parameters_file 新しいハイパーパラメータファイル
* @param style_vectors_file 新しいスタイルベクトルファイル
* @returns 更新された AIVM メタデータと警告メッセージの配列
*/
static updateAivmMetadata(existing_metadata: AivmMetadata, hyper_parameters_file: File, style_vectors_file: File | null): Promise<{
updated_metadata: AivmMetadata;
warnings: string[];
}>;
/**
* AIVM メタデータをバリデーションする
* @param raw_metadata 辞書形式の生のメタデータ
* @returns バリデーションが完了した AIVM メタデータ
*/
static validateAivmMetadata(raw_metadata: {
[key: string]: string;
}): AivmMetadata;
/**
* AIVM ファイルから AIVM メタデータを読み込む
* @param aivm_file AIVM ファイル
* @returns AIVM メタデータ
*/
static readAivmMetadata(aivm_file: File): Promise<AivmMetadata>;
/**
* AIVMX ファイルから AIVM メタデータを読み込む
* @param aivmx_file AIVMX ファイル
* @returns AIVM メタデータ
*/
static readAivmxMetadata(aivmx_file: File): Promise<AivmMetadata>;
/**
* AIVM メタデータを生の辞書形式にシリアライズする
* @param aivm_metadata AIVM メタデータ
* @returns シリアライズされた AIVM メタデータ (文字列から文字列へのマップ)
*/
static serializeAivmMetadata(aivm_metadata: AivmMetadata): {
[key: string]: string;
};
/**
* AIVM メタデータを AIVM ファイルに書き込む
* @param aivm_file AIVM ファイル
* @param aivm_metadata AIVM メタデータ
* @returns 書き込みが完了した AIVM ファイル
*/
static writeAivmMetadata(aivm_file: File, aivm_metadata: AivmMetadata): Promise<File>;
/**
* AIVM メタデータを AIVMX ファイルに書き込む
* @param aivmx_file AIVMX ファイル
* @param aivm_metadata AIVM メタデータ
* @returns 書き込みが完了した AIVMX ファイル
*/
static writeAivmxMetadata(aivmx_file: File, aivm_metadata: AivmMetadata): Promise<File>;
/**
* AIVM マニフェストの内容をハイパーパラメータにも反映する
* 結果は AivmMetadata オブジェクトに直接 in-place で反映される
* @param aivm_metadata AIVM メタデータ
*/
static applyAivmManifestToHyperParameters(aivm_metadata: AivmMetadata): void;
}