Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Macユニバーサルアプリ版のリリース:Release a Mac Universal App version. #348

Closed
Apple-Yuki opened this issue Oct 11, 2021 · 44 comments · Fixed by #2112
Closed

Comments

@Apple-Yuki
Copy link
Contributor

Apple-Yuki commented Oct 11, 2021

ダウンロード(VOICEVOX for Mac)

Mac版リリースのVOICEVOXを今までで最高のものにするためにご協力ください。
GitHubのメンバーは、プレリリースバージョンをお試しいただき、お気付きの点をこちらのイシューでお知らせいただくことで、ソフトウェアの構築に参加していただくことができます。

⚠️ベータ版ソフトウェア(プレリリース、プレビューやシードを含む)とは、一般に向けたリリースがまだ行われていない、開発中のソフトウェアを指します。プレリリース版はバグが残っている可能性が正式版より高く、 場合によっては意図的に残している可能性があります。

ご利用の方はこちらよりVOICEVOXをダウンロードしてください。

VOICEVOXを初回利用時は設定のセキュリティよりVOICEVOXの実行の許可が必要です。

議論について

ベータ版ソフトウェアの議論はMac版の自動ビルド・リリース #399にて実施中です。

Improvement contents

Please release a Mac Universal App version.

Implementation Methods

This is achieved by making VOICEVOX ENGINE and VOICEVOX Software a universal App. If possible, it would be even better if it could be made into one App like Open Broadcaster Software (OBS).

Version of VOICEVOX

I don't know, I can't install it now.

OS type/district/version

  • macOS Monterey
@Hiroshiba
Copy link
Member

Hiroshiba commented Oct 12, 2021

Issue作成ありがとうございます!

mac対応で最も課題になっているのは、VOICEVOX COREのビルドに必要なGithub Actions上でのcudaインストール部分です。
coreのビルドでのcudaインストールはこちらのGitHub Actionに頼っていますが、ubuntuとwindowsはサポートしている一方でmacがサポートされていません。
ここさえ解決できれば、mac版の作成が可能になると思います。

@Apple-Yuki
Copy link
Contributor Author

NVIDIA® CUDA Toolkit 11.4 Update 1 no longer supports development or running applications on macOS. While there are no tools which use macOS as a target environment, NVIDIA is making macOS host versions of these tools that you can launch profiling and debugging sessions on supported target platforms.

https://developer.nvidia.com/nvidia-cuda-toolkit-developer-tools-mac-hosts#history

@Hiroshiba
Copy link
Member

そもそもCUDAはmacOSをサポートしなくなったんですね!全く知りませんでした。
では、CPUのみバージョンのmacOSビルドを考えてみます。

@Apple-Yuki
Copy link
Contributor Author

Apple-Yuki commented Oct 13, 2021

Unfortunately CUDA 10.2 only supports up to macOS 10.13, see the documentation: https://docs.nvidia.com/cuda/archive/10.2/cuda-installation-guide-mac-os-x/index.html

This was the latest CUDA version to support macOS, and unfortunately macOS 10.13 is not available in GitHub actions, see: actions/runner-images#461

If you can use Apple's Core ML, you can use it for machine learning.

Apple's Core ML Document:
👉Japanese Page
👉English Page

@Hiroshiba
Copy link
Member

Mac版VOICEVOXが作れなかったのは、VOICEVOX COREがMac対応していなかったからです。
VOICEVOX CORE 0.7.4でMac対応したので、Mac版VOICEVOXが作れるはずです!

参考になりそうなissueを紹介します。

@Apple-Yuki どうでしょう、作成に挑戦してみませんか? 😄

@Apple-Yuki
Copy link
Contributor Author

Apple-Yuki commented Oct 21, 2021

To @Hiroshiba

Thanks for the reply.
I will now test the build on M1 and Intel Macs based on the information you provided.

After the 26th, we will proceed with the verification on M1 Pro and M1 Max.

We will send you updates if there are any.

@Hiroshiba
Copy link
Member

@Apple-Yuki
M1 Max!?!?
良いですね!うまく動作することを願っています!

@Apple-Yuki
Copy link
Contributor Author

Apple-Yuki commented Oct 21, 2021

Apple_Tech-Talks-2021_10202021

To @Hiroshiba

Thanks for the reply.
I too have high hopes for the M1 Max and M1 Pro.
I will consult with Apple's expert engineers if necessary.

I'm excited now because I have a feeling that it will work with such specs.
2021-10-22 1 12 38

About M1 Pro / M1 Max

M1 Pro Chips

