Please see the IPP 7.0 release notes. The Speech Recognition domain was removed from the 7.0 release and is only part of the 6.1 product. We hope to have a KB article published that will show how to link the 6.1 SR domain with the 7.0 library, but engineering is still working on the details.
Until then, you need to either use the 6.1 library to access the SR functions or use an equivalent in the one of the other domains (such as the ippsLog functions).
I am facing a similiar problem when we migrated to ipp 7.0 from ipp 6.1. We were using some functionalities from ippsr libraries which no longer works now.
I tried to work around this problem by compiling the specific module with ippsr.h and then adding the libippsremergedem64t.a libippsrmergedem64t.a libippsemergedem64t.a libippsmergedem64t.a after all the ipp 7.0 libraries during the linking step.compilation and linking went through without any problem.
Please let me know whether this is the correct way to proceed? Also please let me know whether the KB article is available for using ipp 6.1 with ipp 7.0?
The most reliable suggestion from engineeringwe have at this time is to:
create a custom library based on the version 6.1 single-threaded static speech recognition (SR) library using the the ipp_mx.h header file (i.e., %IPPROOT%\em64t\tools\staticlib\ipp_mx.h) to extract only the generic library code (use ipp_px.h for 32-bit code)
Much of the SR code relies on optimizations located in the signal processing (SP) domain, so you won't be giving up all performance advantages by using the mx layer within the SR library, since many of these SRfunctions call SP functions (which will be part of the 7.0 library).
Sorry, no KB article, yet; still working out the best solution.
If the technique you are using above results in no problem externals (that is, the only unsatisified external calls are to the other published IPP library interfaces) you should be okay.
We're facing the same problem. Is the SR library removed persistently from IPP 7.0 and upwards?
I'm not 100% sure if I understand your suggested path, but let me recap:
1) include ipp*.h from 7.0
2) include just ippsr.h from 6.1
3) include ipp_px.h from 6.1 (32bit)
3) link dynamically against 7.0
4) link statically against ippsmerged, ippsemerged, ippsremerged, ippsrmerged from 6.1
It seems true. What is thefunction you areuseing? If ippsResamplePolyphase, then please see the source code in Intel IPP ippsResamplePolyphase function source download.
If other functions, yes, you may mix the 7.0 and 6.1 library. The steps you mentioned looks fine and please try it andlet us knowhow it works.
As I know, some users workaroundthe problembybuilding custom dll based on 6.1.
1) Building custom dll based on 6.1 by the sample
for example, edit the export.def in w_ipp-samples_p_6.1.5.060\ipp-samples\advanced-usage\linkage\customdll\src to add the ippSR function you will used.
and run command :build32.bat customdll.
2) once custom dll (usr.lbi and usr.dll, doesn't use the usr_t.lib)was produced.The custom dllwillnot depend on IPP 6.1 longer. Thenyou can build your application with the library and IPP 7.0 library together. Theyshould independent likeastwo kind of different libraries.
I will try the suggested path. You said: "It seems true." Is this in response to "SR persistently removed from IPP"?
We're using a lot more functions as we have our own ASR engine.
Right, SRwill bepersistently removed from IPP.ButItis stillpossible to restore some basic functionsin future product.The request is still under review and not final decision yet. Please let us know if you have any feedback.
Are functions ippsNthMaxElement_*() (e.g. ippsNthMaxElement_32s()) available somewhere else or have replacements in 7.0+?
My application is not SR-specific - that was the only function I found for calculating median on vector elements in o(n). If there is another function that can do that please let me know.
I'm using mainly IPP 7.0 and some code still needs to be compatible with 6.1.
As mentioned above, ippsr.h (and ippsNthMaxElement_*()) is available in 6.1 but not in 7.0.
What I did instead was sorting in o(N logN) - not ideal but does the job:
shift = shiftVec[len / 2];
I'm still hoping there might be a replacement for finding median or any percentile in o(N). Anyone? Any plans for this?
Thanks Sergey, read about the algorithm now and it's quite neat.
As you mention - it has a limitation based on the value range and would require dynamically allocated memory. Anyway it's an overkill for my purpose.
I hoped to find something in IPP, so that it would also take advantage of the Intel code set.
Thanks again for your help and the education...
I'm using mainly IPP 8.1 for Xcode 5.0 under OSX 10.8 and I found that the ippsr library is not included. I want to use the ippsMahDistSingle_32f64f() function. Any suggestion ? I see that if I use the 6.1 revision library I can have the speech recognition library. But is the 6.1 revision works with Xcode ?