如何在Java中转录带宽呼叫记录

时间:2019-07-01 05:48:33

标签: java bandwidth transcription call-recording

我的应用程序使用https://app.bandwidth.com/接听来电。我有一个api来处理传入的呼叫,该呼叫会在未接听电话时记录呼叫(此记录被视为语音邮件)。

if (eventType.equalsIgnoreCase(EventType.ANSWER.toString())) {
   Timestamp callStartTime = new Timestamp(TimeUtil.now().getTime());
   incomingCall.setCallTime(callStartTime);
   callStatus = transferCall(callId, incomingCall.getVoiceForwardNumber(), 1);
}
else if (eventType.equalsIgnoreCase(EventType.TIMEOUT.toString())) {
   voiceMailIntro(callId);
}
else if (eventType.equalsIgnoreCase(EventType.SPEAK.toString()) && PLAYBACK_STOP.equalsIgnoreCase(callState)) {
    recordVoiceMail(callId);
}
else if (eventType.equalsIgnoreCase(EventType.RECORDING.toString()) && 
  state.equalsIgnoreCase(BandwidthCallStatus.COMPLETE.toString())) {
    createTranscription(recordingId);
}
else if (eventType.equalsIgnoreCase(EventType.TRANSCRIPTION.toString()) && status.equalsIgnoreCase(BandwidthCallStatus.COMPLETED.toString())) {
    incomingCall.setVoiceMail(text);
}

这是录制通话的代码

private void recordVoiceMail(String callId) {
   BandwidthClient client = BandwidthClient.getInstance();
   client.setCredentials(bandwidthUserId, bandwidthApiToken, bandwidthApiSecret);
   try {
      Call call = Call.get(client, callId);
       call.recordingOn();
   } catch (Exception e) {
     log.error("An exception occurred while recording voice mail : " + 
     e.getMessage(), e);
   }
}

现在,我需要抄录这些有声邮件。 从文档中,我得到了python,js,c#,ruby等中的方法,可以使用录音转录录音。 例如在js中,

client.Recording.createTranscription(recordingId, function(err, transcription){});

我搜索了所有地方,但是在Java中找不到任何方法。 如果您知道,谁能帮助我?

1 个答案:

答案 0 :(得分:0)

无论如何,正如我所看到的,您需要Java文档的link

然后here可以跟随Github上的java sdk。

此外,您还可以找到所需的有关转录API here的更多信息。

首先,您为什么需要它?也许,您不需要。

我发现,您无法使用POJO进行转录,但是您可以执行类似的操作。

如果要这样做,可以使用

public void transcribeOn() throws Exception {
    final List<Recording> list = Recording.list(0, 5);

    if (!list.isEmpty()) {
        final Recording recording = Recording.get(list.get(0).getId());
        System.out.println("\nRecording by Id");
        System.out.println(recording);

        final String recordingUri = mockClient.getUserResourceUri(BandwidthConstants.RECORDINGS_URI_PATH);
        client.post(recordingUri + "/" + list.get(0).getId() + "/transcriptions", null);
        final JSONObject jsonObject = call.toJSONObject(client.get(recordingUri, null));
        call.updateProperties(jsonObject);
    }
}

我不确定它是否可以正常工作,但我希望它能以正确的方式帮助您