From 022f2b7ebc603a02a1bba75a64a5cf25d4dab420 Mon Sep 17 00:00:00 2001
From: Jean-Marc Valin <jmvalin@amazon.com>
Date: Fri, 4 Aug 2023 14:34:09 -0400
Subject: [PATCH] int version for convenience

---
 dnn/fwgan.c | 8 ++++++++
 dnn/fwgan.h | 1 +
 2 files changed, 9 insertions(+)

diff --git a/dnn/fwgan.c b/dnn/fwgan.c
index cd64d8217..b349fe208 100644
--- a/dnn/fwgan.c
+++ b/dnn/fwgan.c
@@ -301,3 +301,11 @@ void fwgan_synthesize(FWGANState *st, float *pcm, const float *features)
   OPUS_COPY(&pcm[FWGAN_FRAME_SIZE-SUBFRAME_SIZE], new_pcm, SUBFRAME_SIZE);
   OPUS_COPY(st->pcm_buf, &new_pcm[SUBFRAME_SIZE], FWGAN_FRAME_SIZE-SUBFRAME_SIZE);
 }
+
+void fwgan_synthesize_int(FWGANState *st, opus_int16 *pcm, const float *features)
+{
+  int i;
+  float fpcm[FWGAN_FRAME_SIZE];
+  fwgan_synthesize(st, fpcm, features);
+  for (i=0;i<LPCNET_FRAME_SIZE;i++) pcm[i] = (int)floor(.5 + MIN32(32767, MAX32(-32767, 32768.f*fpcm[i])));
+}
diff --git a/dnn/fwgan.h b/dnn/fwgan.h
index 4f33ddbe5..b7fe28c0d 100644
--- a/dnn/fwgan.h
+++ b/dnn/fwgan.h
@@ -76,6 +76,7 @@ void fwgan_init(FWGANState *st);
 void fwgan_cont(FWGANState *st, const float *pcm0, const float *features0);
 
 void fwgan_synthesize(FWGANState *st, float *pcm, const float *features);
+void fwgan_synthesize_int(FWGANState *st, opus_int16 *pcm, const float *features);
 
 
 #endif /* FWGAN_H */
-- 
GitLab