? AIVMLIB : Ai Vis V Oice M Odel File (.AIVM/.AIVMX) UTILIDADE LIB RARY
AIVM ( Ai Vis Voice M odel) / AIVMX ( Ai Vis Voice Model para Onn X ) é um formato de arquivo aberto para modelos de síntese de fala de IA que combinam modelos pré-treinados, hiperparameters, vetores de estilo, metadados de alto-falantes (nomes, lojas, licencios, icons, amostras de voz etc.), em filmes .
Observação
"AIVM" também é um termo geral para as especificações do formato AIVM/AIVMX e especificações de metadados.
Especificamente, o arquivo AIVM é um arquivo de modelo no "Formato SafeTetenss com metadados AIVM adicionado", e o arquivo AIVMX é um arquivo de modelo em "Formato OnNX com metadados AIVM adicionados".
"Metadados AIVM" refere -se a vários metadados que estão ligados a um modelo treinado, conforme definido na especificação do AIVM.
Você pode usar facilmente os modelos de síntese de fala da IA adicionando arquivos AIVM/AIVMX ao software que suporta especificações do AIVM, incluindo o AIVISSPEECH/AIVISSPEECH-MENGINE.
AIVMLIB/AIVMLIB-Web fornece um utilitário para leitura e gravação de metadados nos arquivos AIVM/AIVMX.
Este AIVMLIB é uma implementação de referência da especificação AIVM escrita em Python. Se você estiver usando um navegador da Web, use AIVMLib-Web.
Dica
O gerador AIVM permite gerar e editar arquivos AIVM/AIVMX facilmente usando a GUI no seu navegador.
Recomendamos o uso do gerador AIVM ao gerar e editar manualmente os arquivos AIVM/AIVMX.
Se você o instalar com o PIP, a ferramenta de linha de comando aivmlib também será instalada automaticamente.
Requer Python 3.11 ou superior.
pip install aivmlibEu uso poesia durante o desenvolvimento.
pip install poetry
git clone https://github.com/Aivis-Project/aivmlib.git
cd aivmlib
poetry install --with dev
poetry run aivmlib --helpAbaixo está como usar a própria ferramenta da CLI.
$ aivmlib --help
Usage: aivmlib [OPTIONS] COMMAND [ARGS]...
Aivis Voice Model File (.aivm/.aivmx) Utility Library
╭─ Options ─────────────────────────────────────────────────────────────────────────╮
│ --install-completion Install completion for the current shell. │
│ --show-completion Show completion for the current shell, to copy it │
│ or customize the installation. │
│ --help Show this message and exit. │
╰───────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ────────────────────────────────────────────────────────────────────────╮
│ create-aivm 与えられたアーキテクチャ, 学習済みモデル, ハイパーパラメータ, │
│ スタイルベクトルから AIVM メタデータを生成した上で、 │
│ それを書き込んだ仮の AIVM ファイルを生成する │
│ create-aivmx 与えられたアーキテクチャ, 学習済みモデル, ハイパーパラメータ, │
│ スタイルベクトルから AIVM メタデータを生成した上で、 │
│ それを書き込んだ仮の AIVMX ファイルを生成する │
│ show-metadata 指定されたパスの AIVM / AIVMX ファイル内に記録されている AIVM │
│ メタデータを見やすく出力する │
╰───────────────────────────────────────────────────────────────────────────────────╯
$ aivmlib show-metadata --help
Usage: aivmlib show-metadata [OPTIONS] FILE_PATH
指定されたパスの AIVM / AIVMX ファイル内に記録されている AIVM メタデータを見やすく出力する
╭─ Arguments ───────────────────────────────────────────────────────────────────────╮
│ * file_path PATH Path to the AIVM / AIVMX file [default: None] │
│ [required] │
╰───────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ─────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰───────────────────────────────────────────────────────────────────────────────────╯
$ aivmlib create-aivm --help
Usage: aivmlib create-aivm [OPTIONS]
与えられたアーキテクチャ, 学習済みモデル, ハイパーパラメータ, スタイルベクトルから
AIVM メタデータを生成した上で、それを書き込んだ仮の AIVM ファイルを生成する
╭─ Options ─────────────────────────────────────────────────────────────────────────╮
│ * --output -o PATH Path to the output AIVM │
│ file │
│ [default: None] │
│ [required] │
│ * --model -m PATH Path to the Safetensors │
│ model file │
│ [default: None] │
│ [required] │
│ --hyper-parameters -h PATH Path to the hyper │
│ parameters file │
│ (optional) │
│ [default: None] │
│ --style-vectors -s PATH Path to the style │
│ vectors file (optional) │
│ [default: None] │
│ --model-architecture -a [Style-Bert-VITS2 | Styl Model architecture │
│ e-Bert-VITS2 [default: │
│ (JP-Extra)] Style-Bert-VITS2 │
│ (JP-Extra)] │
│ --help Show this message and │
│ exit. │
╰───────────────────────────────────────────────────────────────────────────────────╯
$ aivmlib create-aivmx --help
Usage: aivmlib create-aivmx [OPTIONS]
与えられたアーキテクチャ, 学習済みモデル, ハイパーパラメータ, スタイルベクトルから
AIVM メタデータを生成した上で、それを書き込んだ仮の AIVMX ファイルを生成する
╭─ Options ─────────────────────────────────────────────────────────────────────────╮
│ * --output -o PATH Path to the output AIVMX │
│ file │
│ [default: None] │
│ [required] │
│ * --model -m PATH Path to the ONNX model │
│ file │
│ [default: None] │
│ [required] │
│ --hyper-parameters -h PATH Path to the hyper │
│ parameters file │
│ (optional) │
│ [default: None] │
│ --style-vectors -s PATH Path to the style │
│ vectors file (optional) │
│ [default: None] │
│ --model-architecture -a [Style-Bert-VITS2 | Styl Model architecture │
│ e-Bert-VITS2 [default: │
│ (JP-Extra)] Style-Bert-VITS2 │
│ (JP-Extra)] │
│ --help Show this message and │
│ exit. │
╰───────────────────────────────────────────────────────────────────────────────────╯Abaixo está um exemplo de execução do comando.
# Safetensors 形式で保存された "Style-Bert-VITS2 (JP-Extra)" モデルアーキテクチャの学習済みモデルから AIVM ファイルを生成
# .safetensors と同じディレクトリに config.json と style_vectors.npy があることが前提
# -a オプションを省略した場合、既定で "Style-Bert-VITS2 (JP-Extra)" の学習済みモデルと判定される
$ aivmlib create-aivm -o ./output.aivm -m ./model.safetensors
# 明示的にハイパーパラメータとスタイルベクトルのパスを指定して生成
$ aivmlib create-aivm -o ./output.aivm -m ./model.safetensors -h ./config.json -s ./style-vectors.npy
# ONNX 形式で保存された "Style-Bert-VITS2" モデルアーキテクチャの学習済みモデルから AIVMX ファイルを生成
# .onnx と同じディレクトリに config.json と style_vectors.npy があることが前提
$ aivmlib create-aivmx -o ./output.aivmx -m ./model.onnx -a " Style-Bert-VITS2 "
# 明示的にハイパーパラメータとスタイルベクトルのパスを指定して生成
$ aivmlib create-aivmx -o ./output.aivmx -m ./model.onnx -a " Style-Bert-VITS2 " -h ./config.json -s ./style-vectors.npy
# AIVM ファイルに格納された AIVM メタデータを確認
$ aivmlib show-metadata ./output.aivm
# AIVMX ファイルに格納された AIVM メタデータを確認
$ aivmlib show-metadata ./output.aivmxDica
Para uso como biblioteca, consulte a implementação da ferramenta CLI implementada em __main__.py .
Importante
AIVMLIB/AIVMLIB-Web é uma biblioteca que apenas leia/grava funções para formatos de arquivo AIVM/AIVMX.
A lógica de inferência para os modelos de síntese de fala da IA para cada arquitetura de modelo e como os dados obtidos do AIVMLIB/AIVMLIB-Web são deixados para o usuário da biblioteca.
MIT Licença
Esta seção define as seguintes especificações técnicas incluídas nas "especificações do AIVM":
O objetivo é combinar o modelo de síntese de fala de IA treinado e os vários metadados necessários para seu uso em um único arquivo, impedindo a dissipação e confusão de arquivos e facilitar o uso e o compartilhamento do modelo.
Dica
Ao combiná -lo em um único arquivo, você pode operá -lo facilmente simplesmente baixando o arquivo AIVM/AIVMX e colocando -o em uma pasta especificada e usando o modelo de síntese de fala imediatamente com o software compatível.
Outra vantagem é que ele não é um arquivo compactado; portanto, não há necessidade de implantá -lo.
A especificação AIVM não depende da arquitetura do modelo do modelo de síntese de fala.
Ele foi projetado com escalabilidade e versatilidade futuras em mente para que os modelos de síntese de fala de diferentes arquiteturas de modelos possam ser tratados em um formato de arquivo comum.
Se o modelo treinado subjacente for salvo em um único formato de segurança ou ONNX, em princípio, você poderá adicionar metadados para gerar arquivos AIVM/AIVMX, independentemente da arquitetura do modelo.
Ao projetar, enfatizamos a compatibilidade com os ecossistemas existentes para que eles pudessem ser carregados como seguros de segurança regulares ou arquivos ONNX sem processamento de conversão.
Importante
A especificação AIVM não define o método de inferência para cada arquitetura do modelo. As especificações são definidas como "um arquivo que resume os metadados do modelo de síntese de fala da IA".
Por exemplo, para arquivos AIVM, o modelo de síntese de fala da IA armazenado pode ser para Pytorch ou TensorFlow.
Como inferir os modelos de síntese de fala da IA é deixada para a implementação de software que suporta arquivos AIVM/AIVMX.
As especificações para o formato do arquivo AIVM são mostradas abaixo.
O AIVM ( ai Vis Voice Model ) é uma especificação de formato de segurança estendida que armazena várias informações, como metadados do alto -falante (manifesto AIVM), hiperparâmetros e vetores de estilo como metadados personalizados na área de cabeçalho de um modelo treinado armazenado nos formatos de segurossentensores (.
Pode -se dizer que também é uma "especificação de descrição de metadados comuns para modelos de síntese de fala da IA salvos no formato SafeTetensors".
Por ser uma especificação estendida no formato do SafeTetensor, ele pode ser carregado como um arquivo de segurança normal como está.
Como o SafeTetensors, os 8 primeiros bytes de número inteiro de 64 bits não assinados é o tamanho do cabeçalho seguido de uma sequência JSON UTF-8 pelo comprimento do tamanho do cabeçalho.
O cabeçalho JSON do SafeTetens armazena o deslocamento dos tensores, etc., mas a tecla __metadata__ permite definir livremente o mapa de string para string.
Utilizando esta especificação, o AIVM armazena os seguintes dados da string nas seguintes teclas em __metadata__ :
aivm_manifest : AIVM manifestoaivm_hyper_parameters : hiperparameters para modelos de síntese de falaStyle-Bert-VITS2 e Style-Bert-VITS2 (JP-Extra) Arquitetura Modelo Arquitetura Arquitetura Strings JSONaivm_style_vectors : BASE64 Síntese de fala codificada Vetores de estilo de estilo (binário)Style-Bert-VITS2 e Style-Bert-VITS2 (JP-Extra) , uma string com matriz numpy codificada base64 (.npy) é armazenada.Abaixo está as especificações para o formato do arquivo AIVMX.
O AIVMX ( ai visor model para ONNX ) é uma especificação estendida de formato ONNX que armazena várias informações, como metadados do alto -falante (manifesto da AIVM), vetores de estilo hiperparâmetro como metadados personalizados na área de metadados de um modelo treinado armazenado no formato ONNX.
Pode -se dizer que também é uma "especificação de descrição de metadados comuns para os modelos de síntese de fala da IA salvos no formato ONNX".
Por ser uma especificação estendida no formato ONNX, ele pode ser carregado como um arquivo ONNX normal como é.
Os arquivos ONNX são definidos no formato dos buffers de protocolo e são projetados para armazenar metadados como uma lista de StringStringEntryProto no campo metadata_props da mensagem raiz ModelProto .
Utilizando esta especificação, o AIVMX armazena os seguintes dados da string nas seguintes teclas em metadata_props :
aivm_manifest : AIVM manifestoaivm_hyper_parameters : hiperparameters para modelos de síntese de falaStyle-Bert-VITS2 e Style-Bert-VITS2 (JP-Extra) Arquitetura Modelo Arquitetura Arquitetura Strings JSONaivm_style_vectors : BASE64 Síntese de fala codificada Vetores de estilo de estilo (binário)Style-Bert-VITS2 e Style-Bert-VITS2 (JP-Extra) , uma string com matriz numpy codificada base64 (.npy) é armazenada.Abaixo está as especificações para o manifesto AIVM (versão 1.0) incluído no formato de arquivo AIVM/AIVMX.
O manifesto AIVM contém várias informações necessárias para usar o modelo de síntese de fala, como a versão manifesta, a arquitetura do modelo, o nome do modelo, os metadados do alto -falante e as informações de estilo.
O formato de dados para o manifesto AIVM é uma sequência UTF-8 escrita no formato JSON.
Devido ao formato JSON, as imagens e os dados de áudio são armazenados como seqüências codificadas BASE64.
Observação
AIVM (SafeTetens) atualmente definido como o formato do contêiner para os manifestos de AIVM - a área de metadados do AIVMX (ONNX) deve ser um valor -chave de um tipo de sequência para um tipo de string sem ninho, para que todos os metadados sejam serializados em uma corda e armazenados.
Dados binários, como imagens e áudio, são armazenados como uma string após serem codificados base64.
Style-Bert-VITS2Style-Bert-VITS2 (JP-Extra) Importante
O software que suporta arquivos AIVM/AIVMX deve ser validado corretamente para arquivos AIVM/AIVMX de arquiteturas de modelos que não são suportadas pelo seu próprio software.
Por exemplo, o software que não suporta arquiteturas de modelos que não seja Style-Bert-VITS2 (JP-Extra) , quando solicitado a instalar o arquivo AIVM/AIVMX para Style-Bert-VITS2 , um alerta será exibido dizendo "Esta arquitetura de modelo não é suportada" e a instalação será abortada.
Importante
Tecnicamente, os modelos de síntese de fala de arquiteturas de modelos diferentes daqueles listados acima podem ser armazenados, mas as únicas seqüências de arquitetura de modelo mencionadas acima são oficialmente definidas na especificação do manifesto do AIVM (versão 1.0).
Ao definir sua própria sequência de arquitetura de modelo, você precisa ter muito cuidado para evitar conflitos de nome com arquiteturas de modelo existentes ou desalinhamento entre diferentes softwares.
Recomenda -se enviar solicitações de tração a este repositório o máximo possível e adicionar oficialmente suporte à nova arquitetura de modelo à especificação do AIVM.
Abaixo está as definições de campo para o manifesto do AIVM na especificação do manifesto do AIVM (versão 1.0) (trecho da definição de esquema pydantic do AIVMLIB).
Importante
Os campos no manifesto do AIVM podem ser adicionados, expandidos ou removidos quando a especificação do AIVM é atualizada no futuro.
Também é bem possível que novos metadados sejam adicionados ao manifesto AIVM e ao próprio formato de arquivo AIVM/AIVMX com suporte para atualizações futuras da versão e arquiteturas de modelos adicionais.
A única versão manifesta do AIVM atualmente ativa é 1.0 .
class ModelArchitecture ( StrEnum ):
StyleBertVITS2 = 'Style-Bert-VITS2' # 対応言語: "ja", "en-US", "zh-CN"
StyleBertVITS2JPExtra = 'Style-Bert-VITS2 (JP-Extra)' # 対応言語: "ja"
class ModelFormat ( StrEnum ):
Safetensors = 'Safetensors'
ONNX = 'ONNX'
class AivmManifest ( BaseModel ):
""" AIVM マニフェストのスキーマ """
# AIVM マニフェストのバージョン (ex: 1.0)
# 現在は 1.0 のみサポート
manifest_version : Literal [ '1.0' ]
# 音声合成モデルの名前 (最大 80 文字)
# 音声合成モデル内の話者が 1 名の場合は話者名と同じ値を設定すべき
name : Annotated [ str , StringConstraints ( min_length = 1 , max_length = 80 )]
# 音声合成モデルの簡潔な説明 (最大 140 文字 / 省略時は空文字列を設定)
description : Annotated [ str , StringConstraints ( max_length = 140 )] = ''
# 音声合成モデルの制作者名のリスト (省略時は空リストを設定)
# 制作者名には npm package.json の "author", "contributors" に指定できるものと同じ書式を利用できる
# 例: ["John Doe", "Jane Doe <[email protected]>", "John Doe <[email protected]> (https://example.com)"]
creators : list [ Annotated [ str , StringConstraints ( min_length = 1 , max_length = 255 )]] = []
# 音声合成モデルのライセンス情報 (Markdown 形式またはプレーンテキスト / 省略時は None を設定)
# AIVM 仕様に対応するソフトでライセンス情報を表示できるよう、Markdown 形式またはプレーンテキストでライセンスの全文を設定する想定
# 社内のみでの利用など、この音声合成モデルの公開・配布を行わない場合は None を設定する
license : Annotated [ str , StringConstraints ( min_length = 1 )] | None = None
# 音声合成モデルのアーキテクチャ (音声合成技術の種類)
model_architecture : ModelArchitecture
# 音声合成モデルのモデル形式 (Safetensors または ONNX)
# AIVM ファイル (.aivm) のモデル形式は Safetensors 、AIVMX ファイル (.aivmx) のモデル形式は ONNX である
model_format : ModelFormat
# 音声合成モデル学習時のエポック数 (省略時は None を設定)
training_epochs : Annotated [ int , Field ( ge = 0 )] | None = None
# 音声合成モデル学習時のステップ数 (省略時は None を設定)
training_steps : Annotated [ int , Field ( ge = 0 )] | None = None
# 音声合成モデルを一意に識別する UUID
uuid : UUID
# 音声合成モデルのバージョン (SemVer 2.0 準拠 / ex: 1.0.0)
version : Annotated [ str , StringConstraints ( pattern = r'^(0|[1-9]d*).(0|[1-9]d*).(0|[1-9]d*)(?:-((?:0|[1-9]d*|d*[a-zA-Z-][0-9a-zA-Z-]*)(?:.(?:0|[1-9]d*|d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:+([0-9a-zA-Z-]+(?:.[0-9a-zA-Z-]+)*))?$' )]
# 音声合成モデルの話者情報 (最低 1 人以上の話者が必要)
speakers : list [ AivmManifestSpeaker ]
class AivmManifestSpeaker ( BaseModel ):
""" AIVM マニフェストの話者情報 """
# 話者の名前 (最大 80 文字)
# 音声合成モデル内の話者が 1 名の場合は音声合成モデル名と同じ値を設定すべき
name : Annotated [ str , StringConstraints ( min_length = 1 , max_length = 80 )]
# 話者のアイコン画像 (Data URL)
# 画像ファイル形式は 512×512 の JPEG (image/jpeg)・PNG (image/png) のいずれか (JPEG を推奨)
icon : Annotated [ str , StringConstraints ( pattern = r'^data:image/(jpeg|png);base64,[A-Za-z0-9+/=]+$' )]
# 話者の対応言語のリスト (BCP 47 言語タグ)
# 例: 日本語: "ja", アメリカ英語: "en-US", 標準中国語: "zh-CN"
supported_languages : list [ Annotated [ str , StringConstraints ( pattern = r'^[a-z]{2,3}(?:-[A-Z]{4})?(?:-(?:[A-Z]{2}|d{3}))?(?:-(?:[A-Za-z0-9]{5,8}|d[A-Za-z0-9]{3}))*(?:-[A-Za-z](?:-[A-Za-z0-9]{2,8})+)*(?:-x(?:-[A-Za-z0-9]{1,8})+)?$' )]]
# 話者を一意に識別する UUID
uuid : UUID
# 話者のローカル ID (この音声合成モデル内で話者を識別するための一意なローカル ID で、uuid とは異なる)
local_id : Annotated [ int , Field ( ge = 0 )]
# 話者のスタイル情報 (最低 1 つ以上のスタイルが必要)
styles : list [ AivmManifestSpeakerStyle ]
class AivmManifestSpeakerStyle ( BaseModel ):
""" AIVM マニフェストの話者スタイル情報 """
# スタイルの名前 (最大 20 文字)
name : Annotated [ str , StringConstraints ( min_length = 1 , max_length = 20 )]
# スタイルのアイコン画像 (Data URL, 省略可能)
# 省略時は話者のアイコン画像がスタイルのアイコン画像として使われる想定
# 画像ファイル形式は 512×512 の JPEG (image/jpeg)・PNG (image/png) のいずれか (JPEG を推奨)
icon : Annotated [ str , StringConstraints ( pattern = r'^data:image/(jpeg|png);base64,[A-Za-z0-9+/=]+$' )] | None = None
# スタイルの ID (この話者内でスタイルを識別するための一意なローカル ID で、uuid とは異なる)
local_id : Annotated [ int , Field ( ge = 0 , le = 31 )] # 最大 32 スタイルまでサポート
# スタイルごとのボイスサンプル (省略時は空リストを設定)
voice_samples : list [ AivmManifestVoiceSample ] = []
class AivmManifestVoiceSample ( BaseModel ):
""" AIVM マニフェストのボイスサンプル情報 """
# ボイスサンプルの音声ファイル (Data URL)
# 音声ファイル形式は WAV (audio/wav, Codec: PCM 16bit)・M4A (audio/mp4, Codec: AAC-LC) のいずれか (M4A を推奨)
audio : Annotated [ str , StringConstraints ( pattern = r'^data:audio/(wav|mp4);base64,[A-Za-z0-9+/=]+$' )]
# ボイスサンプルの書き起こし文
# 書き起こし文は音声ファイルでの発話内容と一致している必要がある
transcript : Annotated [ str , StringConstraints ( min_length = 1 )]R. Para fornecer dois formatos otimizados para diferentes aplicações e ambientes, permitindo um uso mais flexível.
A. Sim, é possível.
O AIVM é projetado como uma extensão do formato SafetEtensors, enquanto o AIVMX é projetado como uma extensão do formato ONNX, para que cada um possa ser lido como um arquivo regular de seguradores ou arquivo onnx.
Os metadados do AIVM são armazenados na área de metadados definidos pelas especificações do formato do modelo existente e não afeta o comportamento das ferramentas existentes.
A. Existem duas maneiras:
Observe que o modelo do qual você está convertendo deve ser salvo em um único formato SafeTetensor ou Onnx.
A. O controle da versão manifesto do AIVM é realizado nas seguintes políticas:
Atualmente, 1.0 é o mais recente.
A. AIVMLIB e AIVMLIB-Web são bibliotecas que implementam a mesma especificação AIVM para diferentes idiomas/ambientes operacionais.
BinaryIO em Python se torna File (BLOB) da API da Web JavaScript, o design básico da API é o mesmo que o AIVMLIB.Dica
Neste momento, não há bibliotecas de especificação AIVM oficialmente mantidas além do AIVMLIB/AIVMLIB-Web.
Existe a possibilidade de que as bibliotecas de terceiros para outros idiomas apareçam no futuro.
Importante
Ao adicionar suporte para novas arquiteturas de modelos, você deve adicionar implementações ao AIVMLIB e AIVMLIB-WEB.
Como o AIVM Generator usa AIVMLIB-Web, ambas as bibliotecas devem ser atualizadas para fornecer novos recursos aos usuários finais.
R. A especificação AIVM não especifica detalhes de implementação para arquiteturas de modelos, facilitando a adição de novas arquiteturas de modelos.
GPT-SoVITS2 ) para ModelArchitecture .generate_aivm_metadata() ao mesmo tempo.aivm_style_vectors , e envie uma solicitação de tração.Importante
As especificações do manifesto do AIVM enviado devem ser tecnicamente suportadas pelo AIVMLIB (Python) e AIVMLIB-Web (Web TypeScript).
AIVMLIB-Web é usado dentro do gerador AIVM.
Depois de adicionar suporte ao AIVMLIB, adicione suporte ao AIVMLib-Web também.
Observação
O manifesto do AIVM foi projetado para definir apenas metadados comuns que são independentes da arquitetura do modelo.
Os hiperparâmetros específicos da implementação devem ser armazenados no campo aivm_hyper_parameters .
Também aceitamos a adição de definições de esquema de Pydantic para hiperparâmetros. Atualmente, apenas o esquema Hyperparameter para arquiteturas Style-Bert-VITS2 é definido.
Observação
Obviamente, o modelo de origem para AIVM/AIVMX deve ser salvo em um único formato SafeTetens ou ONNX.
Portanto, as arquiteturas de modelo que abrangem vários arquivos de modelo não são suportadas.
Por favor, considere como combinar arquivos de modelo em um ou remover arquivos de modelo desnecessários.
A. As informações de licença estão em marcação ou texto sem formatação e configuram uma cópia completa da licença diretamente incorporada em um arquivo AIVM/AIVMX.
Os motivos para incorporar o texto completo da licença, em vez de especificar um URL, são os seguintes:
R. Embora não exista um limite de tamanho específico, o próprio arquivo de modelo é geralmente enorme, portanto, o tamanho mais adicional do arquivo aumenta devido aos metadados deve ser mantido no mínimo.
Dica
A implementação de referência, o gerador AIVM, segue estas diretrizes para garantir a otimização adequada do tamanho.
A. A edição manual não é recomendada, pois os metadados são incorporados diretamente no binário.
Se você é um usuário final, use o gerador AIVM.
Dica
Os desenvolvedores podem escrever seus próprios aplicativos usando AIVMLIB/AIVMLIB-WEB.
O CLI AIVMLIB fornece apenas a capacidade de gerar arquivos AIVM/AIVMX com metadados mínimos e verificar os metadados.