Microsoft речи API плохой запрос - PullRequest
0 голосов
/ 22 февраля 2019

Кто-нибудь может проверить, есть ли ошибки / s в моем коде: это передать байт для Microsoft речь API, однако я получил 400 ошибок неверного запроса.Формат файла WAV является правильным, так как я использовал образец от Microsoft.любая помощь будет оценена!

public void speechToText(){
    String Key = "mysubscriptionkey";
    try {
        File file = new File("filepath", "filename.wav");
        URL url = new URL("https://westus.stt.speech.microsoft.com/speech/recognition/interactive/cognitiveservices/v1?langauge=en-US&format=simple");

        HttpURLConnection con =(HttpURLConnection)url.openConnection();
        con.setDoOutput(true);
        con.setRequestMethod("POST");
        con.setRequestProperty("Accept", "application/json");
        con.addRequestProperty("Content-type", "audio/wav; codec=\"audio/pcm\"; samplerate=16000"); 
        con.addRequestProperty("Ocp-Apim-Subscription-Key", Key);

        byte[] bytes = ReadFully(file);
        DataOutputStream wr = new DataOutputStream(con.getOutputStream());
        wr.write(bytes);

        Scanner scanner = new Scanner(con.getInputStream()); 
        String responseBody = scanner.useDelimiter("\\A").next();
        System.out.println(responseBody);
    }
    catch (Exception e) 
            {
                e.printStackTrace();
            }

- эта для чтения аудио

public byte[] ReadFully(File file){
ByteArrayOutputStream out = new ByteArrayOutputStream();
try{
    BufferedInputStream in = new BufferedInputStream(new FileInputStream(file));
    byte[] buffer = new byte[1024];
        int bytesRead;
        OutputStream outputstream ;
        while ((bytesRead = in.read(buffer)) != -1){
        out.write(buffer, 0, bytesRead);
    }
    }
    catch (Exception e){
        e.printStackTrace();
    }
   return out.toByteArray();
}
...