The MIT License (MIT)

Copyright (c) 2014 CNRS

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

AUTHORS
Hervé Bredin -- http://herve.niderb.fr
In [1]:
# setting up IPython Notebook
# for later pretty figures...
%pylab inline
pylab.rcParams['figure.figsize'] = (20.0, 5.0)
from pyannote.core import Annotation, Segment
from pyannote.core.notebook import set_notebook_crop
set_notebook_crop(Segment(0, 20))
Populating the interactive namespace from numpy and matplotlib

Fully- vs. Weakly-supervised Speech Activity Detection

In [2]:
from tvd import TheBigBangTheory
dataset = TheBigBangTheory('/Volumes/data/tvd/')
sixEpisodes = dataset.episodes[:6]
firstEpisode = dataset.episodes[0]

IN CASE YOU USE 'speaker' RESOURCES, PLEASE CONSIDER CITING:
@inproceedings{Tapaswi2012
    title = {{``Knock! Knock! Who is it?'' Probabilistic Person Identification in TV Series}},
    author = {Makarand Tapaswi and Martin B\"{a}uml and Rainer Stiefelhagen},
    booktitle = {IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
    year = {2012},
    month = {June},
}


IN CASE YOU USE 'outline' RESOURCES, PLEASE CONSIDER CITING:
@misc{the-big-bang-theory.com,
    title = {{The Big Bang Theory Wiki}},
    howpublished = \url{http://wiki.the-big-bang-theory.com/}
}


IN CASE YOU USE 'transcript' RESOURCES, PLEASE CONSIDER CITING:
@misc{bigbangtrans,
    title = {{big bang theory transcripts}},
    howpublished = \url{http://bigbangtrans.wordpress.com/}
}


IN CASE YOU USE 'transcript_www' RESOURCES, PLEASE CONSIDER CITING:
@misc{bigbangtrans,
    title = {{big bang theory transcripts}},
    howpublished = \url{http://bigbangtrans.wordpress.com/}
}


IN CASE YOU USE 'outline_www' RESOURCES, PLEASE CONSIDER CITING:
@misc{the-big-bang-theory.com,
    title = {{The Big Bang Theory Wiki}},
    howpublished = \url{http://wiki.the-big-bang-theory.com/}
}


Leave-one-out cross-validation

Experiments are done on the first six episodes of The Big Bang Theory using leave-one-out cross-validation.

In [3]:
def leaveOneOutCrossValidation():
    """(fiveEpisodes, oneEpisode) iterator"""
    for e, episode in enumerate(sixEpisodes):
        yield sixEpisodes[:e] + sixEpisodes[e+1:], episode
In [4]:
for train, test in leaveOneOutCrossValidation():
    print 'Train on episodes {', ' '.join([str(t.episode) for t in train]), '} / Test on episode', test.episode 
Train on episodes { 2 3 4 5 6 } / Test on episode 1
Train on episodes { 1 3 4 5 6 } / Test on episode 2
Train on episodes { 1 2 4 5 6 } / Test on episode 3
Train on episodes { 1 2 3 5 6 } / Test on episode 4
Train on episodes { 1 2 3 4 6 } / Test on episode 5
Train on episodes { 1 2 3 4 5 } / Test on episode 6

Full supervision (manual annotation)

Precise speech/non-speech reference are obtained from The Big Bang Theory TVD subset.

In [5]:
SPEECH, NON_SPEECH = 'speech', 'non_speech'
reference = {}
for episode in sixEpisodes:
    manual_annotation = dataset.get_resource('speaker', episode)
    translation = {label: SPEECH if label[:7] == 'speech_' else NON_SPEECH for label in manual_annotation.labels()}
    reference[episode] = manual_annotation.translate(translation).smooth()
In [6]:
reference[firstEpisode]
Out[6]:

Weak supervision (subtitles)

Subtitles timespans can be used as coarse annotation for training speech activity detection

In [7]:
from pyannote.parser.srt import SRTParser
parser = SRTParser(split=True,    # multi-speaker subtitles are split
                   duration=True) # their duration is interpolated based on their length (duration=True)
subtitles = {}
for episode in sixEpisodes:
    subtitles[episode] = parser.read(dataset.path_to_subtitles(episode))
In [8]:
subtitles[firstEpisode]
Out[8]:
%3 1100.75 1100.75 1102.52 1102.52 1100.75->1102.52 1104.715 1104.715 1102.52->1104.715 subtitle Tell him about our IO. 4.0 4.0 5.149 5.149 4.0->5.149 subtitle ...and either is observed... 5.32 5.32 5.149->5.32 108.237 108.237 108.76 108.76 108.237->108.76 111.593 111.593 108.76->111.593 subtitle There's some poor woman who... 1250.199 1250.199 1250.44205263 1250.44205263 1250.199->1250.44205263 subtitle -So? 1252.508 1252.508 1250.44205263->1252.508 subtitle They're both curry-based cu... 1021.678 1021.678 1023.479 1023.479 1021.678->1023.479 1025.62890698 1025.62890698 1023.479->1025.62890698 subtitle -We're here to pick up Penn... 758.072 758.072 758.24 758.24 758.072->758.24 760.231 760.231 758.24->760.231 subtitle I'm not gonna engage in hyp... 1034.198 1034.198 1034.36 1034.36 1034.198->1034.36 1038.069 1038.069 1034.36->1038.069 subtitle Excuse me. If I had given u... 400.833 400.833 401.799 401.799 400.833->401.799 402.993 402.993 401.799->402.993 subtitle This is really impressive. 243.032 243.032 243.2 243.2 243.032->243.2 246.112 246.112 243.2->246.112 subtitle No. We're gonna start seaso... 763.948 763.948 764.12 764.12 763.948->764.12 767.078 767.078 764.12->767.078 subtitle That's not to say that if a... 1222.48 1222.48 1223.1694 1223.1694 1222.48->1223.1694 subtitle -Really? Great. 1223.629 1223.629 1223.1694->1223.629 subtitle Thank you. 1273.595 1273.595 1281.919 1281.919 1273.595->1281.919 1284.149 1284.149 1281.919->1284.149 subtitle I don't know your odds in t... 372.574516129 372.574516129 374.71 374.71 372.574516129->374.71 subtitle You're very welcome. 375.56 375.56 374.71->375.56 997.24 997.24 999.549 999.549 997.24->999.549 subtitle I'm sorry. do you speak Eng... 999.72 999.72 999.549->999.72 674.829 674.829 675.0 675.0 674.829->675.0 677.833 677.833 675.0->677.833 subtitle ...and discovers that light... 783.748 783.748 783.919 783.919 783.748->783.919 786.194 786.194 783.919->786.194 subtitle Luke Skywa|ker's the condit... 614.08 614.08 615.433 615.433 614.08->615.433 subtitle It was. 615.599 615.599 615.433->615.599 226.599 226.599 226.96 226.96 226.599->226.96 228.393 228.393 226.96->228.393 subtitle Oh. welcome to the building. 889.355 889.355 889.519 889.519 889.355->889.519 892.414942857 892.414942857 889.519->892.414942857 subtitle -Um. can I ask you a favor? 551.879 551.879 552.04 552.04 551.879->552.04 554.6 554.6 552.04->554.6 subtitle Oh. yeah. a lot of people t... 70.679 70.679 71.279 71.279 70.679->71.279 73.395 73.395 71.279->73.395 subtitle Oh. wait. 824.68 824.68 825.993847458 825.993847458 824.68->825.993847458 subtitle -I'm not anticipating coitus. 827.353 827.353 825.993847458->827.353 subtitle So she's available for coitus? 901.48 901.48 905.359 905.359 901.48->905.359 subtitle It's just not the kind of t... 905.519 905.519 905.359->905.519 915.238 915.238 915.399 915.399 915.238->915.399 916.031117647 916.031117647 915.399->916.031117647 subtitle -Must we? 557.16 557.16 558.149 558.149 557.16->558.149 subtitle Oh. I'm a vegetarian. 558.319 558.319 558.149->558.319 424.639 424.639 424.799 424.799 424.639->424.799 426.607203704 426.607203704 424.799->426.607203704 subtitle -I didn't invent them. They... 695.19 695.19 695.36 695.36 695.19->695.36 695.978125 695.978125 695.36->695.978125 subtitle -Yes. 782.759 782.759 782.759->783.748 subtitle IKNOCKING ON DOOR] 474.519 474.519 475.952 475.952 474.519->475.952 subtitle Fine. 492.959 492.959 475.952->492.959 408.48 408.48 411.631 411.631 408.48->411.631 subtitle If by ?holy smokes." you me... 411.799 411.799 411.631->411.799 578.28 578.28 579.562897059 579.562897059 578.28->579.562897059 subtitle -You're lactose intolerant. 581.511 581.511 579.562897059->581.511 subtitle I don't eat it. I think it'... 1222.316 1222.316 1222.316->1222.48 300.915 300.915 301.08 301.08 300.915->301.08 302.559 302.559 301.08->302.559 subtitle AnywaY--- 11.109 11.109 11.279 11.279 11.109->11.279 13.4806 13.4806 11.279->13.4806 subtitle -...it will not've gone thr... 446.428 446.428 446.599 446.599 446.428->446.599 449.671 449.671 446.599->449.671 subtitle In winter. that seat is clo... 18.072 18.072 23.4 23.4 18.072->23.4 24.8554736842 24.8554736842 23.4->24.8554736842 subtitle -Excuse me. 1223.799 1223.799 1223.629->1223.799 1224.948 1224.948 1223.799->1224.948 subtitle OkaY- 670.269 670.269 670.44 670.44 670.269->670.44 672.431 672.431 670.44->672.431 subtitle ...as confirmed by the doub... 65.713 65.713 65.879 65.879 65.713->65.879 66.96575 66.96575 65.879->66.96575 subtitle -We'll be right back. 954.037 954.037 954.199 954.199 954.037->954.199 956.076 956.076 954.199->956.076 subtitle Come on. you know how it is... 979.828 979.828 980.0 980.0 979.828->980.0 982.389 982.389 980.0->982.389 subtitle No. Sheldon. there's not go... 427.438 427.438 426.607203704->427.438 subtitle In what universe? 427.6 427.6 427.438->427.6 966.674 966.674 969.199 969.199 966.674->969.199 971.633 971.633 969.199->971.633 subtitle This situation is much less... 433.792 433.792 433.959 433.959 433.792->433.959 435.995 435.995 433.959->435.995 subtitle That's where I sit. 940.199 940.199 940.954277778 940.954277778 940.199->940.954277778 subtitle -Which is? 942.918 942.918 940.954277778->942.918 subtitle You think with your penis. 389.36 389.36 390.873 390.873 389.36->390.873 subtitle That part's just a joke. 391.04 391.04 390.873->391.04 767.24 767.24 767.078->767.24 171.634 171.634 171.799 171.799 171.634->171.799 173.471 173.471 171.799->173.471 subtitle My father broke his clavicle. 125.0 125.0 126.784227273 126.784227273 125.0->126.784227273 subtitle -I want to leave. 127.309 127.309 126.784227273->127.309 subtitle Okay. 101.632 101.632 101.799 101.799 101.632->101.799 104.871 104.871 101.799->104.871 subtitle A little extra money to get... 1184.04 1184.04 1186.679 1186.679 1184.04->1186.679 subtitle Oh. I don't think I'll be a... 1188.559 1188.559 1186.679->1188.559 1121.032 1121.032 1121.639 1121.639 1121.032->1121.639 1123.63 1123.63 1121.639->1123.63 subtitle You're gonna have to call her. 217.995 217.995 218.159 218.159 217.995->218.159 218.752833333 218.752833333 218.159->218.752833333 subtitle -Penny. 618.955 618.955 615.599->618.955 subtitle Until I fell in love with a... 621.959 621.959 618.955->621.959 1248.119 1248.119 1250.03 1250.03 1248.119->1250.03 subtitle We can't have Thai. we had ... 1250.03->1250.199 289.477 289.477 289.639 289.639 289.477->289.639 293.109 293.109 289.639->293.109 subtitle ...and then you say somethi... 1170.029 1170.029 1170.199 1170.199 1170.029->1170.199 1172.997 1172.997 1170.199->1172.997 subtitle Yeah. I've had him since Le... 817.629 817.629 817.8 817.8 817.629->817.8 820.439 820.439 817.8->820.439 subtitle Hang on. there really is a ... 274.872 274.872 277.08 277.08 274.872->277.08 278.957 278.957 277.08->278.957 subtitle I'm gonna invite her over. 451.955 451.955 452.119 452.119 451.955->452.119 456.158 456.158 452.119->456.158 subtitle In summer. it's in a cross ... 572.993 572.993 573.16 573.16 572.993->573.16 574.149 574.149 573.16->574.149 subtitle PENNY: Oh. yeah. 462.92 462.92 466.833 466.833 462.92->466.833 subtitle I could go on. but I think ... 469.04 469.04 466.833->469.04 494.995 494.995 492.959->494.995 subtitle Sheldon. sit. 332.072 332.072 333.079 333.079 332.072->333.079 334.068 334.068 333.079->334.068 subtitle Yes. 631.039 631.039 633.428 633.428 631.039->633.428 subtitle It took you four years to g... 635.28 635.28 633.428->635.28 324.559 324.559 327.119 327.119 324.559->327.119 subtitle I'm no expert. but in the c... 327.279 327.279 327.119->327.279 722.55 722.55 722.719 722.719 722.55->722.719 725.631 725.631 722.719->725.631 subtitle ...my grandmother with Alzh... 308.51 308.51 308.679 308.679 308.51->308.679 310.795 310.795 308.679->310.795 subtitle ...and I find that when I'm... 146.719 146.719 147.099384615 147.099384615 146.719->147.099384615 subtitle -Bye. 147.708 147.708 147.099384615->147.708 subtitle Bye-bye. 318.908 318.908 319.08 319.08 318.908->319.08 323.278 323.278 319.08->323.278 subtitle ...a clean colon is just on... 838.117 838.117 838.279 838.279 838.117->838.279 839.553 839.553 838.279->839.553 subtitle Hello. 198.125142857 198.125142857 198.549 198.549 198.125142857->198.549 subtitle Hi. 198.719 198.719 198.549->198.719 982.559 982.559 982.389->982.559 984.151 984.151 982.559->984.151 subtitle There's two of us and one o... 1232.154 1232.154 1233.12 1233.12 1232.154->1233.12 1236.112 1236.112 1233.12->1236.112 subtitle Our babies will be smart an... 299.974285714 299.974285714 299.974285714->300.915 subtitle Hi. 1004.712 1004.712 1004.88 1004.88 1004.712->1004.88 1006.552 1006.552 1004.88->1006.552 subtitle He's kind of a nerd. 83.199 83.199 73.395->83.199 85.235 85.235 83.199->85.235 subtitle Leonard. I don't think I ca... 456.32 456.32 458.834 458.834 456.32->458.834 subtitle It faces the television at ... 459.0 459.0 458.834->459.0 956.24 956.24 958.435 958.435 956.24->958.435 subtitle No. I don't. and neither do... 958.599 958.599 958.435->958.599 263.554 263.554 263.72 263.72 263.554->263.72 266.632 266.632 263.72->266.632 subtitle I have a very wide circle. 844.639 844.639 847.597 847.597 844.639->847.597 subtitle Howard Wolowitz. Ca|Tech De... 847.759 847.759 847.597->847.759 536.949 536.949 537.12 537.12 536.949->537.12 540.032 540.032 537.12->540.032 subtitle ...that the sun's position ... 588.4 588.4 592.439 592.439 588.4->592.439 subtitle ...to be an actress and win... 593.0 593.0 592.439->593.0 389.188 389.188 389.188->389.36 1240.235 1240.235 1246.12 1246.12 1240.235->1246.12 1247.722125 1247.722125 1246.12->1247.722125 subtitle -Is Thai food okay with you... 415.6 415.6 416.051 416.051 415.6->416.051 subtitle -What? 416.953 416.953 416.051->416.953 subtitle Oh. come on. 394.112 394.112 394.999 394.999 394.112->394.999 398.355 398.355 394.999->398.355 subtitle So you're. like. one of tho... 571.48 571.48 571.48->572.993 subtitle So do you have some sort of... 540.199 540.199 540.032->540.199 543.35 543.35 540.199->543.35 subtitle ...at the time of your birt... 334.24 334.24 334.068->334.24 432.037 432.037 432.2 432.2 432.037->432.2 433.128666667 433.128666667 432.2->433.128666667 subtitle -Penny. 547.157 547.157 547.319 547.319 547.157->547.319 549.071 549.071 547.319->549.071 subtitle I think what She|don's tryi... 298.549 298.549 298.72 298.72 298.549->298.72 298.72->299.974285714 subtitle -Hi. 64.439 64.439 65.223 65.223 64.439->65.223 subtitle -Fill these out. 65.223->65.713 subtitle Thank you. 90.92 90.92 93.992 93.992 90.92->93.992 subtitle There's no guarantee our sp... 94.16 94.16 93.992->94.16 916.593 916.593 916.031117647->916.593 subtitle Event A: 916.759 916.759 916.593->916.759 158.92 158.92 160.239 160.239 158.92->160.239 subtitle Not really. 160.4 160.4 160.239->160.4 176.56 176.56 179.154 179.154 176.56->179.154 subtitle No. That was the result of ... 185.04 185.04 179.154->185.04 225.12 225.12 225.12->226.599 subtitle We||.... 971.8 971.8 974.36 974.36 971.8->974.36 subtitle There's some dispute betwee... 974.52 974.52 974.36->974.52 864.04 864.04 865.632 865.632 864.04->865.632 subtitle It's French for ?good shower.? 865.8 865.8 865.632->865.8 605.198 605.198 606.599 606.599 605.198->606.599 608.237 608.237 606.599->608.237 subtitle I guess that's about it. 627.839 627.839 630.876 630.876 627.839->630.876 subtitle Four years. That's like as ... 630.876->631.039 946.599 946.599 949.671 949.671 946.599->949.671 subtitle Oh. yes. I could have staye... 949.839 949.839 949.671->949.839 221.918 221.918 222.079 222.079 221.918->222.079 223.751 223.751 222.079->223.751 subtitle Hi. 377.437 377.437 375.56->377.437 subtitle [MOUTHS] You're very welcome. 377.919 377.919 377.437->377.919 420.59 420.59 420.76 420.76 420.59->420.76 420.76->424.639 subtitle I didn't have to invent 26 ... 250.517 250.517 252.52 252.52 250.517->252.52 254.158 254.158 252.52->254.158 subtitle I think we should be good n... 1002.678 1002.678 1003.359 1003.359 1002.678->1003.359 1003.359->1004.712 subtitle Really? Why? 95.149 95.149 94.16->95.149 subtitle Think about that. 95.32 95.32 95.149->95.32 1117.22242857 1117.22242857 1117.791 1117.791 1117.22242857->1117.791 subtitle What? 1117.96 1117.96 1117.791->1117.96 147.879 147.879 149.232 149.232 147.879->149.232 subtitle Nice meeting you. 151.68 151.68 149.232->151.68 594.799 594.799 596.71 596.71 594.799->596.71 subtitle No. I'm from Omaha. 600.16 600.16 596.71->600.16 399.4 399.4 399.4->400.833 subtitle Yeah. 991.792 991.792 991.792->997.24 1069.72 1069.72 1071.153 1071.153 1069.72->1071.153 subtitle [BUZZES] 1071.64 1071.64 1071.153->1071.64 248.959 248.959 248.959->250.517 subtitle Not with commentary. 294.0 294.0 295.479 295.479 294.0->295.479 subtitle To what end? 296.479 296.479 295.479->296.479 1140.877 1140.877 1141.439 1141.439 1140.877->1141.439 1143.828 1143.828 1141.439->1143.828 subtitle SHELDON: Well. you got me o... 256.68 256.68 259.752 259.752 256.68->259.752 subtitle We never invited Louie/Loui... 260.239 260.239 259.752->260.239 623.278 623.278 621.959->623.278 subtitle What is happening-7 623.44 623.44 623.278->623.44 935.68 935.68 938.035 938.035 935.68->938.035 subtitle ...but we both know it exis... 938.199 938.199 938.035->938.199 578.113 578.113 578.113->578.28 976.279 976.279 978.126424658 978.126424658 976.279->978.126424658 subtitle -She wanted to avoid a scen... 978.126424658->979.828 subtitle So we get to have a scene w... 462.754 462.754 462.754->462.92 888.073 888.073 888.24 888.24 888.073->888.24 888.24->889.355 subtitle PENNY: Okay. 627.669 627.669 627.669->627.839 41.999 41.999 45.833 45.833 41.999->45.833 subtitle See. Papa Doc's capital ide... 46.479 46.479 45.833->46.479 1192.079 1192.079 1192.94836842 1192.94836842 1192.079->1192.94836842 subtitle -We're home. 1194.832 1194.832 1192.94836842->1194.832 subtitle Oh. my God. What happened? 1255.273 1255.273 1255.439 1255.439 1255.273->1255.439 1258.715 1258.715 1255.439->1258.715 subtitle I can see we're going to ha... 583.039 583.039 581.511->583.039 496.16 496.16 497.479 497.479 496.16->497.479 subtitle Ah. 499.239 499.239 497.479->499.239 403.16 403.16 402.993->403.16 406.277 406.277 403.16->406.277 subtitle I have a board. if you like... 1126.04 1126.04 1128.793 1128.793 1126.04->1128.793 subtitle Sheldon. I am so sorry I dr... 1128.959 1128.959 1128.793->1128.959 1038.239 1038.239 1038.069->1038.239 460.228 460.228 460.399 460.399 460.228->460.399 460.399->462.754 subtitle ...nor so far wide as to cr... 293.109->294.0 398.355->399.4 881.848551724 881.848551724 882.672 882.672 881.848551724->882.672 subtitle You're welcome. 882.839 882.839 882.672->882.839 470.314 470.314 469.04->470.314 subtitle Do you want me to move? 470.479 470.479 470.314->470.479 286.639 286.639 287.754 287.754 286.639->287.754 subtitle Well. it's not difficult. 287.919 287.919 287.754->287.919 205.6 205.6 206.953 206.953 205.6->206.953 subtitle Oh. that's nice. 207.92 207.92 206.953->207.92 528.36 528.36 529.873 529.873 528.36->529.873 subtitle Me? OkaY- 530.04 530.04 529.873->530.04 688.394 688.394 688.56 688.56 688.394->688.56 690.232 690.232 688.56->690.232 subtitle ...and my stupid shower doe... 533.476 533.476 533.639 533.639 533.476->533.639 533.639->536.949 subtitle Yes. it tells us that you p... 272.993 272.993 273.359 273.359 272.993->273.359 273.359->274.872 subtitle That's the beauty of it. 840.839 840.839 839.553->840.839 1213.598 1213.598 1213.76 1213.76 1213.598->1213.76 1217.15 1217.15 1213.76->1217.15 subtitle You just-- You're so terrific. 1042.72 1042.72 1044.87 1044.87 1042.72->1044.87 subtitle My apologies. What's your p... 1058.36 1058.36 1044.87->1058.36 47.992 47.992 48.879 48.879 47.992->48.879 49.9342 49.9342 48.879->49.9342 subtitle -Can I help you? 832.554 832.554 833.319 833.319 832.554->833.319 836.231 836.231 833.319->836.231 subtitle Hey. is there a trick to ge... 565.152 565.152 565.319 565.319 565.152->565.319 566.832 566.832 565.319->566.832 subtitle Leonard can't process corn. 815.068 815.068 815.24 815.24 815.068->815.24 815.24->817.629 subtitle And she's not a lady. she's... 717.719 717.719 720.472 720.472 717.719->720.472 subtitle ...since we've had a woman ... 720.639 720.639 720.472->720.639 202.713 202.713 202.88 202.88 202.713->202.88 205.44 205.44 202.88->205.44 subtitle We don't mean to interrupt.... 114.8 114.8 118.156 118.156 114.8->118.156 subtitle ...a differential to solve ... 118.72 118.72 118.156->118.72 804.24 804.24 805.852692308 805.852692308 804.24->805.852692308 subtitle -That's great. you guys hav... 806.037 806.037 805.852692308->806.037 subtitle Why? 1042.027 1042.027 1038.239->1042.027 subtitle ...the fingerprints of stri... 594.638 594.638 593.0->594.638 subtitle So it's based on your life. 194.43 194.43 196.28 196.28 194.43->196.28 197.395 197.395 196.28->197.395 subtitle Oh. hi. 99.438 99.438 95.32->99.438 subtitle I have a sister with the sa... 608.8 608.8 610.916 610.916 608.8->610.916 subtitle That's the story of Penny. 611.479 611.479 610.916->611.479 655.235 655.235 655.399 655.399 655.235->655.399 656.388 656.388 655.399->656.388 subtitle Is that crazy? 1090.24062857 1090.24062857 1092.757 1092.757 1090.24062857->1092.757 subtitle I'm Leonard. this is Sheldon. 1092.919 1092.919 1092.757->1092.919 690.4 690.4 692.47 692.47 690.4->692.47 subtitle Our shower works. 693.04 693.04 692.47->693.04 922.077 922.077 922.24 922.24 922.077->922.24 924.356 924.356 922.24->924.356 subtitle ...from the aforementioned ... 85.4 85.4 87.914 87.914 85.4->87.914 subtitle What. are you kidding? You'... 88.559 88.559 87.914->88.559 574.319 574.319 574.149->574.319 576.23 576.23 574.319->576.23 subtitle I'm a waitress at The Chees... 1042.027->1042.72 907.077 907.077 905.519->907.077 subtitle Wow. 912.519 912.519 907.077->912.519 121.757 121.757 123.28 123.28 121.757->123.28 124.838 124.838 123.28->124.838 subtitle Well. what do you wanna do? 329.839 329.839 327.279->329.839 subtitle ...you might wanna skip the... 549.24 549.24 549.071->549.24 549.24->551.879 subtitle ...is that Sagittarius woul... 32.077 32.077 32.24 32.24 32.077->32.24 34.629 34.629 32.24->34.629 subtitle Twenty-six across is MCM. 1123.63->1126.04 13.999 13.999 15.068 15.068 13.999->15.068 subtitle What's your point? 15.239 15.239 15.068->15.239 960.759 960.759 964.069 964.069 960.759->964.069 subtitle You did not break up with J... 964.24 964.24 964.069->964.24 127.479 127.479 128.997 128.997 127.479->128.997 subtitle -What's the protocol for le... 129.595 129.595 128.997->129.595 subtitle I don't know. 1137.76 1137.76 1137.76->1140.877 subtitle ...that might have someday ... 220.195 220.195 220.36 220.36 220.195->220.36 221.250285714 221.250285714 220.36->221.250285714 subtitle -Hi. 1027.799 1027.799 1029.61305405 1029.61305405 1027.799->1029.61305405 subtitle -We're not gonna give up ju... 1031.155 1031.155 1029.61305405->1031.155 subtitle Leonard. the TV's in the bu... 262.116 262.116 260.239->262.116 subtitle Well. and that was wrong of... 262.28 262.28 262.116->262.28 852.074 852.074 852.24 852.24 852.074->852.24 854.959 854.959 852.24->854.959 subtitle ...taking high-resolution d... 509.877 509.877 510.04 510.04 509.877->510.04 511.1393125 511.1393125 510.04->511.1393125 subtitle -...we don't have company. 459.0->460.228 subtitle ...discouraging conversatio... 700.72 700.72 701.869 701.869 700.72->701.869 subtitle Okay. thanks. 702.04 702.04 701.869->702.04 46.479->47.992 subtitle Haiti. 862.48 862.48 863.879 863.879 862.48->863.879 subtitle ?N \ V; wk 863.879->864.04 1019.7368 1019.7368 1020.107 1020.107 1019.7368->1020.107 subtitle Hello. 1020.279 1020.279 1020.107->1020.279 930.076 930.076 930.759 930.759 930.076->930.759 932.989 932.989 930.759->932.989 subtitle She asked me to do her a fa... 602.071 602.071 600.16->602.071 subtitle If that was a movie. I woul... 34.8 34.8 34.629->34.8 35.789 35.789 34.8->35.789 subtitle Fourteen down is-- 726.799 726.799 727.788 727.788 726.799->727.788 subtitle Point taken. 727.96 727.96 727.788->727.96 337.388 337.388 337.56 337.56 337.388->337.56 339.755 339.755 337.56->339.755 subtitle So. what do you guys do for... 111.76 111.76 111.593->111.76 800.396 800.396 800.56 800.56 800.396->800.56 802.312 802.312 800.56->802.312 subtitle ...a creepy computer voice. 1267.833 1267.833 1268.0 1268.0 1267.833->1268.0 1269.911 1269.911 1268.0->1269.911 subtitle Oh. that sounds like fun. 57.8 57.8 60.598 60.598 57.8->60.598 subtitle If you have to ask. maybe y... 61.519 61.519 60.598->61.519 494.995->496.16 166.477 166.477 167.28 167.28 166.477->167.28 169.032 169.032 167.28->169.032 subtitle Two mi||ime--? That doesn't... 518.0 518.0 522.391 522.391 518.0->522.391 subtitle Yeah. It's like regular Bog... 524.759 524.759 522.391->524.759 1262.999 1262.999 1265.149 1265.149 1262.999->1265.149 subtitle Turn left on Lake Street an... 1265.319 1265.319 1265.149->1265.319 508.239 508.239 508.9761 508.9761 508.239->508.9761 subtitle -Yeah. I remember. 508.9761->509.877 subtitle I resent you saying... 1229.879 1229.879 1224.948->1229.879 1229.879->1232.154 subtitle You're not done with her. a... 238.836 238.836 241.36 241.36 238.836->241.36 241.36->243.032 subtitle Should we have invited her ... 67.949 67.949 68.119 68.119 67.949->68.119 68.119->70.679 subtitle I'll just finish my crosswo... 200.198 200.198 201.2 201.2 200.198->201.2 201.2->202.713 subtitle Hi? 433.128666667->433.792 subtitle Yeah? 176.395 176.395 176.395->176.56 1169.04 1169.04 1169.04->1170.029 subtitle PENNY: Wow. cool tiger. 862.313 862.313 862.313->862.48 625.519 625.519 625.519->627.669 subtitle Oh. God. you know. four yea... 231.598941176 231.598941176 231.948 231.948 231.598941176->231.948 subtitle Great. 232.12 232.12 231.948->232.12 429.318 429.318 430.399 430.399 429.318->430.399 430.399->432.037 subtitle Do you guys mind if I start? 305.678 305.678 306.519 306.519 305.678->306.519 306.519->308.51 subtitle ...and I know that moving c... 40.599 40.599 40.599->41.999 1163.32 1163.32 1166.995 1166.995 1163.32->1166.995 subtitle This is one of my favorite ... 1167.16 1167.16 1166.995->1167.16 664.477 664.477 664.639 664.639 664.477->664.639 667.711 667.711 664.639->667.711 subtitle Paradoxes are part of natur... 205.44->205.6 456.158->456.32 63.635 63.635 61.519->63.635 subtitle I think this is the place. 63.635->64.439 690.232->690.4 246.759 246.759 246.112->246.759 682.794 682.794 684.04 684.04 682.794->684.04 685.632 685.632 684.04->685.632 subtitle Oh. I'm so sorry I'm such a... 763.010528302 763.010528302 763.010528302->763.948 subtitle Oh. of course. 792.839 792.839 796.878 796.878 792.839->796.878 subtitle It's a Stephen Hawking lect... 797.04 797.04 796.878->797.04 66.96575->67.949 subtitle Oh. take your time. 114.638 114.638 111.76->114.638 subtitle What if she winds up with a... 114.638->114.8 594.638->594.799 37.712 37.712 37.88 37.88 37.712->37.88 37.88->40.599 subtitle --phylum. which makes 14 ac... 745.308 745.308 745.48 745.48 745.308->745.48 747.391 747.391 745.48->747.391 subtitle Well. I'm not trying to hav... 174.439 174.439 173.471->174.439 174.439->176.395 subtitle Is that why they sent you t... 1182.2955 1182.2955 1183.871 1183.871 1182.2955->1183.871 subtitle So you'll think about it? 1183.871->1184.04 798.36 798.36 798.36->800.396 subtitle IIMITATING COMPUTERIZED VOI... 127.309->127.479 516.519 516.519 517.838 517.838 516.519->517.838 subtitle ...K|ingon Boggle? 517.838->518.0 1315.88 1315.88 1317.871 1317.871 1315.88->1317.871 subtitle [ENGLISH SDH] 1218.76 1218.76 1217.15->1218.76 1220.193 1220.193 1218.76->1220.193 subtitle Why don't you put some clot... 820.6 820.6 820.973066667 820.973066667 820.6->820.973066667 subtitle -Uh-huh. 821.999 821.999 820.973066667->821.999 subtitle And you want us out... 315.199 315.199 315.199->318.908 subtitle Also. curry's a natural lax... 169.2 169.2 169.032->169.2 1078.317 1078.317 1079.0 1079.0 1078.317->1079.0 1080.115 1080.115 1079.0->1080.115 subtitle I'll do the talking. 791.669 791.669 791.669->792.839 147.708->147.879 612.992 612.992 612.992->614.08 940.03 940.03 938.199->940.03 subtitle ...to the higher-level dist... 820.439->820.6 35.96 35.96 35.789->35.96 35.96->37.712 subtitle Move your finger. 336.231 336.231 334.24->336.231 subtitle Oh. that's so nice. I'd lov... 336.399 336.399 336.231->336.399 511.393 511.393 511.1393125->511.393 subtitle Sorry. 511.559 511.559 511.393->511.559 952.069 952.069 949.839->952.069 subtitle ...in Russian. Arabic and F... 952.24 952.24 952.069->952.24 1027.633 1027.633 1027.633->1027.799 371.237 371.237 371.4 371.4 371.237->371.4 371.4->372.574516129 subtitle -Thank you. 330.32 330.32 330.32->332.072 subtitle Oh. you're inviting me over... 1284.319 1284.319 1288.392 1288.392 1284.319->1288.392 subtitle ...but as far as the popula... 1313.719 1313.719 1288.392->1313.719 502.39 502.39 502.559 502.559 502.39->502.559 504.993 504.993 502.559->504.993 subtitle That's not true. Koothrappa... 750.319 750.319 752.549 752.549 750.319->752.549 subtitle What makes you think she wo... 752.719 752.719 752.549->752.719 884.795 884.795 882.839->884.795 subtitle Oh. you're just gonna step ... 885.559 885.559 884.795->885.559 236.799 236.799 236.959 236.959 236.799->236.959 238.001777778 238.001777778 236.959->238.001777778 subtitle -Bye. 672.599 672.599 672.431->672.599 672.599->674.829 subtitle But then. along comes Alber... 1173.239 1173.239 1172.997->1173.239 266.799 266.799 269.757 269.757 266.799->269.757 subtitle I have 212 friends on MySpace. 270.559 270.559 269.757->270.559 680.36 680.36 677.833->680.36 500.364357143 500.364357143 499.239->500.364357143 subtitle -Well. this is nice. 500.364357143->502.39 subtitle We don't have a lot of comp... 603.389 603.389 603.56 603.56 603.389->603.56 603.56->605.198 subtitle Okay. let's see. what else? 697.68 697.68 698.829 698.829 697.68->698.829 subtitle No. 699.24 699.24 698.829->699.24 928.12 928.12 928.12->930.076 subtitle ...between these events? 199.564142857 199.564142857 198.719->199.564142857 subtitle -Hi. 716.109 716.109 716.28 716.28 716.109->716.28 717.554 717.554 716.28->717.554 subtitle SHELDON: It has been some t... 415.03 415.03 411.799->415.03 subtitle ...you can find scribbled o... 323.278->324.559 100.04 100.04 99.438->100.04 100.04->101.632 subtitle Sheldon. this was your idea. 971.633->971.8 7.55 7.55 7.719 7.719 7.55->7.719 7.719->11.109 subtitle If it's observed after it's... 29.119 29.119 29.119->32.077 subtitle One across is Aegean. eight... 386.799 386.799 386.799->389.188 subtitle ...with a little string the... 1133.032 1133.032 1128.959->1133.032 subtitle It's okay. It wasn't my fir... 218.752833333->220.195 subtitle Leonard. Sheldon. 302.72 302.72 302.72->305.678 subtitle ...we brought home Indian f... 584.791 584.791 583.039->584.791 subtitle Anyways. I'm also writing a... 279.119 279.119 278.957->279.119 190.96 190.96 190.96->194.43 subtitle Two-hundred pound transvest... 298.105428571 298.105428571 296.479->298.105428571 subtitle -Hi. Again. 298.105428571->298.549 subtitle Hi. 725.631->726.799 842.989 842.989 840.839->842.989 subtitle Enchante', mademoiselle. 737.8 737.8 741.429 741.429 737.8->741.429 subtitle So. what exactly are you tr... 741.599 741.599 741.429->741.599 656.56 656.56 656.388->656.56 658.152 658.152 656.56->658.152 subtitle Yes. 449.839 449.839 449.839->451.955 subtitle ...yet not so close as to c... 555.319 555.319 554.6->555.319 1067.438 1067.438 1067.438->1069.72 342.271 342.271 369.44 369.44 342.271->369.44 371.012375 371.012375 369.44->371.012375 subtitle -Okay. well. make yourself ... 124.838->125.0 285.111 285.111 285.111->286.639 1031.32 1031.32 1031.155->1031.32 667.88 667.88 667.711->667.88 667.88->670.269 subtitle If you look at Huygens. lig... 85.235->85.4 842.989->844.639 737.396 737.396 737.396->737.8 806.2 806.2 806.037->806.2 807.723647059 807.723647059 806.2->807.723647059 subtitle -It's just not a good time. 652.88 652.88 652.88->655.235 subtitle ...I still love him. 696.349 696.349 695.978125->696.349 subtitle No. 527.512 527.512 524.759->527.512 subtitle That's probably enough abou... 527.512->528.36 685.8 685.8 685.8->688.394 subtitle And on top of everything el... 415.03->415.6 899.198137255 899.198137255 901.193 901.193 899.198137255->901.193 subtitle Oh. I'll probably say yes. 901.193->901.48 814.079 814.079 814.079->815.068 subtitle No. 505.16 505.16 504.993->505.16 5.32->7.55 subtitle ...it will not go through b... 129.759 129.759 129.595->129.759 132.751 132.751 129.759->132.751 subtitle I've never reneged on a pro... 893.273 893.273 892.414942857->893.273 subtitle A favor? 893.44 893.44 893.273->893.44 545.599 545.599 545.599->547.157 subtitle Participate in the what? 1195.0 1195.0 1194.832->1195.0 1196.831 1196.831 1195.0->1196.831 subtitle Well. your ex?boyfriend sen... 13.839 13.839 13.4806->13.839 subtitle Agreed. 13.839->13.999 287.919->289.477 subtitle You just listen to what she... 1074.598 1074.598 1076.52 1076.52 1074.598->1076.52 1076.52->1078.317 subtitle LEONARD: This is it. 987.232 987.232 988.959 988.959 987.232->988.959 988.959->991.792 subtitle So you guys work with Leona... 1190.197 1190.197 1188.559->1190.197 subtitle Smooth. 935.514 935.514 935.514->935.68 25.914 25.914 24.8554736842->25.914 subtitle Hang on. 25.914->29.119 228.56 228.56 228.393->228.56 1148.556 1148.556 1148.719 1148.719 1148.556->1148.719 1149.868 1149.868 1148.719->1149.868 subtitle I've got my work. 210.309 210.309 207.92->210.309 subtitle No. We don't live together.... 210.48 210.48 210.309->210.48 1152.838 1152.838 1153.0 1153.0 1152.838->1153.0 1155.958 1155.958 1153.0->1155.958 subtitle Don't think like that. You'... 120.980093023 120.980093023 120.980093023->121.757 subtitle I wouldn't. 190.637 190.637 190.637->190.96 1009.24 1009.24 1010.673 1010.673 1009.24->1010.673 subtitle Juice box? 1015.16 1015.16 1010.673->1015.16 790.6 790.6 790.6->791.669 subtitle See what? 90.754 90.754 88.559->90.754 subtitle No. We are committing genet... 1259.479 1259.479 1258.715->1259.479 1261.435 1261.435 1259.479->1261.435 subtitle Any ideas. Raj? 912.519->915.238 subtitle I really think we should ex... 406.999 406.999 406.277->406.999 371.012375->371.237 subtitle Okay. 380.759 380.759 383.068 383.068 380.759->383.068 subtitle Actually. that's my work. 383.599 383.599 383.068->383.599 602.24 602.24 602.24->603.389 subtitle I know. right? 215.429 215.429 215.959 215.959 215.429->215.959 215.959->217.995 subtitle Okay. well. guess I'm your ... 408.318 408.318 406.999->408.318 subtitle Holy smokes. 1158.953 1158.953 1160.04 1160.04 1158.953->1160.04 1162.838 1162.838 1160.04->1162.838 subtitle SHELDON: And you're certain... 1200.599 1200.599 1201.668 1201.668 1200.599->1201.668 subtitle I'm so sorry. 1201.84 1201.84 1201.668->1201.84 1150.04 1150.04 1149.868->1150.04 118.72->120.980093023 subtitle -I'm sure she'll still love... 649.319 649.319 652.709 652.709 649.319->652.709 subtitle Even though I hate his lyin... 652.709->652.88 408.318->408.48 210.48->215.429 subtitle ...we live together. but in... 508.071 508.071 508.071->508.239 223.751->225.12 235.48 235.48 235.48->236.799 subtitle Well. bye. 779.509 779.509 780.199 780.199 779.509->780.199 782.588 782.588 780.199->782.588 subtitle It's Darth Vader shampoo. 543.35->545.599 730.52 730.52 727.96->730.52 subtitle It has been some time since... 730.68 730.68 730.52->730.68 1162.838->1163.32 1073.64542373 1073.64542373 1073.64542373->1074.598 subtitle Just grab the door. 960.59 960.59 960.59->960.759 470.956818182 470.956818182 470.479->470.956818182 subtitle -well.... 197.56 197.56 197.56->198.125142857 subtitle -Hi. 262.28->263.554 subtitle We need to widen our circle. 608.237->608.8 186.24 186.24 187.434 187.434 186.24->187.434 subtitle SHELDON: Evidently. 187.6 187.6 187.434->187.6 384.588 384.588 384.76 384.76 384.588->384.76 386.637 386.637 384.76->386.637 subtitle Yeah. well. it's just some ... 380.592 380.592 377.919->380.592 subtitle This looks like some seriou... 1247.951 1247.951 1247.722125->1247.951 subtitle Sure. 1247.951->1248.119 199.564142857->200.198 subtitle Hi. 513.267070175 513.267070175 513.993 513.993 513.267070175->513.993 subtitle I said I'm sorry. 515.24 515.24 513.993->515.24 386.637->386.799 105.04 105.04 104.871->105.04 105.04->108.237 subtitle I know. And I do yearn for ... 685.632->685.8 441.610846154 441.610846154 443.799 443.799 441.610846154->443.799 subtitle What's the difference? 443.96 443.96 443.799->443.96 516.355 516.355 515.24->516.355 subtitle So... 254.32 254.32 254.158->254.32 1082.84 1082.84 1089.72 1089.72 1082.84->1089.72 1089.72->1090.24062857 subtitle -Yeah? 3.833 3.833 3.833->4.0 436.839 436.839 438.557 438.557 436.839->438.557 subtitle So sit next to me. 439.92 439.92 438.557->439.92 1200.435 1200.435 1200.435->1200.599 1133.2 1133.2 1133.032->1133.2 956.076->956.24 248.795 248.795 246.759->248.795 subtitle We already watched the seas... 896.512 896.512 893.44->896.512 subtitle Sure. you could ask me a fa... 897.28 897.28 896.512->897.28 946.431 946.431 946.431->946.599 1120.264 1120.264 1120.264->1121.032 subtitle I'm sorry. 576.919 576.919 576.23->576.919 584.96 584.96 584.791->584.96 588.236 588.236 584.96->588.236 subtitle It's about this sensitive g... 566.832->571.48 717.554->717.719 1177.595 1177.595 1177.76 1177.76 1177.595->1177.76 1180.558 1180.558 1177.76->1180.558 subtitle ...we could hang out. maybe... 449.671->449.839 720.639->722.55 subtitle That's not true. Remember a... 233.758 233.758 233.758->235.48 135.879 135.879 137.028 137.028 135.879->137.028 subtitle OkaY- 137.028->146.719 830.04 830.04 830.04->832.554 subtitle Technically. that would be ... 233.002 233.002 232.12->233.002 subtitle -Great. 233.002->233.758 subtitle Great. 281.713 281.713 279.119->281.713 subtitle We'll have a nice meal and ... 638.909 638.909 635.28->638.909 subtitle I just-- I can't believe I ... 659.519 659.519 662.67 662.67 659.519->662.67 subtitle No. it's not crazy. It's a-- 662.839 662.839 662.67->662.839 50.198 50.198 52.44 52.44 50.198->52.44 56.911 56.911 52.44->56.911 subtitle Um. is this the high?|O spe... 165.464666667 165.464666667 165.464666667->166.477 subtitle I don't care. 782.588->782.759 1080.28 1080.28 1080.115->1080.28 472.231 472.231 472.231->474.519 238.001777778->238.836 subtitle Bye. 1150.04->1152.838 subtitle One day I'll win the Nobel ... 999.72->1002.678 subtitle Oh. he speaks English. He j... 822.16 822.16 824.116 824.116 822.16->824.116 subtitle ...because you're anticipat... 824.116->824.68 836.399 836.399 836.399->838.117 subtitle Oh. hi. sorry. 881.08 881.08 881.08->881.848551724 subtitle -Okay. thanks. 1134.959 1134.959 1137.598 1137.598 1134.959->1137.598 subtitle I was hoping to establish a... 1137.598->1137.76 760.399 760.399 760.231->760.399 310.959 310.959 310.795->310.959 1116.199 1116.199 1116.199->1117.22242857 subtitle -Leonard. 588.236->588.4 1017.469 1017.469 1017.639 1017.639 1017.469->1017.639 1017.639->1019.7368 subtitle -Hi. I'm Leonard. this is S... 880.909 880.909 880.909->881.08 1064.48 1064.48 1064.48->1067.438 subtitle We should be able to figure... 1237.88 1237.88 1237.88->1240.235 subtitle Not to mention imaginary. 511.559->513.267070175 subtitle -That has a negative social... 680.36->682.794 subtitle Well. I didn't make it worse. 1156.12 1156.12 1155.958->1156.12 849.719 849.719 849.719->852.074 subtitle It's currently orbiting Jup... 230.959 230.959 230.959->231.598941176 subtitle -Oh. great. 642.759 642.759 638.909->642.759 645.148 645.148 642.759->645.148 subtitle Should I say something? I f... 562.232 562.232 563.719 563.719 562.232->563.719 563.719->565.152 subtitle Well. that's interesting. 733.148 733.148 730.68->733.148 subtitle ...after which we didn't wa... 734.04 734.04 733.148->734.04 1060.92 1060.92 1061.959 1061.959 1060.92->1061.959 1064.314 1064.314 1061.959->1064.314 subtitle Come on. we have a combined... 602.071->602.24 270.559->272.993 subtitle Yes. and you've never met o... 1071.64->1073.64542373 subtitle -What do you think their co... 154.72744186 154.72744186 151.68->154.72744186 subtitle -Are you still mad about th... 769.629 769.629 770.88 770.88 769.629->770.88 772.279 772.279 770.88->772.279 subtitle However briefly. 943.439 943.439 942.918->943.439 1196.999 1196.999 1196.831->1196.999 1207.0 1207.0 1210.117 1210.117 1207.0->1210.117 subtitle That was a valid hypo--? Wh... 1210.64 1210.64 1210.117->1210.64 1270.319 1270.319 1269.911->1270.319 1270.319->1273.595 subtitle [SINGING "BABY DON'T GET HO... 186.075 186.075 185.04->186.075 subtitle New neighbor? 186.075->186.24 855.719 855.719 854.959->855.719 858.517 858.517 855.719->858.517 subtitle Penny. I work at The Cheese... 696.519 696.519 696.349->696.519 809.078 809.078 807.723647059->809.078 subtitle Leonard has a lady over. 1196.999->1200.435 subtitle And I think the rest is fai... 15.239->18.072 subtitle There's no point. I just th... 506.149 506.149 505.16->506.149 subtitle Yes. I know. 506.319 506.319 506.149->506.319 703.553 703.553 702.04->703.553 subtitle You guys are really sweet. 302.559->302.72 1031.32->1034.198 subtitle We've been denied access to... 952.24->954.037 subtitle And why can't she get her o... 163.278 163.278 160.4->163.278 subtitle If the height of a step is ... 163.44 163.44 163.278->163.44 248.795->248.959 576.919->578.113 subtitle I love cheesecake. 558.319->562.232 subtitle No. except for fish. and th... 281.88 281.88 281.88->285.111 subtitle Chat? We don't chat. at lea... 230.79 230.79 228.56->230.79 subtitle Oh. thank you. Maybe we can... 976.112 976.112 976.112->976.279 1026.198 1026.198 1026.359 1026.359 1026.198->1026.359 1026.359->1027.633 subtitle Okay. thanks for your time. 163.44->165.464666667 subtitle -...most people will trip. 849.556 849.556 849.556->849.719 897.28->899.198137255 subtitle -It's okay if you say no. 1095.959 1095.959 1098.268 1098.268 1095.959->1098.268 subtitle How the hell did you get in... 1098.919 1098.919 1098.268->1098.919 1210.64->1213.598 subtitle Really. thank you so much f... 439.92->441.610846154 subtitle -No. I sit there. 1058.36->1060.92 subtitle It's just a privilege to wa... 1315.71 1315.71 1313.719->1315.71 subtitle Subtitles by SDI Media Group 860.635 860.635 860.8 860.8 860.635->860.8 860.8->862.313 subtitle [SPEAKS IN FRENCH] 266.632->266.799 1236.112->1237.88 658.152->659.519 1180.72 1180.72 1180.558->1180.72 1180.72->1182.2955 subtitle -That sounds interesting. 56.911->57.8 556.991 556.991 555.319->556.991 subtitle Okay. let's see. what else? 340.36 340.36 340.36->342.271 subtitle Well. today we tried mastur... 1015.16->1017.469 subtitle -I'll do the talking. MAN: ... 391.04->394.112 subtitle It's a spoof of the Born-Op... 336.399->337.388 subtitle Great. 836.231->836.399 693.04->695.19 subtitle Really? Would it be totally... 984.32 984.32 984.32->987.232 subtitle Leonard. the two of us can'... 187.6->190.637 subtitle Significant improvement ove... 556.991->557.16 1020.279->1021.678 subtitle What did I just--? 964.24->966.674 subtitle To mend her broken heart. 927.955 927.955 927.955->928.12 1284.149->1284.319 860.422391304 860.422391304 860.422391304->860.635 subtitle Okay. 380.592->380.759 868.439 868.439 869.16 869.16 868.439->869.16 871.674 871.674 869.16->871.674 subtitle Save it for your blog. Howard. 755.08 755.08 755.08->758.072 subtitle Yes. but not of the same sp... 154.956 154.956 154.72744186->154.956 subtitle No. 1315.71->1315.88 49.9342->50.198 subtitle Yes. 1190.197->1192.079 530.04->533.476 subtitle I'm a Sagittarius. which pr... 158.751 158.751 158.751->158.92 943.439->946.431 subtitle That's a biological impossi... 924.519 924.519 924.356->924.519 924.519->927.955 subtitle Ouery: On what plane of exi... 697.508 697.508 697.508->697.68 314.11 314.11 310.959->314.11 subtitle ...that good food and compa... 314.11->315.199 1252.92604762 1252.92604762 1252.92604762->1255.273 subtitle It would be gastronomically... 773.479 773.479 772.279->773.479 775.629 775.629 773.479->775.629 subtitle Do you think this possibili... 383.599->384.588 subtitle Wow. 933.159 933.159 932.989->933.159 230.79->230.959 516.355->516.519 802.312->804.24 700.559 700.559 699.24->700.559 subtitle It's right down the hall. 700.559->700.72 715.12 715.12 715.12->716.109 subtitle LEONARD: How so? 155.759 155.759 155.759->158.751 subtitle You wanna hear an interesti... 709.8 709.8 703.553->709.8 625.351 625.351 623.44->625.351 subtitle [MOUTHS] I dun '1 know. 625.351->625.519 1168.878 1168.878 1168.878->1169.04 445.629529412 445.629529412 443.96->445.629529412 subtitle -What's the difference? 90.754->90.92 734.04->737.396 subtitle The worst part was watching... 798.189 798.189 798.189->798.36 1117.96->1120.264 subtitle -My mom bought me those pants. 649.15 649.15 649.15->649.319 1.239 1.239 1.239->3.833 subtitle If a photon is directed thr... 435.995->436.839 611.479->612.992 subtitle Well. it sounds wonderful. 789.121811321 789.121811321 790.429 790.429 789.121811321->790.429 subtitle It's fantastic. Unbelievable. 790.429->790.6 197.395->197.56 933.159->935.514 subtitle Well. that may be the proxi... 1094.671 1094.671 1092.919->1094.671 subtitle From the intercom. 1094.671->1095.959 339.755->340.36 417.12 417.12 416.953->417.12 417.12->420.59 subtitle Who hasn't seen this differ... 697.084142857 697.084142857 696.519->697.084142857 subtitle -No? 1134.792 1134.792 1134.792->1134.959 1220.36 1220.36 1220.193->1220.36 1220.36->1222.316 subtitle I'll get my purse. and dinn... 788.04 788.04 788.04->789.121811321 subtitle -Wait till you see this. 940.03->940.199 1025.62890698->1026.198 subtitle Get lust. 858.679 858.679 858.517->858.679 827.519 827.519 827.353->827.519 829.874 829.874 827.519->829.874 subtitle Can we please just stop say... 1252.679 1252.679 1252.508->1252.679 1252.679->1252.92604762 subtitle -So? 775.8 775.8 775.629->775.8 742.668 742.668 741.599->742.668 subtitle Excuse me? 742.84 742.84 742.668->742.84 256.072 256.072 254.32->256.072 subtitle Invite her over. make her f... 256.072->256.68 809.599 809.599 809.078->809.599 847.759->849.556 subtitle You may be familiar with so... 1175.07 1175.07 1175.639 1175.639 1175.07->1175.639 1175.639->1177.595 subtitle Anyway. if you had your own... 775.8->779.509 subtitle ...when she discovers your ... 829.874->830.04 750.153 750.153 750.153->750.319 1098.919->1100.75 subtitle We're scientists. 984.151->984.32 1080.28->1082.84 subtitle Good thinking. I'll just be... 221.250285714->221.918 subtitle Hi. 872.44 872.44 871.674->872.44 742.84->745.308 subtitle That woman in there is not ... 1265.319->1267.833 subtitle I know a wonderful little s... 645.319 645.319 645.148->645.319 133.68 133.68 132.751->133.68 647.08 647.08 647.08->649.15 subtitle You wanna know the most pat... 329.839->330.32 886.525923077 886.525923077 886.525923077->888.073 subtitle The hair products are She|d... 1104.715->1116.199 974.52->976.112 subtitle ...as to who gets custody o... 427.6->429.318 subtitle In all of them. that is the... 1133.2->1134.792 subtitle And you were right about my... 135.033 135.033 133.68->135.033 subtitle Let's try just walking out. 135.033->135.879 747.559 747.559 747.391->747.559 747.559->750.153 subtitle Oh. good. Then you won't be... 646.911 646.911 646.911->647.08 1167.16->1168.878 subtitle They have a great house ale. 865.8->868.439 subtitle It's a sentiment I can expr... 645.319->646.911 subtitle You? No. you'll only make i... 470.956818182->472.231 subtitle Just sit somewhere else. 958.599->960.59 subtitle But I-- I broke up with Joy... 797.04->798.189 subtitle This isn't a good time. 754.596 754.596 754.596->755.08 767.24->769.629 subtitle ...that I wouldn't particip... 662.839->664.477 subtitle It's a paradox. 1064.314->1064.48 281.713->281.88 874.556 874.556 872.44->874.556 subtitle [SPEAKS IN FOREIGN LANGUAGE] 878.759 878.759 874.556->878.759 1205.15 1205.15 1205.32 1205.32 1205.15->1205.32 1206.833 1206.833 1205.32->1206.833 subtitle No. it was a valid hypothesis. 885.559->886.525923077 subtitle PENNY: Hey. Leonard? 445.629529412->446.428 subtitle Here we go. 1145.2 1145.2 1143.828->1145.2 154.956->155.759 821.999->822.16 1173.239->1175.07 subtitle His name is Buttons. 1206.833->1207.0 858.679->860.422391304 subtitle -I'll show you the trick wi... 752.719->754.596 subtitle I'm a male and she's a female. 506.319->508.071 subtitle Tuesday night we played Kli... 878.759->880.909 subtitle LEONARD: All right. there i... 812.352 812.352 809.599->812.352 subtitle [IN NORMAL VOICE] Yeah. rig... 918.715 918.715 916.759->918.715 subtitle A beautiful woman stands na... 712.519 712.519 709.8->712.519 subtitle Well. this is an interestin... 1145.2->1148.556 subtitle Anyway. I've learned my les... 918.88 918.88 918.715->918.88 918.88->922.077 subtitle Event B: We drive halfway a... 812.352->814.079 697.084142857->697.508 subtitle No. 1006.552->1009.24 712.519->715.12 786.194->788.04 760.399->763.010528302 subtitle -I'm just trying to be a go... 169.2->171.634 subtitle It's true. I did a series o... 1201.84->1205.15 subtitle I really thought if you guy... 1261.435->1262.999 1156.12->1158.953 subtitle Thank you. Sheldon. You're ...
In [9]:
# Build "weak" speech/non-speech reference based on subtitle timespans
weak_reference = {}

for episode in sixEpisodes:
    
    # start by adding 'speech' segments
    annotation = Annotation(uri=episode)
    for start_time, end_time, edge_data in subtitles[episode].ordered_edges_iter(data=True):
        if 'subtitle' in edge_data:
            annotation[Segment(start_time, end_time)] = SPEECH
    
    # then fill in the gaps with 'non_speech' segments
    extent = Segment(0, dataset.get_episode_duration(episode))
    for gap in annotation.get_timeline().gaps(extent):
        annotation[gap] = NON_SPEECH
    
    weak_reference[episode] = annotation
In [10]:
weak_reference[firstEpisode]
Out[10]:

Feature extraction

In [11]:
from pyannote.features.audio.yaafe import YaafeMFCC
yaafeMFCC = YaafeMFCC(e=False, De=True, DDe=False,  # delta energy
                      coefs=12, D=True, DD=False)   # 12 MFCC coefficients + first derivative
mfcc = {}
for episode in sixEpisodes:
    mfcc[episode] = yaafeMFCC.extract(dataset.path_to_audio(episode))

Fully supervised speech activity detection

In [12]:
SPEECH_MINDURATION = 0.250     
NONSPEECH_MINDURATION = 0.250
NCOMPONENTS = 16  # 16 gaussians per state

from pyannote.algorithms.classification.hmm import ViterbiHMM
In [13]:
# we will store the results in these dictionary for each episode
hypothesis_full = {}

for trainOnFiveEpisodes, episode in leaveOneOutCrossValidation():
    
    # this is the episode we are testing
    # the five other episodes are used for training
    print episode
    
    # HMM structure
    # - 16 GMM per state 
    # - diagonal covariance matrix 
    # - 250ms minimum duration in each state
    hmm = ViterbiHMM(targets=[SPEECH, NON_SPEECH], 
                     min_duration={SPEECH: SPEECH_MINDURATION, NON_SPEECH: NONSPEECH_MINDURATION},
                     sampling=500,
                     n_components=NCOMPONENTS, 
                     covariance_type='diag')
    
    # fully supervised (reference) training on five episodes
    hmm.fit([reference[e] for e in trainOnFiveEpisodes], 
            [mfcc[e] for e in trainOnFiveEpisodes])
    
    # testing (Viterbi decoding)
    hypothesis_full[episode] = hmm.apply(mfcc[episode])
TheBigBangTheory.Season01.Episode01
TheBigBangTheory.Season01.Episode02
TheBigBangTheory.Season01.Episode03
TheBigBangTheory.Season01.Episode04
TheBigBangTheory.Season01.Episode05
TheBigBangTheory.Season01.Episode06

In [14]:
hypothesis_full[firstEpisode]
Out[14]:

Weakly supervised speech activity detection

As a bonus (not in the paper), we add 2-pass weakly-supervised speech activity detection.

In [15]:
# we will store the results in these dictionary for each episode
nPass = 2
hypothesis_weak = [dict() for p in range(nPass)]

for trainOnFiveEpisodes, episode in leaveOneOutCrossValidation():

    print episode,
    
    # always contains the output of previous pass
    hypothesis_pass = {e: weak_reference[e] for e in trainOnFiveEpisodes}
    
    for p in range(nPass):
    
        print p+1,
        
        hmm = ViterbiHMM(targets=[SPEECH, NON_SPEECH], 
                         min_duration={SPEECH: SPEECH_MINDURATION, NON_SPEECH: NONSPEECH_MINDURATION},
                         # smooth=SMOOTH,
                         sampling=500,
                         n_components=NCOMPONENTS, 
                         covariance_type='diag')
        
        hmm.fit([hypothesis_pass[e] for e in trainOnFiveEpisodes], 
                [mfcc[e] for e in trainOnFiveEpisodes])

        hypothesis_weak[p][episode] = hmm.apply(mfcc[episode])
        
        hypothesis_pass = {e: hmm.apply(mfcc[e]) for e in trainOnFiveEpisodes}
    
    print
TheBigBangTheory.Season01.Episode01 1 2
TheBigBangTheory.Season01.Episode02 1 2
TheBigBangTheory.Season01.Episode03 1 2
TheBigBangTheory.Season01.Episode04 1 2
TheBigBangTheory.Season01.Episode05 1 2
TheBigBangTheory.Season01.Episode06 1 2

In [16]:
hypothesis_full[firstEpisode]
Out[16]:
In [17]:
hypothesis_weak[0][firstEpisode]
Out[17]:
In [18]:
from pyannote.metrics.identification import IdentificationErrorRate
ier_full = IdentificationErrorRate(collar=0.050)
ier_weak = [IdentificationErrorRate(collar=0.050) for p in range(nPass)]
ier_subs = IdentificationErrorRate(collar=0.050)


line = 'EPISODE                             | SUBT. | FULLY'
for p in range(nPass):
    line += ' | WEAK{p:d}'.format(p=p+1)
print line

line = '----------------------------------------------------'
for p in range(nPass):
    line += '--------'
print line

for episode in sixEpisodes:
    subs = ier_subs(reference[episode], weak_reference[episode])
    full = ier_full(reference[episode], hypothesis_full[episode])
    weak = [ier_weak[p](reference[episode], hypothesis_weak[p][episode]) for p in range(nPass)]
    line = '{episode:s} | {subs:4.1f}% | {full:4.1f}%'.format(episode=episode, 
                                                              full=100*full, 
                                                              subs=100*subs)
    for p in range(nPass):
        line += ' | {weak:4.1f}%'.format(weak=100*weak[p])
    print line

line = '----------------------------------------------------'
for p in range(nPass):
    line += '--------'
print line
    
line = 'TOTAL                               | {subs:4.1f}% | {full:4.1f}%'.format(subs=100*abs(ier_subs),
                                                                                  full=100*abs(ier_full))
for p in range(nPass):
    line += ' | {weak:4.1f}%'.format(weak=100*abs(ier_weak[p]))
print line
EPISODE                             | SUBT. | FULLY | WEAK1 | WEAK2
--------------------------------------------------------------------
TheBigBangTheory.Season01.Episode01 | 19.0% |  7.2% |  7.2% |  7.1%
TheBigBangTheory.Season01.Episode02 | 19.4% |  6.5% |  7.1% |  6.9%
TheBigBangTheory.Season01.Episode03 | 20.1% |  7.1% |  8.5% |  7.5%
TheBigBangTheory.Season01.Episode04 | 17.7% |  5.3% |  6.1% |  5.5%
TheBigBangTheory.Season01.Episode05 | 20.5% |  6.0% |  7.4% |  6.4%
TheBigBangTheory.Season01.Episode06 | 17.5% | 10.8% |  8.8% |  9.8%
--------------------------------------------------------------------
TOTAL                               | 19.0% |  7.2% |  7.5% |  7.2%