У меня есть небольшой звуковой файл wav, в котором я хочу получить его текст, поэтому я использовал Azure речь в текстовый API для его проверки.
Первым делом я конвертирую аудиофайл, как они рекомендовали в своей документации, в PCM - частота дискретизации Mono -16K.
и я использую этот код в c # в примере документации здесь , чтобы загрузить файл и получить результат.
HttpWebRequest request = null;
request = (HttpWebRequest)HttpWebRequest.Create("https://speech.platform.bing.com/speech/recognition/interactive/cognitiveservices/v1?language=en-US&format=detailed");
request.SendChunked = true;
request.Accept = @"application/json;text/xml";
request.Method = "POST";
request.ProtocolVersion = HttpVersion.Version11;
request.ContentType = @"audio/wav; codec=audio/pcm; samplerate=16000";
request.Headers["Ocp-Apim-Subscription-Key"] = "my key";
// Send an audio file by 1024 byte chunks
using (FileStream fs = new FileStream("D:/b.wav", FileMode.Open, FileAccess.Read))
{
/*
* Open a request stream and write 1024 byte chunks in the stream one at a time.
*/
byte[] buffer = null;
int bytesRead = 0;
using (Stream requestStream = request.GetRequestStream())
{
/*
* Read 1024 raw bytes from the input audio file.
*/
buffer = new Byte[checked((uint)Math.Min(1024, (int)fs.Length))];
while ((bytesRead = fs.Read(buffer, 0, buffer.Length)) != 0)
{
requestStream.Write(buffer, 0, bytesRead);
}
// Flush
requestStream.Flush();
}
}
string responseString;
Console.WriteLine("Response:");
using (WebResponse response = request.GetResponse())
{
Console.WriteLine(((HttpWebResponse)response).StatusCode);
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{
responseString = sr.ReadToEnd();
}
Console.WriteLine(responseString);
Console.ReadLine();
}
Также я попытался использовать инструмент cUrl, а также написать его в Java, так как мне показалось, что, возможно, это проблема с языком программирования, который я использую, что я не загружаю файл правильно.
это ссылка на звуковой файл, который я хочу преобразовать в текст здесь .
Так что теперь мне нужно помочь разобраться, если проблема связана с форматом звукового файла? или из кода, который я не могу загрузить его правильно? или это из API я имею ввиду быть недостаточно точным?
Я попробовал IBM речи в текст, и он получил весь текст без проблем.
Сейчас я использую бесплатную пробную версию Azure для преобразования речи в текст, и я хочу выяснить, в чем заключается проблема, если у кого-то есть опыт, чтобы узнать, буду ли я работать с этим API или нет.
Обновление
Я хочу пояснить, что я не получил никакой ошибки, я только что получил неполный результат для моего звукового файла, который я загружаю, например, звуковой файл, который я загружаю, он сказал в конце звука "What is up with that"
, результат, который я получил от Azure, это просто только в первом предложении "I say that like it's a bad thing."
, также я загружаю другой звуковой файл, который содержит "What is up with that"
, отметьте только здесь , и он просто дает мне пустой результат, подобный этому.
{"RecognitionStatus":"NoMatch","Offset":17300000,"Duration":0}
так что все, что я хочу знать, нормально ли это из API речи для текста или проблемы с моим кодом или из звукового файла? вот что я хочу получить с ним ответ.
когда я тестировал другой API на этих файлах, он работал как IBM, например.
Заранее спасибо.