? aivmlib : ai vis v oice m odel файл (.aivm/.aivmx)
AIVM ( AI Vis V OICE M ODEL) / AIVMX ( AI VIS VOICE M ODEL для ONN X )-это открытый формат файлов для моделей синтеза речи AI, которые объединяют предварительно обученные модели, гиперпараметры, векторы стиля, метаданные динамики (имена, обзоры, лицензии, иконки, голосовые выборки и т. Д.) В один файл .
Примечание
«AIVM» также является общим термином как для спецификаций формата AIVM/AIVMX, так и для спецификаций метаданных.
В частности, файл AIVM представляет собой модельный файл в «Safetensors Format с добавлением метаданных AIVM», а файл AIVMX - это модельный файл в «Format Onnx с добавленными метадатами AIVM».
«Метаданные AIVM» относится к различным метаданным, которые связаны с обученной моделью, как определено в спецификации AIVM.
Вы можете легко использовать модели синтеза речи AI, добавив файлы AIVM/AIVMX в программное обеспечение, которое поддерживает спецификации AIVM, включая Aivispeech/aivispeech-двигатель.
Aivmlib/aivmlib-web предоставляет утилиту для чтения и написания метаданных в файлах AIVM/AIVMX.
Этот AIVMLIB является эталонной реализацией спецификации AIVM, написанной на Python. Если вы используете веб-браузер, используйте aivmlib-web.
Кончик
Генератор AIVM позволяет легко генерировать и редактировать файлы AIVM/AIVMX с помощью графического интерфейса в вашем браузере.
Мы рекомендуем использовать генератор AIVM при вручную генерировать и редактировать файлы AIVM/AIVMX.
Если вы установите его с PIP, инструмент командной строки aivmlib также будет автоматически установлен.
Требуется Python 3.11 или выше.
pip install aivmlibЯ использую поэзию во время разработки.
pip install poetry
git clone https://github.com/Aivis-Project/aivmlib.git
cd aivmlib
poetry install --with dev
poetry run aivmlib --helpНиже приведено, как использовать сам инструмент 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. │
╰───────────────────────────────────────────────────────────────────────────────────╯Ниже приведен пример выполнения команды.
# 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.aivmxКончик
Для использования в качестве библиотеки см. Внедрение инструмента CLI, реализованного в __main__.py .
Важный
Aivmlib/aivmlib-web-это библиотека, в которой функции чтения/записи только для форматов файлов AIVM/AIVMX.
Логика вывода для моделей синтеза речи AI для каждой архитектуры модели и как данные, полученные от Aivmlib/Aivmlib-Web, остаются пользователю библиотеки.
MIT Лицензия
В этом разделе определяются следующие технические характеристики, включенные в «Спецификации AIVM»:
Цель состоит в том, чтобы объединить подготовленную модель синтеза речи ИИ и различные метаданные, необходимые для его использования в один файл, предотвращение рассеяния и путаницы файла, а также упростить использование и обмена модели.
Кончик
Объединив его в один файл, вы можете легко управлять им, просто загрузив файл AIVM/AIVMX и поместив его в указанную папку и немедленно используя модель синтеза речи с совместимым программным обеспечением.
Другое преимущество заключается в том, что это не сжатый файл, поэтому нет необходимости развернуть его.
Спецификация AIVM не полагается на модельную архитектуру модели синтеза речи.
Он был разработан с учетом будущей масштабируемости и универсальности, так что модели синтеза речи различных архитектур модели могут обрабатываться в общем формате файла.
Если базовая обученная модель сохраняется в одном Safetensors или Onnx, в принципе, вы можете добавить метаданные для генерации файлов AIVM/AIVMX, независимо от архитектуры модели.
При проектировании мы подчеркивали совместимость с существующими экосистемами, чтобы их можно было загружать как обычные безопасные или ONNX -файлы без какой -либо обработки конверсии.
Важный
Спецификация AIVM не определяет метод вывода для каждой архитектуры модели. Спецификации определяются как «файл, который суммирует метаданные модели синтеза речи AI».
Например, для файлов AIVM хранящаяся модель синтеза речи ИИ может быть для Pytorch или Tensorflow.
Как сделать вывод моделей синтеза речи ИИ, оставлены для реализации программного обеспечения, которое поддерживает файлы AIVM/AIVMX.
Спецификации для формата файла AIVM показаны ниже.
AIVM ( AI vis voice m Odel) - это расширенная спецификация формата Safetensor, в которой хранятся различная информация, такая как метаданные динамика (Manifest AIVM), гиперпараметра и векторы стиля в качестве пользовательских метаданных в области заголовка подготовленной модели, хранящейся в формате Safetensors (.safetensors).
Также можно сказать, что это «общая спецификация описания метаданных для моделей синтеза речи AI, сохраненных в формате Safetensors».
Поскольку это расширенная спецификация в формате Safetensor, его можно загрузить как обычный файл Safetensor, как есть.
Как и Safetensors, первые 8 байт не знака Little-Endian 64-битного целого числа-это размер заголовка, за которой следует струна UTF-8 JSON по длине размера заголовка.
Заголовок JSON Safetensors хранит смещение тензоров и т. Д., Но клавиша __metadata__ позволяет вам свободно устанавливать карту из строки на строку.
Используя эту спецификацию, AIVM сохраняет следующие строковые данные в следующих ключах в __metadata__ :
aivm_manifest : AIVM Manifestaivm_hyper_parameters : Гиперпараметры для моделей синтеза речиStyle-Bert-VITS2 и Style-Bert-VITS2 (JP-Extra)aivm_style_vectors : BASE64 Кодированный синтез речи векторы модели модели (двоичный)Style-Bert-VITS2 и Style-Bert-VITS2 (JP-Extra) хранится строка с кодированным массивом Base64 Numpy (.npy).Ниже приведены спецификации для формата файла AIVMX.
AIVMX ( AI VIS VOICE M ODEL для ONNX ) - это расширенная спецификация формата ONNX, в которой хранятся различные данные, такие как метаданные динамики (MANIFEST AIVM), векторы в стиле гиперпараметрического в качестве пользовательских метаданных в области метаданных в формате ONNX, хранящихся в формате ONNX.
Также можно сказать, что это «общая спецификация описания метаданных для моделей синтеза речи AI, сохраненных в формате ONNX».
Поскольку это расширенная спецификация в формате ONNX, он может быть загружен как обычный файл ONNX, как он есть.
Файлы ONNX определяются в формате буферов протокола и предназначены для хранения метаданных в качестве списка StringStringEntryProto в поле metadata_props сообщения Root ModelProto .
Используя эту спецификацию, AIVMX сохраняет следующие строковые данные в следующих ключах в metadata_props :
aivm_manifest : AIVM Manifestaivm_hyper_parameters : Гиперпараметры для моделей синтеза речиStyle-Bert-VITS2 и Style-Bert-VITS2 (JP-Extra)aivm_style_vectors : BASE64 Кодированный синтез речи векторы модели модели (двоичный)Style-Bert-VITS2 и Style-Bert-VITS2 (JP-Extra) хранится строка с кодированным массивом Base64 Numpy (.npy).Ниже приведены спецификации для манифеста AIVM (версия 1.0), включенного в формат файла AIVM/AIVMX.
Manifest AIVM содержит различную информацию, необходимую для использования модели синтеза речи, такую как манифестная версия, архитектура модели, название модели, метаданные динамика и информацию о стиле.
Формат данных для манифеста AIVM-это строка UTF-8, написанная в формате JSON.
Из -за формата JSON изображения и аудиоданные хранятся в виде кодированных строк BASE64.
Примечание
AIVM (Safetensors), в настоящее время определяемый как формат контейнера для манифестов AIVM - область метаданных AIVMX (ONNX) должна быть клавишной стоимостью от типа строки до строкового типа без гнездования, поэтому все метаданные сериализуются в строку и хранятся.
Двоичные данные, такие как изображения и аудио, хранятся как строка после кодирования Base64.
Style-Bert-VITS2Style-Bert-VITS2 (JP-Extra) Важный
Программное обеспечение, которое поддерживает файлы AIVM/AIVMX, должно быть должным образом подтверждено для файлов AIVM/AIVMX модельных архитектур, которые не поддерживаются вашим собственным программным обеспечением.
Например, программное обеспечение, которое не поддерживает модельные архитектуры, отличные от Style-Bert-VITS2 (JP-Extra) , когда его просят установить файл AIVM/AIVMX для архитектуры модели Style-Bert-VITS2 , будет отображаться оповещение, говоря, что «эта архитектура модели не поддерживается», а установка будет прервана.
Важный
Технически, модели синтеза речи модельных архитектур, отличных от перечисленных выше, могут быть сохранены, но единственные строки архитектуры модели, упомянутые выше, официально определены в спецификации Manifest AIVM (версия 1.0).
При определении своей собственной строки архитектуры модели вы должны быть чрезвычайно осторожны, чтобы избежать конфликтов имен с существующими модельными архитектурами или смещением между различным программным обеспечением.
Рекомендуется как можно больше отправлять запросы на привлечение в этот репозиторий и официально добавить поддержку новой архитектуры модели в спецификацию AIVM.
Ниже приведены определения поля для манифеста AIVM по состоянию на спецификации AIVM (версия 1.0) (отрывок из определения пидматической схемы Aivmlib).
Важный
Поля в манифесте AIVM могут быть добавлены, расширены или удалены, когда спецификация AIVM будет обновлена в будущем.
Также вполне возможно, что новые метаданные будут добавлены в Manifest AIVM и формат файла AIVM/AIVMX с поддержкой будущих обновлений версий и дополнительных архитектур модели.
Единственная в настоящее время активная версия AIVM Manifest - 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 )]A. Предоставить два формата, оптимизированные для различных приложений и сред, позволяя получить более гибкое использование.
О. Да, это возможно.
AIVM разработан как расширение формата Safetensors, в то время как AIVMX разработан в виде расширения формата ONNX, поэтому каждый может быть прочитал как обычный файл Safetensors или файл ONNX.
Метаданные AIVM хранятся в области метаданных, определяемой существующими спецификациями формата модели, и не влияет на поведение существующих инструментов.
О. Есть два способа:
Обратите внимание, что модель, из которой вы преобразуете ее, должна быть сохранена в одном формате Safetensor или ONNX.
A. Управление версией AIVM осуществляется в соответствии с следующими политиками:
В настоящее время 1.0 является последним.
A. aivmlib и aivmlib-web-это библиотеки, которые реализуют одну и ту же спецификацию AIVM для различных языков/среды эксплуатации.
BinaryIO в Python, становится File (Blob) веб -API JavaScript, базовый дизайн API такой же, как Aivmlib.Кончик
В настоящее время не существует официально поддерживаемых библиотек спецификации AIVM, кроме Aivmlib/aivmlib-web.
Существует вероятность того, что сторонние библиотеки для других языков появятся в будущем.
Важный
При добавлении поддержки новых модельных архитектур вы должны добавить реализации как в Aivmlib, так и Aivmlib-Web.
Поскольку генератор AIVM использует Aivmlib-Web, обе библиотеки должны быть обновлены, чтобы предоставить новые функции конечным пользователям.
A. Спецификация AIVM не указывает детали реализации для модельных архитектур, что делает его относительно простым добавлением новых модельных архитектур.
GPT-SoVITS2 ) в ModelArchitecture .generate_aivm_metadata() одновременно.aivm_style_vectors , а затем отправьте запрос на вытяжку.Важный
Представленные спецификации MANIFEST AIVM должны быть технически поддерживаться как AIVMLIB (Python), так и Aivmlib-Web (TypeScript Web).
Aivmlib-web используется внутри генератора AIVM.
После того, как вы добавите поддержку в Aivmlib, добавьте также поддержку в Aivmlib-Web.
Примечание
Манифест AIVM предназначен для определения только общих метаданных, которые не зависят от модельной архитектуры.
Гиперпараметры, специфичные для реализации, должны храниться в поле aivm_hyper_parameters .
Мы также принимаем добавление определений схемы пидантики для гиперпараметров. В настоящее время определяется только схема гиперпараметров для архитектур Style-Bert-VITS2 .
Примечание
Конечно, исходная модель для AIVM/AIVMX должна быть сохранена в одном защитном формате или формате ONNX.
Следовательно, модельные архитектуры, охватывающие несколько модельных файлов, не поддерживаются.
Пожалуйста, рассмотрите, как объединить файлы модели в один или удалить ненужные файлы модели.
A. Информация о лицензии находится в Markdown или Plain Text, и настраивает полную копию лицензии, непосредственно встроенной в файл AIVM/AIVMX.
Причины внедрения полного текста лицензии, а не указания URL -адреса:
О. Хотя определенного ограничения размера нет, сам файл модели, как правило, огромный, поэтому дальнейшее увеличение размера файла из -за метаданных должно быть сведено к минимуму.
Кончик
Справочная реализация, генератор AIVM, следует по этим рекомендациям, чтобы обеспечить правильную оптимизацию размера.
A. Редактирование ручного управления не рекомендуется, так как метаданные встроены непосредственно в двоичный файл.
Если вы конечный пользователь, используйте генератор AIVM.
Кончик
Разработчики могут написать свои собственные приложения, используя Aivmlib/aivmlib-web.
CLI AIVMLIB предоставляет только возможность генерировать файлы AIVM/AIVMX с минимальными метаданными и проверять метаданные.