Apple_M1-Pro-M1-Max_CPU-Performance_10182021
Utilizing the industry-leading 5-nanometer process technology, M1 Pro packs in 33.7 billion transistors, more than 2x the amount in M1. A new 10-core CPU, including eight high-performance cores and two high-efficiency cores, is up to 70 percent faster than M1, resulting in unbelievable pro CPU performance. Compared with the latest 8-core PC laptop chip, M1 Pro delivers up to 1.7x more CPU performance at the same power level and achieves the PC chip’s peak performance using up to 70 percent less power. Even the most demanding tasks, like high-resolution photo editing, are handled with ease by M1 Pro.
M1 Pro has an up-to-16-core GPU that is up to 2x faster than M1 and up to 7x faster than the integrated graphics on the latest 8-core PC laptop chip.1 Compared to a powerful discrete GPU for PC notebooks, M1 Pro delivers more performance while using up to 70 percent less power.

M1 Max Chips

Apple_M1-Pro-M1-Max_M1-Max-GPU-Performance-vs-High-End-PC_10182021

M1 Max features the same powerful 10-core CPU as M1 Pro and adds a massive 32-core GPU for up to 4x faster graphics performance than M1. With 57 billion transistors — 70 percent more than M1 Pro and 3.5x more than M1 — M1 Max is the largest chip Apple has ever built. In addition, the GPU delivers performance comparable to a high-end GPU in a compact pro PC laptop while consuming up to 40 percent less power, and performance similar to that of the highest-end GPU in the largest PC laptops while using up to 100 watts less power.2 This means less heat is generated, fans run quietly and less often, and battery life is amazing in the new MacBook Pro. M1 Max transforms graphics-intensive workflows, including up to 13x faster complex timeline rendering in Final Cut Pro compared to the previous-generation 13-inch MacBook Pro.
M1 Max also offers a higher-bandwidth on-chip fabric, and doubles the memory interface compared with M1 Pro for up to 400GB/s, or nearly 6x the memory bandwidth of M1. This allows M1 Max to be configured with up to 64GB of fast unified memory.

Apple_M1-Pro-M1-Max_M1-Max-GPU-Performance-vs-PC_10182021

@Hiroshiba
Copy link
Member

エンジン側の関連Issue
ref: https://github.com/Hiroshiba/voicevox_engine/issues/145

@HyodaKazuaki
Copy link
Contributor

Intel Mac (x64)でVOICEVOXのビルド、実行に成功しましたのでコメントします。
ビルド方法は以下の記事に記載してあります。
https://k-hyoda.hatenablog.com/entry/2021/10/23/000349

ただ、いくつかMac特有の問題に対応しなければならない点があります。

  • public/icon.pngの解像度を上げる必要がある(最低でも512x512必要)
  • electron builderのビルドターゲットにMacの項目を追加する必要がある
  • vue.config.jsにあるextraFiles項目の展開先toと、Electronのapp.getPath("exe")のパスを揃える必要がある

@Apple-Yuki
Copy link
Contributor Author

To @Hiroshiba
Thank you for the excellent information!

Thanks for your comment, @HyodaKazuaki .
I had a look at the article and found that it did not build well on M1.
The M1 series Macs have the ARM version of the terminal and are not x64 compatible.
Please check "Use Rosetta" in the app information and try to build it.

Also, as for the icons that Mr. @HyodaKazuaki pointed out, here is the detailed information on the icons available for Mac.
https://developer.apple.com/design/human-interface-guidelines/macos/icons-and-images/app-icon/

We hope that you're staying safe wherever you are.
Please take care, stay safe, and have a great day.

@HyodaKazuaki
Copy link
Contributor

I had a look at the article and found that it did not build well on M1.
The M1 series Macs have the ARM version of the terminal and are not x64 compatible.
Please check "Use Rosetta" in the app information and try to build it.

Unfortunately, VOICEVOX could not be built as universal app.
The reason why that is libraries (such as LibTorch or OpenBLAS) which are used by VOICEVOX engine are not aarch64 compatible.
Please let us know if you know how to make VOICEVOX engine compatible with aarch64.


残念ながら、Universal appとしてVOICEVOXをビルドすることができませんでした。
VOICEVOXエンジンが利用しているライブラリ(LibTorchやOpenBLAS)がaarch64に対応していないためです。
VOICEVOXエンジンをaarch64に対応させる方法をご存知でしたらぜひ教えてください。

@Apple-Yuki
Copy link
Contributor Author

To @HyodaKazuaki

So it was.
I have confirmed that some libraries are installed differently in M1.

Please check if you can build it on your M1 using the following method.

In addition, you might want to check with Mr. @Hiroshiba for the specifications of the VOICEVOX engine, etc.

