如何在 java 中转录带宽通话录音

How to transcribe bandwidth call recordings in java

我的应用程序使用 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 中找不到任何方法。 有知道的可以帮帮我吗?

无论如何,正如我所见,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);
    }
}

我不确定它是否正常工作,但我希望它能让你走上正确的道路