- Home /
 
               Question by 
               kaplica · Aug 27, 2015 at 04:14 PM · 
                erroriosspeechrecognition  
              
 
              Code works in unity but throws errors in iOS.
I've got this code, which works perfectly fine in Unity Editor on Mac. It's speech recognition (STT) with a plugin from AT&T which apparently is suppose to work with iOS and android.
     // Use this for initialization
     void Start () {
         List<RequestFactory.ScopeTypes> scopes = new List<RequestFactory.ScopeTypes>();
         scopes.Add (RequestFactory.ScopeTypes.Speech);
         scopes.Add (RequestFactory.ScopeTypes.STTC);
         scopes.Add (RequestFactory.ScopeTypes.TTS);
         requestFactory = new RequestFactory(endpoint,apiKey,appSecret,scopes,null,null);
     }
     
     void Awake(){
         
         Environment.SetEnvironmentVariable ("MONO_REFLECTION_SERIALIZER", "yes");
 
     }
     
     private bool _recognizing=false;
     void OnClick(){
         if (!_recognizing){
             _recognizing=true;
             StartCoroutine(DoRecognize());
         }
     }
     
     private IEnumerator DoRecognize(){
         speechText = GameObject.Find ("SpeechLabel").GetComponent<UILabel> ();
         GetComponent<AudioSource>().clip = Microphone.Start (null,false,5,8000);
         yield return new WaitForSeconds(5);
         Microphone.End(null);
         GetComponent<AudioSource>().Play(); //hear whatw e got
         float[] clipData = new float[GetComponent<AudioSource>().clip.samples * GetComponent<AudioSource>().clip.channels];
         GetComponent<AudioSource>().clip.GetData(clipData,0);
         WaveGen.WaveFormatChunk format = new WaveGen().MakeFormat(GetComponent<AudioSource>().clip);
         string filename = Application.persistentDataPath + "/" + "recordedSpeech.wav";
         FileStream stream = File.OpenWrite(filename);
         new WaveGen().Write (clipData,format,stream);
         stream.Close();
         Cert.Instate ();
         SpeechResponse response = requestFactory.SpeechToText (filename);
         string transcribedText = response.Recognition.NBest[0].ResultText;
         speechText.text = transcribedText;
         _recognizing=false;
     }
 }
And on iOS and android it doesn't want to work.
On android i'm not sure which errors it's throwing up as i'm not sure how to debug that precisely.
On iOS I'm getting this error:
 Validation successful!
  
 (Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 65)
 MissingMethodException: Method not found: 'Default constructor not found...ctor() of ATT_MSSDK.OAuthToken+OAuthTokenRaw'.
    at System.Web.Script.Serialization.JavaScriptSerializer.ConvertToObject (IDictionary`2 dict, System.Type type) [0x00000] in <filename unknown>:0
    at System.Web.Script.Serialization.JavaScriptSerializer.ConvertToType (System.Type type, System.Object obj) [0x00000] in <filename unknown>:0
    at ATT_MSSDK.OAuthToken.ParseJSON (System.String jsonInput) [0x00000] in <filename unknown>:0
    at ATT_MSSDK.RequestFactory.GetNewClientCredential () [0x00000] in <filename unknown>:0
    at ATT_MSSDK.RequestFactory.GetClientCredentials () [0x00000] in <filename unknown>:0
    at ATT_MSSDK.RequestFactory.ConvertToText (System.String audioFilePath, System.String speechContext, Nullable`1 xSpeechContext, System.String xArgsParameter, System.Collections.Specialized.NameValueCollection xArgsCollection, ATT_MSSDK.Speechv3.XArgs xArgs) [0x00000] in <filename unknown>:0
    at ATT_MSSDK.RequestFactory.SpeechToText (System.String audioFilePath) [0x00000] in <filename unknown>:0
    at VoiceReco+<DoRecognize>c__Iterator18.MoveNext () [0x00000] in <filename unknown>:0
It had a few more errors but i fixed most of them and I am left now only with this one, so it would be nice to get this sorted, anyone please.. ?
               Comment
              
 
               
              Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
               
 
			 
                