纳金网
标题:
unity3d语音朗读扩展
[打印本页]
作者:
会飞的鱼
时间:
2012-3-14 14:30
标题:
unity3d语音朗读扩展
Unity (Indie and Pro) can speak now. Sorry, only for Windows standalone
Just place the Dll in the windows/system32 folder
The "VoiceSpeaker.CS" file
代码如下:
// Voice Speaker (c) ZJP //
using UnityEngine;
using System;
using System.Collections;
using System.Runtime.InteropServices;
public class VoiceSpeaker : MonoBehaviour
{
[DllImport ("Voice_speaker.dll", EntryPoint="VoiceAvailable")] private static extern int VoiceAvailable();
[DllImport ("Voice_speaker.dll", EntryPoint="InitVoice")] private static extern void InitVoice();
[DllImport ("Voice_speaker.dll", EntryPoint="WaitUntilDone")] private static extern int WaitUntilDone(int millisec);
[DllImport ("Voice_speaker.dll", EntryPoint="FreeVoice")] private static extern void FreeVoice();
[DllImport ("Voice_speaker.dll", EntryPoint="GetVoiceCount")] private static extern int GetVoiceCount();
[DllImport ("Voice_speaker.dll", EntryPoint="GetVoiceName")] private static extern string GetVoiceName(int index);
[DllImport ("Voice_speaker.dll", EntryPoint="SetVoice")] private static extern void SetVoice(int index);
[DllImport ("Voice_speaker.dll", EntryPoint="Say")] private static extern void Say(string ttospeak);
[DllImport ("Voice_speaker.dll", EntryPoint="SayAndWait")] private static extern void SayAndWait(string ttospeak);
[DllImport ("Voice_speaker.dll", EntryPoint="SpeakToFile")] private static extern int SpeakToFile(string filename, string ttospeak);
[DllImport ("Voice_speaker.dll", EntryPoint="GetVoiceState")] private static extern int GetVoiceState();
[DllImport ("Voice_speaker.dll", EntryPoint="GetVoiceVolume")] private static extern int GetVoiceVolume();
[DllImport ("Voice_speaker.dll", EntryPoint="SetVoiceVolume")] private static extern void SetVoiceVolume(int volume);
[DllImport ("Voice_speaker.dll", EntryPoint="GetVoiceRate")] private static extern int GetVoiceRate();
[DllImport ("Voice_speaker.dll", EntryPoint="SetVoiceRate")] private static extern void SetVoiceRate(int rate);
[DllImport ("Voice_speaker.dll", EntryPoint="
auseVoice")] private static extern void PauseVoice();
[DllImport ("Voice_speaker.dll", EntryPoint="ResumeVoice")] private static extern void ResumeVoice();
public int voice_nb = 0;
void Start ()
{
if( VoiceAvailable()>0 )
{
InitVoice(); // init the engine
Debug.Log ("Number of voice : "+GetVoiceCount()); // Number of voice
SetVoice(voice_nb); // 0 to voiceCount - 1
Debug.Log ("Voice name : "+GetVoiceName(voice_nb));
Say("Hello. I can speak now. My name is "+GetVoiceName(voice_nb)+". Welcome to Unity");
}
}
void OnDisable()
{
if( VoiceAvailable()>0 )
{
FreeVoice();
}
}
}
所调用的 dll文件在附件中
作者:
彬彬
时间:
2012-3-16 19:40
欢迎光临 纳金网 (http://go.narkii.com/club/)
Powered by Discuz! X2.5