Remove fade-in on sentence beginning
This commit is contained in:
@@ -555,11 +555,9 @@ class DuplexPipeline:
|
||||
})
|
||||
first_audio_sent = True
|
||||
|
||||
# Keep very short fade-in for non-first sentence to preserve consonant attack.
|
||||
fade_in_ms = 2 if spoken_sentence_count == 0 else 1
|
||||
await self._speak_sentence(
|
||||
sentence,
|
||||
fade_in_ms=fade_in_ms,
|
||||
fade_in_ms=0,
|
||||
fade_out_ms=8,
|
||||
)
|
||||
spoken_sentence_count += 1
|
||||
@@ -585,10 +583,9 @@ class DuplexPipeline:
|
||||
)
|
||||
})
|
||||
first_audio_sent = True
|
||||
fade_in_ms = 2 if spoken_sentence_count == 0 else 1
|
||||
await self._speak_sentence(
|
||||
remaining_text,
|
||||
fade_in_ms=fade_in_ms,
|
||||
fade_in_ms=0,
|
||||
fade_out_ms=8,
|
||||
)
|
||||
|
||||
@@ -683,7 +680,7 @@ class DuplexPipeline:
|
||||
|
||||
return False
|
||||
|
||||
async def _speak_sentence(self, text: str, fade_in_ms: int = 2, fade_out_ms: int = 8) -> None:
|
||||
async def _speak_sentence(self, text: str, fade_in_ms: int = 0, fade_out_ms: int = 8) -> None:
|
||||
"""
|
||||
Synthesize and send a single sentence.
|
||||
|
||||
@@ -744,7 +741,7 @@ class DuplexPipeline:
|
||||
sample_rate: int,
|
||||
fade_in: bool = False,
|
||||
fade_out: bool = False,
|
||||
fade_in_ms: int = 2,
|
||||
fade_in_ms: int = 0,
|
||||
fade_out_ms: int = 8,
|
||||
) -> bytes:
|
||||
"""Apply short edge fades to reduce click/pop at sentence boundaries."""
|
||||
@@ -756,7 +753,7 @@ class DuplexPipeline:
|
||||
if samples.size == 0:
|
||||
return pcm_bytes
|
||||
|
||||
if fade_in:
|
||||
if fade_in and fade_in_ms > 0:
|
||||
fade_in_samples = int(sample_rate * (fade_in_ms / 1000.0))
|
||||
fade_in_samples = max(1, min(fade_in_samples, samples.size))
|
||||
samples[:fade_in_samples] *= np.linspace(0.0, 1.0, fade_in_samples, endpoint=True)
|
||||
|
||||
Reference in New Issue
Block a user