webentwicklung-frage-antwort-db.com.de

Wie füge ich Text zu Sprache zu Unity hinzu?

Ich suche System.speech um in der Einheit zu arbeiten? Gibt es eine Möglichkeit, diese DLL in Unity und MonoDevelop einzubinden?

Weil ich versuche, einen soliden Text zu Sprache zu machen, ohne das Geld aus dem Asset Store auszugeben. Wenn System.Speech Library DLL damit umgehen könnte, warum nicht. Wie kann es mit Unity 5.3.5 funktionieren?

Ich habe auch schon versucht speechLib.dll . Es ist zwar Arbeit im Editor, aber beim Erstellen in APK ist es ein Fehler und kann nicht erstellt werden.

6
Dennis Liu

DLL-Dateien funktionieren nicht auf Android oder iOS, es sei denn, es handelt sich um eine nicht verwaltete DLL-Datei ohne die von Windows angegebene API. Wenn es sich um eine Windows-API oder eine verwaltete DLL handelt, funktioniert sie unter Android oder iOS nicht.

Sie haben zwei Möglichkeiten: Kaufen Sie ein Plugin oder machen Sie Ihr eigenes. Wenn Sie nur Android und iOS als Ziel haben, wählen Sie thisEasy TTS, was 5 $ kostet. 

Wenn Sie selbst einen erstellen möchten, ist der Prozess sehr ähnlich zu meiner Sprache zu Text Lösung . Der einzige Unterschied sind die verwendeten Klassen. Es ist leicht, sich selbst eins zu machen. Der einzige Nachteil ist, dass es zeitaufwändig ist, für jede Plattform eine Plattform zu erstellen.

Android:

TextToSpeech Klasse.

iOS:

AVSpeechSynthesizer class

Mac OS:

NSSpeechSynthesizer class

Windows:

ISpVoice Klasse

Es gibt unzählige Beispiele, wie Sie diese im Internet nutzen können. Sie müssen ein Plugin für die Android-Klasse erstellen, indem Sie Java, Objective-C für die iOS- und MacOs-Klassen verwenden. C++ für die Windows-Klasse.

Um sie zusammenzusetzen, sollten Sie dazu die Direktive von Unity verwenden.

class TextToSpeech
{
  #if UNITY_Android  
    Use TextToSpeech class
  #endif

  #if UNITY_IOS
    Use AVSpeechSynthesizer class
  #endif

  #if UNITY_STANDALONE_OSX || UNITY_EDITOR_OSX
    Use NSSpeechSynthesizer class
  #endif

  #if UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN
    Use ISpVoice class
  #endif 
}
3
Programmer

Eine weitere Option: Klattersynth TTS für Unity

http://strobotnik.com/unity/klattersynth/

Kleiner, vollständig eingebetteter Sprachsynth, funktioniert auf allen Plattformen gleich.

0
tonic