如何在 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);
}
}
我不确定它是否正常工作,但我希望它能让你走上正确的道路
我的应用程序使用 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);
}
}
我不确定它是否正常工作,但我希望它能让你走上正确的道路