Ascend-SACT/AASIST
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

模型信息

AASIST模型用于高效检测语音真伪,可识别多种语音欺骗攻击,建模时空域相关伪影以区分伪造与真实语音。

服务器信息

内容版本
固件与驱动25.3.rc1
CANN8.2.rc1
Python3.11.9
Pytorch2.7.1
torch_npu2.7.1
部署方式mindie镜像或裸机部署

源码下载

### (方式一)从github下载并解压AASIST模型的源码,参考下述修改main.py文件,完成适配
git clone https://github.com/clovaai/aasist.git
### (方式二)从gitcode下载并解压已适配后的AASIST模型的代码,即aasist.tar压缩包
git clone https://atomgit.com/Ascend-SACT/AASIST.git

数据集下载

ASVspoof2019 dataset是用于第三届自动说话人验证欺骗和对策挑战的数据库,旨在评估针对 TTS、VC 和重放三种欺骗攻击的反欺骗技术。下载的ASVspoof2019数据集解压后保存在./dataset目录。

创建容器

vim docker_start.sh
# 脚本内容如下
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 
CONTAINER_NAME=容器名称
IMAGE=镜像ID 
docker run -itd --privileged --name=$CONTAINER_NAME --ipc=host \
    --device=/dev/davinci_manager \
    --device=/dev/devmm_svm \
    --device=/dev/hisi_hdc \
    -v /usr/local/sbin:/usr/local/sbin \
    -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
    -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
    -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
    -v /etc/ascend_install.info:/etc/ascend_install.info \
    -v /tmp:/tmp \
    -v /mnt:/mnt \
    -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime \
    -v /home:/home \
    -v /data:/data \
    -w /home \
    $IMAGE \
    /bin/bash
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 
# 进入容器
bash docker_start.sh
docker exec -it <容器名称> bash

修改main.py

修改源码中./main.py文件,添加torch_npu和torchair。

### 添加torch_npu和torchair
import torch_npu
import torchair
from torchair.configs.compiler_config import CompilerConfig
### 修改设备选择和添加torchair配置
def main(args: argparse.Namespace) -> None:
    """
    Main function.
    Trains, validates, and evaluates the ASVspoof detection model.
    """
    ......

    # set device
    # device = "cuda" if torch.cuda.is_available() else "cpu"
    # print("Device: {}".format(device))
    # if device == "cpu":
    #     raise ValueError("GPU not detected!")
    device = "npu:0" if torch.npu.is_available() else "cpu"
    print("Device: {}".format(device))
    if device == "cpu":
        raise ValueError("NPU not detected!")

    ......

    # evaluates pretrained model and exit script
    if args.eval:
        model.load_state_dict(
            torch.load(config["model_path"], map_location=device))
        
        # set torchair
        config_torchair = CompilerConfig()
        npu_backend = torchair.get_npu_backend(compiler_config=config_torchair)
        model = torch.compile(model, backend=npu_backend)  

推理执行脚本

### 进入./aasist目录后执行
python main.py --eval --config ./config/AASIST.conf

性能

适配操作单图推理性能
开箱0.310s
torch_npu0.13s
torch_npu+torch_air0.145s