How to install LibTorch and OpenBLAS on M1

This assumes the use of [miniforge], which provides a Python environment for Macs with M1.

Download the arm64 (Apple Silicon) version of the installer (shell script) from the following link.
https://github.com/conda-forge/miniforge

  1. Once downloaded, run the installer. (Basically all yes)
source ~/Downloads/Miniforge3-MacOSX-arm64.sh
  1. Set up the environment, where myenv can be anything you like, but it is better to use python=3.8.6 because some well-known packages (such as numba and librosa, which depends on numba) are not compatible with python 3.9.
conda create -n myenv python=3.8.6
conda activate myenv
  1. Install the packages you normally use. You don't need to install all of the following packages, as they are the ones I usually use, but be sure to install numpy, which torch depends on.
conda install numpy
conda install numba
conda install pandas
conda install openpyxl
conda install scipy
conda install scikit-learn
conda install matplotlib
conda install seaborn
conda install jupyterlab
  1. Currently, torch cannot be installed by conda install torch or pip install torch.
    However, our predecessors have created a wheel, which can be used for easy installation. First, you need to download the wheel file.

⚠️If you specified python=3.8.x (3.8 series) when you created the borders, click the following link to go to Google Drive, click the download button in the upper right corner of the screen, ignore the warning and download the file.
https://drive.google.com/file/d/1e-7R3tfyJqv0P4ijZOLDYOleAJ0JrGyJ/view

⚠️If you specified python=3.9.x (3.9 series) when creating the environment, please click the following link to go to the Github page and click the "Download" button.
https://github.com/wizyoung/AppleSiliconSelfBuilds/blob/main/builds/torch-1.8.0a0-cp39-cp39-macosx_11_0_arm64.whl

  1. After downloading, you can install torch using the following command
    The command will be slightly different depending on whether you are using python 3.8 or 3.9, as the file names are different

If you have downloaded python3.8 series

pip install ~/Downloads/torch-1.8.0a0-cp38-cp38-macosx_11_0_arm64.whl

If you have downloaded python3.9 series

pip install ~/Downloads/torch-1.8.0a0-cp39-cp39-macosx_11_0_arm64.whl

You can now install torch.

thanks.

@HyodaKazuaki
Copy link
Contributor

@Apple-Yuki

Thanks for your instruction, but i have a Intel Mac only.
Is it possible to install OpenBLAS or LibTorch of arm64 on Intel Mac?


教えていただきありがとうございます。しかし、私はIntel Macしか持っていません。
Intel Macにarm64のOpenBLASやLibTorchをインストールする方法はありますか?

@Apple-Yuki
Copy link
Contributor Author

Apple-Yuki commented Oct 23, 2021

To @HyodaKazuaki !
Intel Macs run on Intel x86_64, while the M1 series runs on ARM architecture, so even if you can install OpenBLAS and LibTorch on arm64, you probably won't be able to build them. (Unless you can build them by importing them into XCode as libraries.

Intel Macは、Intel x86_64で動いているのに対して、M1シリーズはARMアーキテクチャなのでarm64のOpenBLASやLibTorchをインストールできたとしてもビルド等はできないと思われます。(XCodeにライブラリーとして取り込でビルドできるのであればできるかと思います。)

@Apple-Yuki

Thanks for your instruction, but i have a Intel Mac only. Is it possible to install OpenBLAS or LibTorch of arm64 on Intel Mac?

教えていただきありがとうございます。しかし、私はIntel Macしか持っていません。 Intel Macにarm64のOpenBLASやLibTorchをインストールする方法はありますか?

@HyodaKazuaki
Copy link
Contributor

To @HyodaKazuaki ! Intel Macs run on Intel x86_64, while the M1 series runs on ARM architecture, so even if you can install OpenBLAS and LibTorch on arm64, you probably won't be able to build them. (Unless you can build them by importing them into XCode as libraries.

Intel Macは、Intel x86_64で動いているのに対して、M1シリーズはARMアーキテクチャなのでarm64のOpenBLASやLibTorchをインストールできたとしてもビルド等はできないと思われます。(XCodeにライブラリーとして取り込めでビルドできるのであればできるかと思います。)

I see.
I think VOICEVOX engine cannot be built on XCode because it is written by Python.
If you have an M1 Mac, can you try building the VOICEVOX engine?
Build instruction is here (Japanese only): https://k-hyoda.hatenablog.com/entry/2021/10/23/000135


