Force alignment for tts audio (#418)

* add originalText as param

* save original text when added from tts speech

* fix player in conversation sheet

* minor fix
This commit is contained in:
an-lee
2024-03-18 12:55:28 +08:00
committed by GitHub
parent 94dfabfec8
commit de89ae73bf
10 changed files with 123 additions and 61 deletions

View File

@@ -117,7 +117,7 @@ export const MediaPlayerProvider = ({
const initializeWavesurfer = async () => {
if (!media) return;
if (!mediaProvider) return;
if (!ref.current) return;
if (!ref?.current) return;
const ws = WaveSurfer.create({
container: ref.current,
@@ -299,22 +299,6 @@ export const MediaPlayerProvider = ({
);
};
useEffect(() => {
if (!media) return;
EnjoyApp.waveforms.find(media.md5).then((waveform) => {
setWaveForm(waveform);
});
}, [media]);
/*
* Initialize wavesurfer when container ref is available
* and mediaProvider is available
*/
useEffect(() => {
initializeWavesurfer();
}, [media, ref, mediaProvider]);
/*
* When wavesurfer is decoded,
* set up event listeners for wavesurfer
@@ -353,6 +337,7 @@ export const MediaPlayerProvider = ({
return () => {
subscriptions.forEach((unsub) => unsub());
wavesurfer?.destroy();
};
}, [wavesurfer]);
@@ -372,6 +357,10 @@ export const MediaPlayerProvider = ({
} else if (activeRegion.id.startsWith("word-region")) {
setFitZoomRatio(containerWidth / 3 / duration / minPxPerSec);
}
return () => {
setFitZoomRatio(1.0);
}
}, [ref, wavesurfer, activeRegion]);
/*
@@ -395,7 +384,7 @@ export const MediaPlayerProvider = ({
if (!activeRegion) return;
renderPitchContour(activeRegion);
}, [activeRegion]);
}, [wavesurfer, activeRegion]);
/*
* Update player styles
@@ -408,6 +397,22 @@ export const MediaPlayerProvider = ({
scrollContainer.style.scrollbarWidth = "thin";
}, [decoded, wavesurfer]);
useEffect(() => {
if (!media) return;
EnjoyApp.waveforms.find(media.md5).then((waveform) => {
setWaveForm(waveform);
});
}, [media]);
/*
* Initialize wavesurfer when container ref is available
* and mediaProvider is available
*/
useEffect(() => {
initializeWavesurfer();
}, [media, ref, mediaProvider]);
return (
<MediaPlayerProviderContext.Provider
value={{