IEnumerator Download() { for (int i = 0; i < textsToConvert.Count; i++) { Debug.Log("Request for \"" + textsToConvert[i] + "\" is sent"); Regex rg = new Regex("\\s+"); string result = rg.Replace(textsToConvert[i], "+"); print("TextToSpeech->ExternalRef.BaseUrl: " + Toolbox.ExternalHandler.baseURL); string url = Toolbox.ExternalHandler.baseURL + "api/speechapi/GetDynamicSpeechData?text=" + result + "&speed=30&volume=90&speechLanguage=en";//n2y server print(url); WWW ww = new WWW(url); yield return(ww); Debug.Log("#Audio downloaded : " + ww.text); GetAudio Audio = JsonConvert.DeserializeObject <GetAudio>(ww.text); string NewUrl = Audio.mp3FileUrl; WWW wwNew = new WWW(NewUrl); yield return(wwNew); Debug.Log("Done waiting now storing audio " + NewUrl + " " + wwNew.text); Toolbox.SoundManager.sounds.Add(wwNew.GetAudioClip(false, false, AudioType.MPEG)); AudioDownloaded++; } }
public Mp3Decoder(string mp3File) { // encoder modules lame = new Lame(); gaud = new GetAudio(); ga = new GainAnalysis(); bs = new BitStream(); p = new Presets(); qupvt = new QuantizePVT(); qu = new Quantize(); vbr = new VBRTag(); ver = new Mp3Version(); id3 = new ID3Tag(); rv = new Reservoir(); tak = new Takehiro(); parse = new Parse(); mpg = new MPGLib(); intf = new Interface(); common = new Mpg.Common(); lame.setModules(ga, bs, p, qupvt, qu, vbr, ver, id3, mpg); bs.setModules(ga, mpg, ver, vbr); id3.setModules(bs, ver); p.Modules = lame; qu.setModules(bs, rv, qupvt, tak); qupvt.setModules(tak, rv, lame.enc.psy); rv.Modules = bs; tak.Modules = qupvt; vbr.setModules(lame, bs, ver); gaud.setModules(parse, mpg); parse.setModules(ver, id3, p); // decoder modules mpg.setModules(intf, common); intf.setModules(vbr, common); gfp = lame.lame_init(); /* * turn off automatic writing of ID3 tag data into mp3 stream we have to * call it before 'lame_init_params', because that function would spit * out ID3v2 tag data. */ gfp.write_id3tag_automatic = false; /* * Now that all the options are set, lame needs to analyze them and set * some more internal options and check for problems */ lame.lame_init_params(gfp); parse.input_format = GetAudio.sound_file_format.sf_mp3; var inPath = new StringBuilder(mp3File); var enc = new Enc(); gaud.init_infile(gfp, inPath.ToString(), enc); var skip_start = 0; var skip_end = 0; if (parse.silent < 10) { Console.Write( "\rinput: {0}{1}({2:g} kHz, {3:D} channel{4}, ", inPath, inPath.Length > 26 ? "\n\t" : " ", gfp.in_samplerate / 1000, gfp.num_channels, gfp.num_channels != 1 ? "s" : ""); } if (enc.enc_delay > -1 || enc.enc_padding > -1) { if (enc.enc_delay > -1) { skip_start = enc.enc_delay + 528 + 1; } if (enc.enc_padding > -1) { skip_end = enc.enc_padding - (528 + 1); } } else { skip_start = gfp.encoder_delay + 528 + 1; } Console.Write("MPEG-{0:D}{1} Layer {2}", 2 - gfp.version, gfp.out_samplerate < 16000 ? ".5" : "", "III"); Console.Write(")\noutput: (16 bit, Microsoft WAVE)\n"); if (skip_start > 0) { Console.Write("skipping initial {0:D} samples (encoder+decoder delay)\n", skip_start); } if (skip_end > 0) { Console.Write("skipping final {0:D} samples (encoder padding-decoder delay)\n", skip_end); } wavsize = -(skip_start + skip_end); parse.mp3input_data.totalframes = parse.mp3input_data.nsamp / parse.mp3input_data.framesize; Debug.Assert(gfp.num_channels >= 1 && gfp.num_channels <= 2); }
public Mp3Decoder(Stream mp3Stream) { // encoder modules lame = new Lame(); gaud = new GetAudio(); ga = new GainAnalysis(); bs = new BitStream(); p = new Presets(); qupvt = new QuantizePVT(); qu = new Quantize(); vbr = new VBRTag(); ver = new Mp3Version(); id3 = new ID3Tag(); rv = new Reservoir(); tak = new Takehiro(); parse = new Parse(); mpg = new MPGLib(); intf = new Interface(); common = new Mpg.Common(); lame.setModules(ga, bs, p, qupvt, qu, vbr, ver, id3, mpg); bs.setModules(ga, mpg, ver, vbr); id3.setModules(bs, ver); p.Modules = lame; qu.setModules(bs, rv, qupvt, tak); qupvt.setModules(tak, rv, lame.enc.psy); rv.Modules = bs; tak.Modules = qupvt; vbr.setModules(lame, bs, ver); gaud.setModules(parse, mpg); parse.setModules(ver, id3, p); // decoder modules mpg.setModules(intf, common); intf.setModules(vbr, common); gfp = lame.lame_init(); /* * turn off automatic writing of ID3 tag data into mp3 stream we have to * call it before 'lame_init_params', because that function would spit * out ID3v2 tag data. */ gfp.write_id3tag_automatic = false; /* * Now that all the options are set, lame needs to analyze them and set * some more internal options and check for problems */ lame.lame_init_params(gfp); parse.input_format = GetAudio.sound_file_format.sf_mp3; var enc = new Enc(); gaud.init_infile(gfp, mp3Stream, enc); SkipStart = 0; SkipEnd = 0; if (enc.enc_delay > -1 || enc.enc_padding > -1) { if (enc.enc_delay > -1) { SkipStart = enc.enc_delay + 528 + 1; } if (enc.enc_padding > -1) { SkipEnd = enc.enc_padding - (528 + 1); } } else { SkipStart = gfp.encoder_delay + 528 + 1; } WavSize = -(SkipStart + SkipEnd); parse.mp3input_data.totalframes = parse.mp3input_data.nsamp / parse.mp3input_data.framesize; Framesize = parse.mp3input_data.framesize; SampleRate = parse.mp3input_data.samplerate; Length = parse.mp3input_data.nsamp; Channels = gfp.num_channels; Debug.Assert(gfp.num_channels >= 1 && gfp.num_channels <= 2); }