-
Notifications
You must be signed in to change notification settings - Fork 117
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
iOS向けにXCFrameworkを提供する #477
Comments
良いですね!!! 通常のビルド後にまとめる処理を実行する感じでしょうか。 |
おっしゃる通りです。 |
すみません私の不手際で見えなかっただけでした。 |
Issue 作成ありがとうございます!(同趣旨の Issue を作ろうとしていましたがモタモタしていました……)
確認ありがとうございます。 (1つ興味があるのですが、それぞれの xcframework の名前を、元の binary と同じ名前の
Swift あるいは Objective-C による Binding を作るとより便利だ、ということですね(例としては、onnxruntime がちょうど Objective-C のインターフェースを提供していますね)。先に Binding を作るか、後で作るかの選択になりそうですね。現在は Android 版とほとんどのコードを共有する形でスマホ版の VOICEVOX を作る方向性になっており、VOICEVOX のプロジェクトとしては Swift や Objective-C の Binding を使わない可能性があります。Binding の作成の優先度については、スマホ版の開発の中で判断していけると良さそうです( VOICEVOX のプロジェクトの中で Binding を使う必要性があれば、優先度も上がりそうです)。 |
また、もう1つ確認したいことがあるのですが、作成した xcframework にはモデルファイルが含まれない、という認識であっているでしょうか? もし含まれない場合、モデルファイルのみを含んだ zip ファイルも個別に配布すると(特に voicevox_mobile の作業で行うと思われる自動ビルド向けに)便利そうです。既存の別のプラットフォーム向けに配布されている zip からモデルファイルだけ抽出して使うというのも可能ではありますが……。 |
試した限りでは、
Bindingについては、そのまま扱うことに抵抗がなければ必要ないかもしれません。
おっしゃる通りです。
あったほうが便利だと思います。いかがでしょうか? @Hiroshiba |
modelディレクトリだけも配るの、たしかにスマホ向けにあった方が便利そうに思いました。 |
それで良いと思います。 |
どなたかプロジェクトにVoicevoxのXCFrameworkを追加する方法を教えていただけませんか?XCFrameworkをプロジェクトに追加したことがなくてやり方がわかりません、、 |
@AsanoGenki 答えられるかわかりませんが、とりあえず新しくissueを立てていただければ! |
issue作成ありがとうございます! せっかくなのでリンク貼っときます 🙏 |
内容
#471 によってiOS向けの動的ライブラリがビルドされるようになりました。
iOSアプリでは、シミュレータと実機、さらにシミュレータのアーキテクチャごとにビルドされた動的ライブラリを使わないとXcodeが警告やエラーを出します。
しかし、これらを適宜切り替えるのは利用者(VOICEVOXコアを使う開発者)にとって手間です。
そこで、XCFrameworkというものを使うことを提案します。
Pros 良くなる点
XCFrameworkでは、各アーキテクチャ向けの動的ライブラリなどをパッケージにして利用することができます。
Xcode側でこのパッケージから当該のアーキテクチャで必要となるライブラリを利用するため、利用者の負担が軽減されます。
Cons 悪くなる点
実現方法
lipo
コマンドを使って両者を1つのfat binaryに変換します。xcodebuild
コマンドにある-create-xcframework
オプションを使うことで動的ライブラリ自体をXCFrameworkに固めることができます。ヘッダファイルを含めることができるため、これをXcodeにD&Dするだけで利用できるようになると思われます。
悪くなる点にも書きましたが、VOICEVOX COREと別でonnxruntimeもXCFrameworkにする必要があります。
その他
これだけだとVOICEVOX CoreのAPIしか見えないので、Swiftからは非常に扱いづらいです。
そのため、エンジンのような機能を追加で作る必要がありそうです。
onnxruntimeとVOICEVOX Coreを分離してXCFrameworkとして利用することができるのかは調査できていません。
The text was updated successfully, but these errors were encountered: