[LinuxGurus] Windows API einer Spracherkennungssoftware unter Linux nutzen-Emu!?

Software besorgen und anwenden
Post Reply
Message
Author
Bud Spencer
Posts: 7
Joined: 03. Nov 2006 22:57

[LinuxGurus] Windows API einer Spracherkennungssoftware unter Linux nutzen-Emu!?

#1 Post by Bud Spencer »

Hallo, bin neu im Forum und brauche auch drigend euer KnowHow. Tut mir leid, wenn es irgendwie gierig klingt.

Ich habe folgendes Problem und brauche einen Rat zur Machbarkeit bzw. ein paar Hinweise zu Tools mit denen ich folgendes realisieren kann:

Es soll eine Sprachsoftware (Windows-Programm), die einen Sound-Input durch einen Mikrofon an der Soundkarte verarbeitet und bestimmte Daten wiedergibt, unter Linux zum Laufen gebracht werden.

Dabei soll Wine NICHT zum Einsatz kommen, da Wine gerade solche Abbildungen von Hardwarezugriffen von Windows-Programmen auf Äquivalente in Linux nicht wirklich "sicher" durchführt. D.h., solche Zugriffe könnten ggf. nicht weiterverarbeitet werden, zu Fehlern und Absturz führen. Die Entwickler weisen selbst darauf hin. Wine ist gut für Spiele, aber professionelle Software muss stabil laufen.

Die Risiken der Nutzung von Wine ist demnach zu hoch, denn die Software muss auch auf verschiedenen Hardware-Plattformen laufen. Weiterhin ist der Leistungshunger für den Einsatzgebiet auf mobilen Geräten nicht vertretbar.

Es gibt keine Linux-Portierung der Software, wenn, dann nur mit horrenden Summen, wenn ihr versteht

Ich brauche nun dringend einen Rat bzw. ein Feedback über die Machbarkeit. Es ist denkbar, dass es irgendwo eine Software gibt, die dies "sicher" realisiert. Denn gerade Leute, die mit der Sounderstellung beschäftigt sind, könnten so ihre professionellen Sound-(Windows)-Programme unter Linux betreiben.

Für jeden Ratschlag bin ich sehr dankbar. Vllt. kann ich euch irgendwann auch mal aus der Patsche helfen oder anderwertig mich erkenntlich zeigen.

----

EDIT:
Ich gebe euch nun meine vollen Absichten bekannt, ich dachte, dass dies vllt. unnötig ist, aber es kommt leider zu Missverständnissen, also:

Es gibt eine fertige Spracherkennungssoftware von Nuance, eben Vocon 3200. Ich nutze die API dieser Spracherkennungssoftware, um es in eine andere, plattformunabhängige Software zu implementieren. Das Problem ist, dass Vocon 3200 auf Windows läuft und auch die API auf Windows abgestimmt ist.

Es gibt ein Windows-Beispielprogramm, welches Nutzen von der API zieht. Dieses Programm ist konsolenbasiert und nimmt beim Start lediglich die Sprache eines Nutzers auf. Dann erfolgt die Spracherkennung und ein Ergebnis wird auf dem Bildschirm präsentiert. Das Programm ist Standalone, d.h., die Installation der API wird nicht benötigt. Sie greift lediglich auf beiliegende Dlls zu. Dieses Programm möchte ich nun unter Linux zum Laufen bringen (mitsamt der beiliegenden API-dlls). Später kann ich das Programm zu meinen Zwecken umschreiben und in eine andere Software einbinden, das soll nicht das Problem sein. Mein Problem ist einfach nur, dass dieses Programm (und die API-dlls) auf Linux laufen.

Eine Portierung der API der Spracherkennungssoftware ist sehr zeitaufwendig und kostspielig.

Nun habe ich alle Infos preisgegeben. Wenn Fragen sind, bitte scheut nicht zu fragen.
Last edited by Bud Spencer on 04. Nov 2006 16:15, edited 3 times in total.

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#2 Post by Janka »

