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

Pykaldi on Conda Forge #307

Open
mmcauliffe opened this issue Oct 16, 2022 · 8 comments
Open

Pykaldi on Conda Forge #307

mmcauliffe opened this issue Oct 16, 2022 · 8 comments

Comments

@mmcauliffe
Copy link

Hello,

@h-vetinari and I got Kaldi building successfully on conda forge earlier this year, so I think it should be possible to get pykaldi on there as well built against the latest version of Kaldi. I can put together the initial feedstock for it, but just wanted to check for interest on the pykaldi maintainer front and who I should list as maintainers on pykaldi-feedstock.

@bmilde
Copy link
Contributor

bmilde commented Oct 16, 2022 via email

@mmcauliffe
Copy link
Author

Great, thanks for the link! I've started putting together a patch for it in the kaldi-feedstock and then once that's working I'll look to create a feedstock for pykaldi.

Looks like it'll be a large patch for the pykaldi version of kaldi, and I'm wondering if there any blockers to having the changes merged into upstream Kaldi. Looks like most of the changes are adding functions and changing signatures, along with big changes to the kws module, which I haven't used before. Before I submit a PR to kaldi for it, just wondering if there's any known incompatibilities with pykaldi's version and kaldi.

@mmcauliffe
Copy link
Author

Ok got the compatibility patch working here: https://github.com/mmcauliffe/kaldi-feedstock/blob/python_lib/recipe/patches/0004-PyKaldi-compatibility.patch. The only thing I had to change to be compatible with the latest kaldi commit was renaming TransitionModel to TransitionInformation in function signatures.

@h-vetinari
Copy link

@bmilde
Could you comment on the relationship between pykaldi and kaldi-io?

I ask because torchaudio (optionally) depends on kaldi-io, but it looks pretty hacky, and I'd much prefer using pykaldi if possible (in the context of packaging for conda-forge, where we can patch things as needed, but perhaps also for upstreaming those changes eventually).

@h-vetinari
Copy link

Hey again. I have a question regarding clif - even though the upstream repo is seeing some activity, there hasn't been a release for a long time and it's very hard to build for conda-forge.

The clif maintainers recommend to use pybind11. Is there a reason pykaldi absolutely need clif, or could it move the less google-internal & more-publicly facing pybind11?

Perhaps this is infeasible, but I thought I'd ask at least. It's for now the biggest roadblock for getting pykaldi into conda-forge.

@h-vetinari
Copy link

@bmilde Gentle ping on these two open questions from the last few months.

Could you comment on the relationship between pykaldi and kaldi-io?

The clif maintainers recommend to use pybind11. Is there a reason pykaldi absolutely need clif, or could it move the less google-internal & more-publicly facing pybind11?

@h-vetinari
Copy link

I'm asking about pykaldi vs. kaldi-io because I need to solve conda-forge/kaldi_io-feedstock#1 some way for packaging torchaudio, and I'd like to fix it correctly from the start, if possible.

@bmilde
Copy link
Contributor

bmilde commented Sep 15, 2023

@h-vetinari kaldi-io is a python package to read and write ark/scp files in Python. Afaik it's a reimplementation of kaldi's io functions and has nothing to do with pykaldi

Pybind11 and clif are two totally different projects and two completely different approaches to create a Python binding. So yes, you absolutely need clif to build pykaldi. You don't need it to run it though - it's not a dependency of the whl package.

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

3 participants