なるほど。
VOICEVOXエンジンはPythonで書かれているので、XCodeではビルドできないと思います。
M1のMacを持っていらっしゃるのであれば、VOICEVOXエンジンをビルドしてみていただけますか?
ビルド方法はこれです(日本語のみ): https://k-hyoda.hatenablog.com/entry/2021/10/23/000135

@Apple-Yuki
Copy link
Contributor Author

Apple-Yuki commented Oct 23, 2021

I understand.
I'm currently sending my MacBook Pro to AppleCare for battery maintenance, so I'll check it along with the M1 Pro and M1 Max.

分かりました。
現在、私用のMacBook Proはバッテリー周りのメンテナンスでAppleCareに修理に出してるため、M1 Pro、M1 Maxと合わせて確認します。

To @HyodaKazuaki ! Intel Macs run on Intel x86_64, while the M1 series runs on ARM architecture, so even if you can install OpenBLAS and LibTorch on arm64, you probably won't be able to build them. (Unless you can build them by importing them into XCode as libraries.
Intel Macは、Intel x86_64で動いているのに対して、M1シリーズはARMアーキテクチャなのでarm64のOpenBLASやLibTorchをインストールできたとしてもビルド等はできないと思われます。(XCodeにライブラリーとして取り込めでビルドできるのであればできるかと思います。)

I see. I think VOICEVOX engine cannot be built on XCode because it is written by Python. If you have an M1 Mac, can you try building the VOICEVOX engine? Build instruction is here (Japanese only): https://k-hyoda.hatenablog.com/entry/2021/10/23/000135

なるほど。 VOICEVOXエンジンはPythonで書かれているので、XCodeではビルドできないと思います。 M1のMacを持っていらっしゃるのであれば、VOICEVOXエンジンをビルドしてみていただけますか? ビルド方法はこれです(日本語のみ): https://k-hyoda.hatenablog.com/entry/2021/10/23/000135

@Apple-Yuki
Copy link
Contributor Author

Apple-Yuki commented Oct 23, 2021

Build and test status

Note:

This result was obtained on a clean Mac. It may vary depending on the situation and environment.
This test was conducted with the top-of-the-line model of each model. Some devices have been borrowed for testing.
Note that this test supports models that are within three years of the new product release date.
Operation on earlier devices is not guaranteed.
It is also subject to change depending on the support status of the OS.

Test OS

macOS Monterey 12.0.1(21A559)

Intel Mac

Intel x86_64 Build

Confirmed to work without problems.

M1 Mac

Tested with Rosetta2.

Intel x86_64 Build(Use Rosetta 2)

Confirmed to work without problems.However, it may not work in some environments.

Apple Chip ARM Build

The universal build is in beta.

※8GB memory model may cause some delays.(Common to both builds)

M1 Pro Macs

Tested with Rosetta2.

Intel x86_64 Build(Use Rosetta 2)

Confirmed to work without problems.However, it may not work in some environments.

Apple Chip ARM Build

The universal build is in beta.

※16GB memory model may cause some delays.(Common to both builds)

M1 Max Macs

Tested with Rosetta2.

Intel x86_64 Build(Use Rosetta 2)

Confirmed to work without problems.However, it may not work in some environments.

Apple Chip ARM Build

The universal build is in beta.

@Apple-Yuki
Copy link
Contributor Author

Apple-Yuki commented Oct 24, 2021

To @HyodaKazuaki
I think the relevant place in this article is misspelled and needs to be corrected.
https://k-hyoda.hatenablog.com/entry/2021/10/23/000135

Rejection details

Replace cuel -OL with curl -OL.

VOICEVOXコアモジュールのビルド

cd ../ # 元のディレクトリに戻る
❌→ cuel -OLhttps://github.com/Hiroshiba/voicevox_core/archive/refs/tags/0.7.4.zip
✅→ curl -OL https://github.com/Hiroshiba/voicevox_core/archive/refs/tags/0.7.4.zip
ditto -x -k --sequesterRsrc --rsrc 0.7.4.zip ./ # unzipコマンドでは展開に失敗するので、dittoコマンドを使う
rm 0.7.4.zip
cd voicevox_core-0.7.4
cp ./core.h ./example/python/ # ヘッダファイルのコピー
cd ./example/python
pip install -r ./requirements.txt
NUMPY_INCLUDE=`python -c "import numpy; print(numpy.get_include())"`
CPATH="$NUMPY_INCLUDE:${CPATH:-}" pip install .

thanks.

@HyodaKazuaki
Copy link
Contributor

To @HyodaKazuaki I think the relevant place in this article is misspelled and needs to be corrected. https://k-hyoda.hatenablog.com/entry/2021/10/23/000135

Definitely. I fixed it.
Thank you @Apple-Yuki .

