• 在 Apple M1/M2 下安装训练 MockingBird


    什么是 MockingBird

    AI拟声: 克隆您的声音并生成任意语音内容 Clone a voice in 5 seconds to generate arbitrary speech in real-time

    特性

    • 🌍 中文 支持普通话并使用多种中文数据集进行测试:aidatatang_200zh, magicdata, aishell3, biaobei, MozillaCommonVoice, data_aishell 等
    • 🤩 PyTorch 适用于 pytorch,已在 1.9.0 版本(最新于 2021 年 8 月)中测试,GPU Tesla T4 和 GTX 2060
    • 🌍 Windows + Linux 可在 Windows 操作系统和 linux 操作系统中运行(苹果系统M1版也有社区成功运行案例)
    • 🤩 Easy & Awesome 仅需下载或新训练合成器(synthesizer)就有良好效果,复用预训练的编码器/声码器,或实时的HiFi-GAN作为vocoder
    • 🌍 Webserver Ready 可伺服你的训练结果,供远程调用

    安装 Anacodna

    清华镜像下载: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

    搜索: MacOSX-arm64.pkg 并看更新时间,找最新版本。我下的版本为:Anaconda3-2023.03-1-MacOSX-arm64.pkg,安装时选择仅为当前用户,否则会说版本不兼容不让安装。

    安装完成后配置镜像:

    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ 
    conda config --set show_channel_urls yes
    
    • 1
    • 2
    • 3
    ❯ conda info
    
         active environment : base
        active env location : /Users/v0/anaconda3
                shell level : 1
           user config file : /Users/v0/.condarc
     populated config files : /Users/v0/.condarc
              conda version : 23.3.1
        conda-build version : 3.24.0
             python version : 3.10.9.final.0
           virtual packages : __archspec=1=arm64
                              __osx=13.3.1=0
                              __unix=0=0
           base environment : /Users/v0/anaconda3  (writable)
          conda av data dir : /Users/v0/anaconda3/etc/conda
      conda av metadata url : None
               channel URLs : https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/osx-arm64
                              https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/noarch
                              https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/osx-arm64
                              https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarch
                              https://repo.anaconda.com/pkgs/main/osx-arm64
                              https://repo.anaconda.com/pkgs/main/noarch
                              https://repo.anaconda.com/pkgs/r/osx-arm64
                              https://repo.anaconda.com/pkgs/r/noarch
              package cache : /Users/v0/anaconda3/pkgs
                              /Users/v0/.conda/pkgs
           envs directories : /Users/v0/anaconda3/envs
                              /Users/v0/.conda/envs
                   platform : osx-arm64
                 user-agent : conda/23.3.1 requests/2.28.1 CPython/3.10.9 Darwin/22.4.0 OSX/13.3.1
                    UID:GID : 501:20
                 netrc file : None
               offline mode : False
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    看到这个配置成功。

    配置 Conda 工作空间

    conda create -n voice
    # 中间需要回车确认
    conda activate voice
    
    • 1
    • 2
    • 3

    安装 Pytorch

    官方文档:https://pytorch.org/get-started/locally/

    conda install pytorch torchvision -c pytorch
    pip3 install torch torchvision
    
    • 1
    • 2

    然后使用 python3 命令输入以下脚本进行测试:

    import torch
    x = torch.rand(5, 3)
    print(x)
    
    • 1
    • 2
    • 3

    安装 FFmpeg

    下载: https://ffmpeg.org/download.html#build-mac

    下载解压后移动到 bin 目录。比如:

    mv ffmpeg ~/anaconda3/bin/
    # 测试一下
    ffmeg -version
    
    • 1
    • 2
    • 3

    安装项目依赖

    使用 Rosetta 打开 Terminal,然后进入该项目目录:

    # 替换 PathToMockingBird, 可以用 pwd 命令查看当前目录地址
    /usr/bin/python3 -m venv /PathToMockingBird/venv
    source /PathToMockingBird/venv/bin/activate
    pip install --upgrade pip
    pip install pyqt5
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 安装pyworldctc-segmentation

      这里两个文件直接pip install的时候找不到wheel,尝试从c里build时找不到Python.h报错

      • 安装pyworld

        • brew install python 通过brew安装python时会自动安装Python.h
        • export CPLUS_INCLUDE_PATH=/opt/homebrew/Frameworks/Python.framework/Headers 对于M1,brew安装Python.h到上述路径。把路径添加到环境变量里
        • pip install pyworld
      • 安装ctc-segmentation

        因上述方法没有成功,选择从github clone源码手动编译

        • git clone https://github.com/lumaku/ctc-segmentation.git 克隆到任意位置
        • cd ctc-segmentation
        • source /PathToMockingBird/venv/bin/activate 假设一开始未开启,打开MockingBird项目的虚拟环境
        • cythonize -3 ctc_segmentation/ctc_segmentation_dyn.pyx
        • /usr/bin/arch -x86_64 python setup.py build 要注意明确用x86-64架构编译
        • /usr/bin/arch -x86_64 python setup.py install --optimize=1 --skip-build用x86-64架构安装
    • 安装其他依赖

      • /usr/bin/arch -x86_64 pip install torch torchvision torchaudio 这里用pip安装PyTorch,明确架构是x86
      • pip install ffmpeg 安装ffmpeg
      • pip install -r requirements.txt
    • 运行

      参考这个链接
      ,让项目跑在x86架构环境上

      • vim /PathToMockingBird/venv/bin/pythonM1
      • 写入以下代码
        #!/usr/bin/env zsh
        mydir=${0:a:h}
        /usr/bin/arch -x86_64 $mydir/python "$@"
        
        • 1
        • 2
        • 3
      • chmod +x pythonM1 设为可执行文件
      • 如果使用PyCharm,则把Interpreter指向pythonM1,否则也可命令行运行/PathToMockingBird/venv/bin/pythonM1 demo_toolbox.py
  • 相关阅读:
    数据安全小课堂开讲啦!看这里!
    LeetCode刷题之HOT100之下一个排列
    jenkins 使用原生 git clone 命令,指定ssh密钥文件
    指针进阶(二)
    MCS:多元随机变量——离散随机变量
    十分钟学会动态路由
    java AbstractProcessor 编译时注解 (JSR 269)
    《学术小白学习之路11》DTM主题动态模型原理与基础构建
    微信小程序自动化采集方案
    应用层如何感知传输层链路故障
  • 原文地址:https://blog.csdn.net/jslygwx/article/details/132975421