Распознавание WAV в TXT

gluckbahr

Client
Регистрация
05.04.2014
Сообщения
84
Благодарностей
25
Баллы
18
Ребята помогите адаптировать готовое решение для Зенки.
И так задача дать в переменной файл.
Снипет переводит в нужный для распознования формат flac
Код:
/// <summary> Конвертирование wav-файла во flac </summary>       
        /// <returns>Частота дискретизации</returns>
        public static int Wav2Flac(String wavName, string flacName)
        {
            int sampleRate = 0;

            IAudioSource audioSource = new WAVReader(wavName, null);
            AudioBuffer buff = new AudioBuffer(audioSource, 0x10000);
           
            FlakeWriter flakewriter = new FlakeWriter(flacName, audioSource.PCM);
            sampleRate = audioSource.PCM.SampleRate;           

            FlakeWriter audioDest = flakewriter;
            while (audioSource.Read(buff, -1) != 0)
            {
                audioDest.Write(buff);               
            }
            audioDest.Close();

            audioDest.Close();

            return sampleRate;
        }
И тут же отправляет на распознавание

Код:
public static String GoogleSpeechRequest(String flacName, int sampleRate)
      {
      
        WebRequest request = WebRequest.Create("https://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=ru-RU");

        request.Method = "POST";
      
        byte[] byteArray = File.ReadAllBytes(flacName);

        // Set the ContentType property of the WebRequest.
        request.ContentType = "audio/x-flac; rate=" + sampleRate; //"16000";      
        request.ContentLength = byteArray.Length;

        // Get the request stream.
        Stream dataStream = request.GetRequestStream();
        // Write the data to the request stream.
        dataStream.Write(byteArray, 0, byteArray.Length);
      
        dataStream.Close();

        // Get the response.
        WebResponse response = request.GetResponse();

        dataStream = response.GetResponseStream();
        // Open the stream using a StreamReader for easy access.
        StreamReader reader = new StreamReader(dataStream);
        // Read the content.
        string responseFromServer = reader.ReadToEnd();

        // Clean up the streams.
        reader.Close();
        dataStream.Close();
        response.Close();

        return responseFromServer;
      }
Результатом необходимо получить
текст из wav файла впеременную.
По статье http://geektimes.ru/post/117234/
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 264
Баллы
113
А ничего что статья 2011 года))?
 

gluckbahr

Client
Регистрация
05.04.2014
Сообщения
84
Благодарностей
25
Баллы
18
Это все что удалось найти=( можете предложить решение свежее?
 

gluckbahr

Client
Регистрация
05.04.2014
Сообщения
84
Благодарностей
25
Баллы
18
Может тогда яндексом?
http://programmersforum.ru/showthread.php?t=266246

Код:
public static string PostMethod(byte[] bytes)
{
string postUrl = "https://asr.yandex.net/asr_xml?"+
"uuid=01ae13cb744628b58fb536d496daa 1e6&" +
"key=ключ&"+
"topic=queries";

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(p ostUrl);
request.Method = "POST";
request.Host = "asr.yandex.net";
request.SendChunked = true;
request.UserAgent = "Oleg";

request.ContentType = "audio/x-wav";
request.ContentLength = bytes.Length;

using (var newStream = request.GetRequestStream())
{
newStream.Write(bytes, 0, bytes.Length);
}

HttpWebResponse response = (HttpWebResponse)request.GetRespons e();
string responseToString="";
if (response != null)
{
var strreader = new StreamReader(response.GetResponseSt ream(), Encoding.UTF8);
responseToString = strreader.ReadToEnd();
}

int index = responseToString.IndexOf("<variant confidence=\"1\">");

responseToString = responseToString.Substring(index + 24, responseToString.Length - index - 24);

int index2 = responseToString.IndexOf("</variant>");

responseToString = responseToString.Substring(0, index2);

return responseToString;
}
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 264
Баллы
113
яндекс лучше не юзать. Очень слабое распознавание
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)