mirror of
https://github.com/hcengineering/platform.git
synced 2025-05-18 21:47:27 +00:00
Fix transcript score (#8434)
Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
This commit is contained in:
parent
fd10ab5f7d
commit
55c9dccdd3
@ -26,6 +26,9 @@ interface Config {
|
|||||||
PlatformToken: string
|
PlatformToken: string
|
||||||
PlatformUrl: string
|
PlatformUrl: string
|
||||||
SttProvider: SttProvider
|
SttProvider: SttProvider
|
||||||
|
VadSilenceDurationMs: number
|
||||||
|
VadPrefixPaddingMs: number
|
||||||
|
VadThreshold: number
|
||||||
}
|
}
|
||||||
|
|
||||||
const config: Config = (() => {
|
const config: Config = (() => {
|
||||||
@ -39,7 +42,10 @@ const config: Config = (() => {
|
|||||||
OpenaiProvideLanguage: (process.env.OPENAI_PROVIDE_LANGUAGE ?? 'true') === 'true',
|
OpenaiProvideLanguage: (process.env.OPENAI_PROVIDE_LANGUAGE ?? 'true') === 'true',
|
||||||
PlatformToken: process.env.PLATFORM_TOKEN,
|
PlatformToken: process.env.PLATFORM_TOKEN,
|
||||||
PlatformUrl: process.env.PLATFORM_URL,
|
PlatformUrl: process.env.PLATFORM_URL,
|
||||||
SttProvider: (process.env.STT_PROVIDER as SttProvider) ?? 'deepgram'
|
SttProvider: (process.env.STT_PROVIDER as SttProvider) ?? 'deepgram',
|
||||||
|
VadSilenceDurationMs: parseInt(process.env.SILENCE_DURATION_MS ?? '1000'),
|
||||||
|
VadPrefixPaddingMs: parseInt(process.env.PREFIX_PADDING_MS ?? '1000'),
|
||||||
|
VadThreshold: parseFloat(process.env.VAD_THRESHOLD ?? '0.5')
|
||||||
}
|
}
|
||||||
|
|
||||||
const missingEnv = (Object.keys(params) as Array<keyof Config>).filter((key) => params[key] === undefined)
|
const missingEnv = (Object.keys(params) as Array<keyof Config>).filter((key) => params[key] === undefined)
|
||||||
|
@ -156,9 +156,9 @@ export class STT implements Stt {
|
|||||||
},
|
},
|
||||||
turn_detection: {
|
turn_detection: {
|
||||||
type: 'server_vad',
|
type: 'server_vad',
|
||||||
threshold: 0.7,
|
threshold: config.VadThreshold,
|
||||||
prefix_padding_ms: 1000,
|
prefix_padding_ms: config.VadPrefixPaddingMs,
|
||||||
silence_duration_ms: 2000
|
silence_duration_ms: config.VadSilenceDurationMs
|
||||||
},
|
},
|
||||||
include: ['item.input_audio_transcription.logprobs']
|
include: ['item.input_audio_transcription.logprobs']
|
||||||
}
|
}
|
||||||
@ -211,8 +211,12 @@ export class STT implements Stt {
|
|||||||
|
|
||||||
private onTranscriptCompleted (sid: string, data: any): void {
|
private onTranscriptCompleted (sid: string, data: any): void {
|
||||||
if (data.transcript == null || data.transcript.trim() === '') return
|
if (data.transcript == null || data.transcript.trim() === '') return
|
||||||
const score = data.logprobs != null && Array.isArray(data.logprobs) ? getTranscriptProbability(data.logprobs.map((lp: any) => lp.logprob)) : undefined
|
const logprobs: number[] =
|
||||||
const result = score !== undefined ? `${data.transcript} (${score.toFixed(2)})` : data.transcript
|
data.logprobs != null && Array.isArray(data.logprobs) ? data.logprobs.map((lp: any) => lp.logprob) : []
|
||||||
|
const probability = getAvgProbability(logprobs)
|
||||||
|
const perplexity = getPerplexity(logprobs)
|
||||||
|
|
||||||
|
const result = probability !== undefined ? `${data.transcript} (${probability}, ${perplexity})` : data.transcript
|
||||||
|
|
||||||
void this.sendToPlatform(result, sid)
|
void this.sendToPlatform(result, sid)
|
||||||
}
|
}
|
||||||
@ -282,7 +286,12 @@ export class STT implements Stt {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTranscriptProbability (logprobs: number[]): number {
|
function getAvgProbability (logprobs: number[]): string {
|
||||||
const sum = logprobs.reduce((acc, lp) => acc + lp, 0)
|
const avgLogProb = logprobs.reduce((acc, lp) => acc + lp, 0) / logprobs.length
|
||||||
return Math.exp(sum)
|
return Math.exp(avgLogProb).toFixed(2)
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPerplexity (logprobs: number[]): string {
|
||||||
|
const avgLogProb = logprobs.reduce((acc, lp) => acc + lp, 0) / logprobs.length
|
||||||
|
return Math.exp(-avgLogProb).toFixed(2)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user