@Apple-Yuki
Copy link
Contributor Author

to @HyodaKazuaki
I'm currently trying to build with M1 to get an Intel build, but it doesn't seem to work in my environment. I'm hoping to get an Intel build if possible.

The test status is Test Complete, but I'm a little confused because I just confirmed that it worked on a friend's Mac, so I haven't checked it on my personal device.

@HyodaKazuaki
Copy link
Contributor

HyodaKazuaki commented Oct 24, 2021

to @HyodaKazuaki I'm currently trying to build with M1 to get an Intel build, but it doesn't seem to work in my environment. I'm hoping to get an Intel build if possible.

The test status is Test Complete, but I'm a little confused because I just confirmed that it worked on a friend's Mac, so I haven't checked it on my personal device.

なるほど、たしかに実行可能なアプリがあったほうが検証しやすいですね。
@Hiroshiba この要件のために @Apple-Yuki へMacOS x64向けにビルドしたVOICEVOX.appを送りたいのですが、よろしいでしょうか?

@Hiroshiba
Copy link
Member

@HyodaKazuaki OSS版VOICEVOXでビルドしたものは再配布不可ではないので、(ちょっと面倒ですが)coreを除いて送っていただければ大丈夫です!

@HyodaKazuaki
Copy link
Contributor

@Hiroshiba ありがとうございます、coreだけ除去して送ります。
@Apple-Yuki Here is a VOICEVOX version 0.7.4 for x64 binary: https://drive.google.com/file/d/1VXj3XdJANEm2u0UNuF5YOIHVcbZgBCI1/view?usp=sharing
VOICEVOX core is not included in it, Install them according to README.

@Apple-Yuki
Copy link
Contributor Author

Apple-Yuki commented Oct 24, 2021

To @HyodaKazuaki

It seems that the following error is occurring internally.
内部で以下のようなエラーが発生しているようです。

[02:54:35.256] [error] ENGINE:   File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/soundfile.py", line 162, in <module soundfile>
OSError: cannot load library '/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/_soundfile_data/libsndfile.dylib': dlopen(/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/_soundfile_data/libsndfile.dylib, 0x0002): tried: '/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/_soundfile_data/libsndfile.dylib' (no such file), '/usr/local/lib/libsndfile.dylib' (no such file), '/usr/lib/libsndfile.dylib' (no such file)

[02:54:35.272] [info]  ENGINE: terminated due to receipt of signal null
[02:54:35.272] [info]  ENGINE: exited with code 1

 2021-10-25 2 56 22

@HyodaKazuaki
Copy link
Contributor

libsndfile.dylib

It seems I forgot embedding libsndfile.
I will rebuild it from now, but it takes a long time.
Can you try install libsndfile via brew?

brew install libsndfile

@Apple-Yuki
Copy link
Contributor Author

クリーンな環境に以下を入れました。

brew install libsndfile
brew install openssl@1.1

システムログとして以下の動作をして、内部エラーでエンジン起動失敗しています。

/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/VOICEVOX ; exit;
(base) apple@appurunoMacBook-Pro ~ % /Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/VOICEVOX ; exit;
[15:15:00.915] [info]  Starting ENGINE in CPU mode
[15:15:01.608] [error] Error: Failed to fetch Failed to fetch AudioQuery for the text "".
[15:15:01.611] [error] TypeError: Failed to fetch
[15:15:02.159] [error] ENGINE: Traceback (most recent call last):
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/run.py", line 59, in make_synthesis_engine
ImportError: dlopen(/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/core.so, 0x0002): tried: '/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/core.so' (no such file), '/usr/local/lib/core.so' (no such file), '/usr/lib/core.so' (no such file)
Notice: mock-library will be used. Try re-run with valid --voicevox_dir

[15:15:02.160] [error] ENGINE: Traceback (most recent call last):
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/run.py", line 427, in <module>
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/run.py", line 95, in make_synthesis_engine
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/voicevox_engine/dev/core/mock.py", line 76, in metas
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/pathlib.py", line 1266, in read_text
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/pathlib.py", line 1252, in open
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/pathlib.py", line 1120, in _opener
FileNotFoundError: [Errno 2] No such file or directory: '/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/voicevox_engine/dev/core/../../../VERSION.txt'

[15:15:02.251] [info]  ENGINE: terminated due to receipt of signal null
[15:15:02.251] [info]  ENGINE: exited with code 1

@HyodaKazuaki
Copy link
Contributor

HyodaKazuaki commented Oct 25, 2021

クリーンな環境に以下を入れました。

brew install libsndfile
brew install openssl@1.1

