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

NumSharp依存を外す #10

Open
yamachu opened this issue Sep 11, 2021 · 1 comment
Open

NumSharp依存を外す #10

yamachu opened this issue Sep 11, 2021 · 1 comment

Comments

@yamachu
Copy link
Owner

yamachu commented Sep 11, 2021

動作させることを目標として配列操作の中身をブラックボックス化してNumSharpを使用したが、配列操作で何が行われているのかを把握するため、ネイティブの配列操作で書き直したい。

これが実現されることによって、Numpyのバインディングがない言語でも本実装を参考実装として、単純な配列操作でEngineの再実装が行うことが可能となる。

@yamachu
Copy link
Owner Author

yamachu commented Sep 11, 2021

https://github.com/yamachu/VoicevoxEngineSharp/blob/b00bb08972e6fe03c8283872a9ce481e16b635a9/src/Core/src/Acoustic/Models/SamplingData.cs
https://github.com/yamachu/VoicevoxEngineSharp/blob/b00bb08972e6fe03c8283872a9ce481e16b635a9/src/Core/src/Acoustic/Usecases/SynthesisEngine.cs

の2ファイルが依存している。

例えば

var indexes = (np.random.rand() + index + np.arange(_length.Value)) * (rate / resampleRate);

は連番の配列を作り出し、それに対してindexやrandの値を足し合わせ定数をかけることで作り出せて

return array[np.floor(indexes, NPTypeCode.Double).astype(NPTypeCode.Int32)];

は上記の配列の中身をindexとして扱い、渡された配列のElementAt(index)みたいな感じの取得を行うみたいな感じ。

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

No branches or pull requests

1 participant