Wenn dir Wine bzw. deren Ableger WineX, Cedega und CrossoverOffice nicht reichen, und eine Virtualisierung (Vmware, qemu) nicht in Frage kommt, bleibt dir wohl nur die Neuimplementierung deiner Sound-Software.

Die Wine-Entwickler sind ja nicht zu blöd dazu, die Windows-API brauchbar nachzubilden. Wine ist aber eben *kein* Emulator, und deshalb sind direkte Portzugriffe etc. einfach BÄH! Das ist aber seit MS-Windows NT/2000 auch dort BÄH und solche Software kann man wohl getrost als "speziell", "altbacken" oder in vielen Fällen auch als "Müll" ansehen

Andererseits finde ich es schon sehr ungewöhnlich, dass eine Software direkt auf die Soundkarte zugreift anstatt auch unter MS-Windows den entsprechenden Treiber zu verwenden. Um welche ominöse Software geht es denn konkret?

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

#3 Post by hjb »

Hi,

vielleicht hilft dir das weiter:

http://www.pl-berichte.de/berichte/portierung.html

Grüße,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

Bud Spencer
Posts: 7
Joined: 03. Nov 2006 22:57

#4 Post by Bud Spencer »

Hi,vielen Dank für die Antworten.

@ Janka
Die Software nennt sich Nuance Vocon 3200. Ein direkter Hardwarezugriff erfolgt meines Wissens nicht. Sollte wahrscheinlich über entsprechende DirectX Elemente erfolgen. Ich muss auch dazu sagen, dass ich Berufseinsteiger bin, eher eine studentische Hilfskraft, und auch nicht viel Erfahrung habe.

@ hjb
Danke, werd es mal lesen

Was würdet ihr vorschlagen zu nutzen? Ich habe Vocon 3200 unter Windows und muss es sicher auf Linux zum laufen bringen, dabei muss die Hardware-Plattform wirklich egal sein. D.h. es muss möglichst auf allen problemlos laufen. Weiterhin muss es auch etwas schnell laufen, da der Einsatzgebiet auf mobielen Geräten beruht.

Das Programm ist nur konsolenbasiert, d.h. ohne grafische Oberfläche. Es wird lediglich der Audio-Input der Soundkarte genutzt, mehr nicht.

Könnt ihr mir für dieses Vorhaben eine gute Lösung empfehlen? Also, ich bin gegenüber Wine nicht abgeneigt, nur darf es keine Probleme bezüglich verschiedener Hardwareplattformen machen.

Bud Spencer
Posts: 7
Joined: 03. Nov 2006 22:57

#5 Post by Bud Spencer »

Ich gebe euch nun meine vollen Absichten bekannt, ich dachte, dass dies vllt. unnötig ist, aber es kommt leider zu Missverständnissen, also:

Es gibt eine fertige Spracherkennungssoftware von Nuance, eben Vocon 3200. Ich nutze die API dieser Spracherkennungssoftware, um es in eine andere, plattformunabhängige Software zu implementieren. Das Problem ist, dass Vocon 3200 auf Windows läuft und auch die API auf Windows abgestimmt ist.

Es gibt ein Windows-Beispielprogramm, welches Nutzen von der API zieht. Dieses Programm ist konsolenbasiert und nimmt beim Start lediglich die Sprache eines Nutzers auf. Dann erfolgt die Spracherkennung und ein Ergebnis wird auf dem Bildschirm präsentiert. Das Programm ist Standalone, d.h., die Installation der API wird nicht benötigt. Sie greift lediglich auf beiliegende Dlls zu. Dieses Programm möchte ich nun unter Linux zum Laufen bringen (mitsamt der beiliegenden API-dlls). Später kann ich das Programm zu meinen Zwecken umschreiben und in eine andere Software einbinden, das soll nicht das Problem sein. Mein Problem ist einfach nur, dass dieses Programm (und die API-dlls) auf Linux laufen.

Eine Portierung der API der Spracherkennungssoftware ist sehr zeitaufwendig und kostspielig.

Nun habe ich alle Infos preisgegeben. Wenn Fragen sind, bitte scheut nicht zu fragen.

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#6 Post by Janka »

