2017-03-03 93 views
4

我在尋找System.speech要團結一致嗎?有沒有辦法如何在統一和MonoDevelop中包含這個DLL?如何添加文本到語音到Unity項目?

因爲iam試圖在沒有從資產商店花錢的情況下將語音轉換成語音。如果System.Speech庫DLL可以處理這個爲什麼不。只是如何使它與統一5.3.5一起工作?我也試過speechLib.dll。它是在編輯器中工作而在Build to APK時出錯而無法建立。

任何幫助感謝高級!

丹尼斯

+2

System.Speech是Microsoft。net和Unity在單聲道上運行。看到這個:http://stackoverflow.com/questions/31633568/system-speech-in-mono-on-linux –

+0

嗨@SebastianL我試着看單聲道項目 - >編輯引用 - >包,我可以看到有System.Speech在那裏。它在單聲道,爲什麼我不能使用它甚至system.speech是microsoft.net?是否有任何語音DLL版本供團結使用? –

+0

不,如果你想讓它在android/iOS上運行,那麼你需要第三方lib –

回答

3

的dll,除非它是沒有Windows API指定的非託管的dll文件的文件沒有Android或iOS上運行。如果它是Windows API或受管dll,那麼它將無法在Android或iOS上運行。

你有兩個選擇:買一個插件或自己做。如果您只針對Android和iOS,那麼請致電thisEasy TTS,價格爲5美元。

如果您想自己製作一個,那麼這個過程與我的Speech to Text solution非常相似。唯一的區別是使用的類。讓自己變得容易。唯一的缺點是,爲每個平臺製作一個是耗時的。

的Android

TextToSpeech類。

的iOS

AVSpeechSynthesizer

MacOS的

NSSpeechSynthesizer

的Windows

ISpVoice

有大量的如何在互聯網上使用這些例子。你必須爲Android類使用Java,Objective-C爲iOS和MacOs類製作插件。用於Windows類的C++。

爲了把它們放在一起,你應該使用Unity的指令來做到這一點。

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 
} 
+0

看起來很簡單TTS不夠好。因爲它在工作之前需要在android手機中進行設置。玩家不會在手機上做任何設置,只是玩。 –

+0

@DennisLiu收視率真的不錯。你必須在Android中設置什麼? – Programmer

+0

需要在移動設備上設置TTS引擎設置。文字轉語音選項並選擇Google文字轉語音引擎。看看這個:https://d2ujflorbtfzji.cloudfront.net/package-screenshot/1baa029f-1b6d-4479-afb2-62c54526abcf_scaled.jpg –