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

C/C++ Native Implementation? #3136

Open
jefgen opened this issue Sep 12, 2023 · 6 comments
Open

C/C++ Native Implementation? #3136

jefgen opened this issue Sep 12, 2023 · 6 comments

Comments

@jefgen
Copy link
Member

jefgen commented Sep 12, 2023

The really nice Microsoft.Recognizers.Text library has 4 main platforms that it currently targets:

  • C#/.NET
  • JavaScript/TypeScript
  • Python
  • Java

I was wondering, has there ever been any interest or desire to support a native implementation in C/C++?

We'd like to use the Microsoft.Recognizers.Text library, but can only build with C/C++ and don't have access to C#/.NET, which would likely be the closest option.

Is your feature request related to a problem? Please describe.
This is a feature request. We'd like to use the Microsoft.Recognizers.Text library, but we would need a native implementation.

Describe the solution you'd like
An officially supported port of the library to C++. :)

Describe alternatives you've considered
Using .NET Native is a potential option for avoiding the dependency on the .NET framework. However, this technology is only for UWP applications.

@jefgen
Copy link
Member Author

jefgen commented Sep 12, 2023

FWIW, it looks like this question came up ~2 years ago, and the suggestion at the time was to try and use the .NET version.

#2725

I'm wondering if there has been any other developments, or ideas on a native implementation, since then.

@aurghob
Copy link
Collaborator

aurghob commented Sep 13, 2023

Hi,

Unfortunately for this thread, The suggestion remains the same : to use the .NET version for now.
There have been no updates regarding a C++ library and there are no plans for the immediate future to have a C++ library for now.

We are open to others contributing to a C++ library if needed. We're actively working on the .NET version of the library as and when needed at the moment.

@chschrae
Copy link
Member

chschrae commented Oct 2, 2023

@jefgen there is a very minimized subset of this in C++ that was built into the Speech SDK as part of the intent pattern matcher. That could be included in a C++ project. Here is the documentation: https://learn.microsoft.com/en-us/azure/ai-services/speech-service/pattern-matching-overview

@jefgen
Copy link
Member Author

jefgen commented Oct 2, 2023

Thank you for the reply!

Just to make sure I understand, are you saying that it was the "pattern matcher" functionality that was ported to C++ as part of the Speech SDK?

Taking a quick look at the docs, it sort of looks like the pattern matcher is similar to the ICU MessageFormat functionality.

@chschrae
Copy link
Member

chschrae commented Oct 2, 2023

There is a "Pattern Matcher" used for intent recognition built-in to the Speech SDK that has some integer support based on the work in this repo. If that is all you need, then that could help. It is a VERY limited subset of this repo and some other changes were made along concatenating numbers as well to better support the intended patterns. I would guess that it is probably not what you are looking for, but I figured I might as well mention it in case it was helpful.

I'm not familiar with the ICU MessageFormat. It is a totally separate codebase.

@jefgen
Copy link
Member Author

jefgen commented Oct 2, 2023

Thanks for the reply.
In our case we are primarily interested in the Date/Time parsing of user input(s), and also the handling of different languages for the inputs too. The intent recognition does look interesting, but right now I don't think any of the scenarios being considered would require it. But things might change in the future. :)

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