システムログとして以下の動作をして、内部エラーでエンジン起動失敗しています。

/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/VOICEVOX ; exit;
(base) apple@appurunoMacBook-Pro ~ % /Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/VOICEVOX ; exit;
[15:15:00.915] [info]  Starting ENGINE in CPU mode
[15:15:01.608] [error] Error: Failed to fetch Failed to fetch AudioQuery for the text "".
[15:15:01.611] [error] TypeError: Failed to fetch
[15:15:02.159] [error] ENGINE: Traceback (most recent call last):
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/run.py", line 59, in make_synthesis_engine
ImportError: dlopen(/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/core.so, 0x0002): tried: '/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/core.so' (no such file), '/usr/local/lib/core.so' (no such file), '/usr/lib/core.so' (no such file)
Notice: mock-library will be used. Try re-run with valid --voicevox_dir

[15:15:02.160] [error] ENGINE: Traceback (most recent call last):
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/run.py", line 427, in <module>
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/run.py", line 95, in make_synthesis_engine
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/voicevox_engine/dev/core/mock.py", line 76, in metas
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/pathlib.py", line 1266, in read_text
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/pathlib.py", line 1252, in open
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/pathlib.py", line 1120, in _opener
FileNotFoundError: [Errno 2] No such file or directory: '/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/voicevox_engine/dev/core/../../../VERSION.txt'

[15:15:02.251] [info]  ENGINE: terminated due to receipt of signal null
[15:15:02.251] [info]  ENGINE: exited with code 1

libcore.dylibVOICEVOX.app/Contents/MacOSにコピーしましたか?
VOICEVOXエンジンがlibcore.dylibを見つけられていないようです。
libcore_cpu.dylibのままでは認識しないので、libcore.dylibにリネームしてVOICEVOX.app/Contents/MacOSにコピーしてください。


Did you copy libcore.dylib to VOICEVOX.app/Contents/MacOS?
It seems VOICEVOX engine does not find libcore.dylib.
VOICEVOX engine cannot find core library which is libcore_cpu.dylib, so rename libcore_cpu.dylib to libcore.dylib and copy it to VOICEVOX.app/Contents/MacOS.

@Apple-Yuki
Copy link
Contributor Author

Apple-Yuki commented Oct 25, 2021

libcore_cpu.dylibをリネームしてVOICEVOX.app/Contents/MacOSにコピーをしています。
しかし、動かないので一度、リネームせずにlibcore_cpu.dylibをVOICEVOX.app/Contents/MacOSを入れてます。

その状態で以下のエラーログを確認しました。

/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/VOICEVOX ; exit;
(base) apple@appurunoMacBook-Pro ~ % /Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/VOICEVOX ; exit;
[17:08:34.335] [info]  Starting ENGINE in CPU mode
[17:08:35.168] [error] Error: Failed to fetch Failed to fetch AudioQuery for the text "".
[17:08:35.171] [error] TypeError: Failed to fetch
[17:08:35.627] [error] ENGINE: Traceback (most recent call last):
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/run.py", line 59, in make_synthesis_engine
ImportError: dlopen(/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/core.so, 0x0002): tried: '/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/core.so' (no such file), '/usr/local/lib/core.so' (no such file), '/usr/lib/core.so' (no such file)
Notice: mock-library will be used. Try re-run with valid --voicevox_dir

[17:08:35.628] [error] ENGINE: Traceback (most recent call last):
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/run.py", line 427, in <module>
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/run.py", line 95, in make_synthesis_engine
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/voicevox_engine/dev/core/mock.py", line 76, in metas
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/pathlib.py", line 1266, in read_text
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/pathlib.py", line 1252, in open
  File "/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/pathlib.py", line 1120, in _opener
FileNotFoundError: [Errno 2] No such file or directory: '/Users/apple/Desktop/voicevox-mac/VOICEVOX.app/Contents/MacOS/voicevox_engine/dev/core/../../../VERSION.txt'

[17:08:35.717] [info]  ENGINE: terminated due to receipt of signal null
[17:08:35.717] [info]  ENGINE: exited with code 1
[17:08:37.325] [info]  waiting engine...

あとerror2でVERSION.txtがないよと言っているようです。

@HyodaKazuaki
Copy link
Contributor

libcore_cpu.dylibをリネームしてVOICEVOX.app/Contents/MacOSにコピーをしています。
しかし、動かないので一度、リネームせずにlibcore_cpu.dylibをVOICEVOX.app/Contents/MacOSを入れてます。

その状態で以下のエラーログを確認しました。

