Я работаю над приложением Android, которое записывает речь, используя mi c устройства android, после чего я кодирую записанную речь в формат base64. чтобы преобразовать речь в текст, я использую API Google Speech Cloud и android Volley для отправки запроса в Google API. проблема в том, что когда я вызываю метод для запроса, я получаю эту ошибку ==>
E / Volley: [5921] BasicNetwork.performRequest: непредвиденный код ответа 400 для https://speech.googleapis.com/v1/speech: распознавать ? key = {mykey}
Вот мой код:
public class SpeechService {
private String Url ="https://speech.googleapis.com/v1/speech:recognize?key=${mykey}";
private RequestQueue requestQueue ;
private AppCompatActivity app ;
String savedata ;
public SpeechService(AppCompatActivity app){
this.app = app ;
requestQueue = Volley.newRequestQueue(app.getApplicationContext());
}
public void getTextFromGSpeech1(String EncodedSpeech){
JSONObject jsonObject = new JSONObject();
JSONObject config = new JSONObject() ;
JSONObject audio = new JSONObject() ;
try {
config.put("encoding", MediaRecorder.OutputFormat.AMR_WB);
config.put("SampleRateHertz","rba9 rba9");
config.put("languageCode","fr-FR");
audio.put("content",EncodedSpeech);
jsonObject.put("audio", audio );
jsonObject.put("config", config);
} catch (JSONException e) {
e.printStackTrace();
}
JsonObjectRequest JObjectREQUEST = new JsonObjectRequest(Request.Method.POST , Url , jsonObject ,new Response.Listener<JSONObject>(){
@Override
public void onResponse(JSONObject response) {
System.out.println("JSON response is ============> ");
System.out.println(response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.out.println("failed ...............;");
}
}){
@Override
public String getBodyContentType() {
return "application/json; charset=utf-8";
}
};
requestQueue.add(JObjectREQUEST);
}
}
и формат объекта Json должен быть таким
{ "audio": {
"content": ""
}
,
"config": {
"encoding": "ENCODING_UNSPECIFIED",
"languageCode": "fr-FR",
"sampleRateHertz": 1600
}
}