Wenn das Programm die DirectX-Soundschnittstelle benutzt, sollten sich WineX und Cedega hervorragend eignen. Kannst du nochmal einen Link auf die Dokumentation geben, die dich zu deiner anfänglichen Annahme brachte, das ginge so nicht...

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Bud Spencer
Posts: 7
Joined: 03. Nov 2006 22:57

#7 Post by Bud Spencer »

Hallo,

danke für den Tipp. Wegen der Doku, ich schau mal genauer rein. Es ist bislang nur eine Vermutung, dass DirectX genutzt wird.

Folgende Fortschritte habe ich gemacht:

- Ich habe versucht unter Linux mit dem aktuellsten Wine das Programm zu starten.
- Es ist ein Fehler aufgetreten, dass die "msvcr80.dll" nicht gefunden worden ist.
- Daraufhin habe ich diese Datei aus den Windowssystemverzeichnissen rausgeholt und in den Programm-Ordner unter Linux kopiert.
- Wieder starte ich Wine. Diesesmal tritt der Fehler :

Code: Select all

Microsoft Visual C++ Runtime Library

Runtime Error!

Program: Z:\vocon\audioloop.exe

R6034
An application has made an attempt to load the C runtime library incorrectly.
Please contact the application's support team for more information.
Ich habe nach diesem Fehler in Verbindung mit Wine gegoogelt und habe entdeckt, dass dieser Fehler u.a. auftritt, wenn man versucht .Net Applikationen mit Wine auszuführen. Für .Net Applikationen kann man eigentlich mit Mono ran, aber nutzt vermutlich das Spracherkennungs-Programm nicht nur .NET-Klassen, sondern auch die Win API. Es gibt aber keine Mono-Wine Kombination...

Ich habe aber Einiges darüber gelesen, dass man zumindest .NET Framework 1.1. halbwegs unter Wine installieren kann. Weiß jemand wie das geht bzw. hat jemand einen Link von euch, wo ich es nachlesen kann? Zur Zeit finde ich nichts bei Google.

Vielleicht ist der oben genannte Fehler nicht auf .NET zurückzufolgen. Vllt. hat jemand eine Ahnung, warum es nicht läuft...

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#8 Post by Janka »

Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Bud Spencer
Posts: 7
Joined: 03. Nov 2006 22:57

#9 Post by Bud Spencer »

Genau, habe ich auch gefunden, aber nicht so recht verstanden.
A while back I got the .NET framework to run a program in Wine. These notes may be slightly out of date, so feel free to update them with your experience.

A better way to support .NET programs would be to integrate with Mono. This could be done by creating a wine version of mscoree.dll.

Anyway, here's some notes on what I did:

Notes on getting the .NET framework to install.

1. Install DCOM95, IE6.
2. Winver=win2k, msi,msiexec=b, install netfx.msi
3. Add the following key:

Code: Select all

[Software\\Microsoft\\.NETFramework] 1101351980
"InstallRoot"="C:\\Windows\\Microsoft.NET\\Framework\\"
Move some files round:

Code: Select all

 move files in Win/* to Windows/*
 cd Windows/Microsoft.NET/Framework/
 mkdir v1.1.4322
 cp -R Framework/URTInstallPath/* v1.1.4322/
 wine .cxoffice/dotwine/fake_windows/Windows/Microsoft.NET/Framework/v1.1.4322/RegAsm.exe c:\\Windows\\System\\mscoree.dll
Manually added the following key to the registry:

Code: Select all

[Software\\Classes\\CLSID\\{E5CB7A31-7512-11D2-89CE-0080C792E5D8}\\InprocServer32] 1101368247
@="c:\\windows\\system\\mscoree.dll"
1.) Welche Versionen von DCOM95, IE6
2.) Was bedeutet "Winver=win2k, msi,msiexec=b, install netfx.msi"
3.) Wo soll ich die Schlüssel setzen

Kenne mich auch nicht so doll mit Wine aus.

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#10 Post by Janka »

Naja, diese Fragen solltest du am besten auf der Wine-Mailingliste stellen. Dafür ist die ja da.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Post Reply