すみません、GoogleドライブにアップロードしたVOICEVOX.appのデータに抜けがありました。
アップロードするときに、誤ってVOICEVOXコアモジュールであるVOICEVOX.app/Contents/MacOS/core.soを除去してしまいました。
再度アップロードし直しましたので、もう一度確認していただけますか?
READMEも更新してあります。
https://drive.google.com/file/d/1GV-D9-T4uW4OGQNhhiJ38OxdRd4qRkOJ/view?usp=sharing

libsndfileの追加が間に合わなかったため、brewでlibsndfileを入れる必要があります。

@kilinbox
Copy link

横から失礼します。レビューは多い方がいいのかなと思い、書き込ませていただいております。
@HyodaKazuaki が上げてくれたVOICEVOXと、Readmeに書いてあったとおりの手順で
コアライブラリをインストールすることにより、私の環境(Mac mini M1, 2020)でも動作しました。
ありがとう。動作風景は以下のツイートにあります。
https://twitter.com/kilinbox/status/1452600549975547906

@Apple-Yuki
Copy link
Contributor Author

Apple-Yuki commented Oct 25, 2021

@kilinbox レビューありがとうございます。
macOS Big Sirだと動いているようですね。
ただ、macOS Montereyに対応チェックしないとM1 Pro、M1 Maxで動作しないので引き続きレビューします。

@HyodaKazuaki
分かりました、brew install libsndfileで既にMacにライブラリとしてあるのでテストしてみます。

@Apple-Yuki
Copy link
Contributor Author

Apple-Yuki commented Oct 25, 2021

To @Hiroshiba
一応動作検証終了しました。なお、Mac版の不具合などは現在調査中です。

@HyodaKazuaki さんにいただいたビルドにて以下の動作を確認しました。
@kilinbox さんもレビューありがとうございました。ユニバーサルビルドで何か追加レビューの結果あれば追記いただければ助かります。

Build and Test Status

Note:

この結果は、クリーンなMacで得られたものです。状況や環境によって異なる場合があります。
このテストは、各モデルの最上位機種で実施しました。
なお、本テストは新製品発売日から3年以内のモデルに対応しています。
それ以前の機種での動作を保証するものではありません。
また、OSのサポート状況によっても変わることがあります。

⚠️現在、Universal Buildをビルドテストおよび動作テストしています。確認されるまで、Intelビルドを利用してください。

macOS Big Sir Support

◆Intel Mac

問題なく動作することを確認しました。

◆M1 Mac

Rosetta2でテスト済み
問題なく動作することを確認しています。ただし、環境によっては動作しない場合があります。

◆Apple Developer Transition Kit(A12Z Bionic)

Rosetta2でテスト済み
問題なく動作することを確認しています。ただし、環境によっては動作しない場合があります。

macOS Monterey Support

◆Intel Mac

問題なく動作することを確認しました。

◆M1 Mac

Rosetta2でテスト済み
問題なく動作することを確認しています。ただし、環境によっては動作しない場合があります。

※8GBメモリモデルでは遅延が発生する場合があります。

◆M1 Pro Macs

Rosetta2でテスト済み
問題なく動作することを確認しています。ただし、環境によっては動作しない場合があります。

※16GB メモリモデルでは遅延が発生する場合があります。

◆M1 Max Macs

Rosetta2でテスト済み
問題なく動作することを確認しています。ただし、環境によっては動作しない場合があります。

@Apple-Yuki Apple-Yuki changed the title Please release a Mac Universal App version. Macユニバーサルアプリ版のリリース:Please release a Mac Universal App version. Oct 25, 2021
@Apple-Yuki Apple-Yuki changed the title Macユニバーサルアプリ版のリリース:Please release a Mac Universal App version. Macユニバーサルアプリ版のリリース:Release a Mac Universal App version. Oct 25, 2021
@Hiroshiba
Copy link
Member

おー!!とりあえず動作して良かったです!
音声合成速度は体感で差はありましたか?👀

@Apple-Yuki
Copy link
Contributor Author

Apple-Yuki commented Oct 25, 2021

おー!!とりあえず動作して良かったです!
音声合成速度は体感で差はありましたか?👀

To @Hiroshiba

動作は、既に@kilinbox さんがあげてるような動作の動きをしており、
初回起動時はRosetta2が命令解析してるのか、起動は若干もたつきます。

なお音声合成速度は爆速でした。M1もそうですが、M1 Pro、M1 MaxではApple風にいうのであれば「恐るべき速さの怪力レベル」でした。

@HyodaKazuaki
Copy link
Contributor

