in src/main/java/com/amazonaws/kvstranscribestreaming/TranscribedSegmentWriter.java [80:117]
private Item toDynamoDbItem(Result result) {
String contactId = this.getContactId();
Item ddbItem = null;
NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumFractionDigits(3);
nf.setMaximumFractionDigits(3);
if (result.alternatives().size() > 0) {
if (!result.alternatives().get(0).transcript().isEmpty()) {
Instant now = Instant.now();
ddbItem = new Item()
.withKeyComponent("ContactId", contactId)
.withKeyComponent("StartTime", result.startTime())
.withString("SegmentId", result.resultId())
.withDouble("EndTime", result.endTime())
.withString("Transcript", result.alternatives().get(0).transcript())
.withBoolean("IsPartial", result.isPartial())
// LoggedOn is an ISO-8601 string representation of when the entry was created
.withString("LoggedOn", now.toString())
// expire after a week by default
.withDouble("ExpiresAfter", now.plusSeconds(7 * 24 * 3600).toEpochMilli() / 1000);
if (consoleLogTranscriptFlag) {
logger.info(String.format("Thread %s %d: [%s, %s] - %s",
Thread.currentThread().getName(),
System.currentTimeMillis(),
nf.format(result.startTime()),
nf.format(result.endTime()),
result.alternatives().get(0).transcript()));
}
}
}
return ddbItem;
}