closed captioning with premiere after effect and speech

Post Reply
darknkreepy3#
Site Admin
Posts: 247
Joined: Tue Oct 27, 2009 9:33 pm

closed captioning with premiere after effect and speech

Post by darknkreepy3# »

Adobe's run down on speech recognition in files adding and manipulating metadata here
http://help.adobe.com/en_US/premierepro ... 7d0fa.html

The speech diction packs for CS5 5.5 and 6 (the older the suite, the further down the page)
http://www.adobe.com/products/premiere/ ... yTab3.html

I downloaded the 600mb file for american english diction and cs5, and had to make a custom expand folder c:\dt_pm as the user folder etc was too long to expand to.

I used a Canon 60D in a room with a noisy air conditioner. That did not work out well with voice recognition and Premiere CS5 at all. Then I used Izotope's RX2 to remove the noise and hum and saved again as a WAV file. It worked a bit better. Then I dictated the audio I heard on the video capture MOV file and saved it as a text file and used it to help Premiere Pro identify my speech. That worked amazingly 95~98% correct. I did some manual repairs, and then loaded it into After Effects.

Every time you use metadata you have to readd the audio onto the timeline of your composition and delete the old one, something is buggy with refreshing the metadata when loading or asking it to. So, I just made a new layer and killed the old one. Voila, new text speech positions. I found a script online to get 5 words per grouping and lowered it to 4 for the longer words I used. I then modified the script to allow for the spoken word to be bracketed.

It is still a lot of work, better than manually doing it but no by much and certainly not worth $200 for 30M0sec of work.

Code: Select all

s="";
max=4;
L=thisComp.layer("MVI_1660.wav");
//s+="{"+L.marker.numKeys+"}";
n=0;
//
if(L.marker.numKeys>0)
	{
	n=L.marker.nearestKey(time).index;
	t=""+L.marker.key(n).time;
	s=t.substring(0,5)+"\r";
	//s=L.marker.key(n).time+"\r"+L.marker.key(n).comment;
	}

base=Math.floor((n-1)/max)*max+1;
//
for(i=base;i<base+max;i++)
	{
	//
	if(i<=L.marker.numKeys)
		{
		//
		if(i==n)
			{
			s+="["+L.marker.key(i).comment+"]"+" ";			
			}
		else
			{		
			s+=L.marker.key(i).comment+" ";
			}
		}
	}


text.sourceText=s;
Post Reply