@Apple-Yuki @kilinbox エンジンのビルド方法を変更したものを用意しました。
お手数ですが確認していただけますか?
https://drive.google.com/file/d/1I_Tvr6djjbVP6dFipl_2pgu0n9gYrJwC/view?usp=sharing
バージョンが0.7.5に変更され、libsndfileを別途インストールしなくても動作するようになっているはずです。

@kilinbox
Copy link

@Apple-Yuki @kilinbox エンジンのビルド方法を変更したものを用意しました。 お手数ですが確認していただけますか? https://drive.google.com/file/d/1I_Tvr6djjbVP6dFipl_2pgu0n9gYrJwC/view?usp=sharing バージョンが0.7.5に変更され、libsndfileを別途インストールしなくても動作するようになっているはずです。

Screen Shot 2021-10-26 at 2 39 49

brew remove libsndfileをした上で確認したところ動きました。音声合成もできています。

@Apple-Yuki
Copy link
Contributor Author

@HyodaKazuaki
ありがとうございます。M1、M1 Pro、M1 Maxにてbrew remove libsndfileなしで動作をしました。

なお、長文の音声合成はM1 Pro、M1 Maxでは爆速でした。

ひとまず、Intel x86_64 ビルドで @Hiroshiba さんに公開してもらう感じでいいかと思います。

一応、フォークしてこちらでいじってます。
https://github.com/Apple-Yuki/voicevox-for-Mac

@Hiroshiba
Copy link
Member

Mac版のリリースは自動ビルドができてからで良いかなと考えています。
理由は次の2つです。

  • ビルドして頂いたバイナリを配布して何か問題が合った場合に責任が取れない
    • 信頼していないからではなく、意図せず問題が起こった場合にちゃんと自分で責任を取れる形にしておきたいためです
  • 自分のローカルPCでビルドする時間が割けない
    • 単純に時間が足りないためです。。申し訳ない・・・

属人性のない自動ビルド環境でできあがった完璧なものを提供するのが一番かっこいいと思います。
そういう形での提供を目指していきたいです・・・!

@HyodaKazuaki
Copy link
Contributor

属人性のない自動ビルド環境でできあがった完璧なものを提供するのが一番かっこいいと思います。
そういう形での提供を目指していきたいです・・・!

https://github.com/Hiroshiba/voicevox_engine/issues/145#issuecomment-950045467
こちらでコメントしていますが、現在GitHub ActionsによるVOICEVOXエンジンの自動ビルドのための作業を行っております。
おそらく今週末までにはPRを投げ込めるかと思いますので、もうしばらくお待ちください。

@Apple-Yuki
Copy link
Contributor Author

一応テストで現状わかってる範囲でソースの変更してみました。

https://github.com/Apple-Yuki/voicevox-for-Mac

@Apple-Yuki
Copy link
Contributor Author

Apple-Yuki commented Oct 29, 2021

一応、テストでM1とかにサクッとインストールできるpkgを作成してみました。

https://1drv.ms/u/s!Ar4lRmDKpRwhbLeF4AvqcwKlt08?e=vM3VC9

一応インストーラパッケージには、署名はされていないので実行後、証明できませんのポップアップ後、設定のセキュリティ項目で今すぐ開くを押していただければ、システムにインストールされます。

あくまでも自環境でのベータビルド的な位置で作ってみたので、インストール後のvoicevox.appが起動するかは分かりません。

@Apple-Yuki
Copy link
Contributor Author

#399 comment forked.

macOS用アプリケーション (.app) とdmgファイル (.dmg) の自動ビルド #570の実行テストですが動作自体は以下の通りです

・Apple Silicon M1、M1 Pro、M1 Maxでの動作は問題ありませんでした。(Rosetta環境のみ)

動作の状況や書き出しデータはこちらからご覧ください。

なお、以下のイシューや改善点があります。

  • 設定画面のエンジンタイプでCPUからGPUに変更し、再起動された後CPUタイプへ復帰の際、アプリがクラッシュする。(以前のバージョンからあるものですけど)
  • 設定画面のコマンド登録画面で⌘Commandキーを押すと名称がMetaとなる。(⌘CommandEなどの複数登録が不可)
  • 設定画面などを開いてる際、上のコマンドバーの操作を一切受付ない。(仕様としてもユーザーエクスペリエンス的に直感的にしておいた方がいいかと。)
  • 初期起動のキャラの声のイントネーション未選択時に「次へ」をグレーアウトせず、警告文でユーザーに知らせるといいかと思います。
    もしくは、デフォルトイントネーションを決めておく。

@Hiroshiba
Copy link
Member

こちらはユニバーサル化に関して議論するissueにして、macでの動作に関しては #399 でやりとりできればと思います!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants