Hervé Bredin commited on
Commit
56a16bc
1 Parent(s): c174364

feat: add code sample

Browse files
Files changed (1) hide show
  1. app.py +17 -12
app.py CHANGED
@@ -56,13 +56,8 @@ st.set_page_config(
56
 
57
  st.sidebar.image(PYANNOTE_LOGO)
58
 
59
- st.markdown(
60
- f"""
61
- # 🎹 Pretrained pipelines
62
-
63
- Upload an audio file and the first {EXCERPT:g} seconds will be processed automatically.
64
- """
65
- )
66
 
67
  PIPELINES = [
68
  p.modelId
@@ -72,12 +67,12 @@ PIPELINES = [
72
 
73
  audio = Audio(sample_rate=16000, mono=True)
74
 
75
- selected_pipeline = st.selectbox("", PIPELINES, index=0)
76
 
77
  with st.spinner("Loading pipeline..."):
78
  pipeline = Pipeline.from_pretrained(selected_pipeline)
79
 
80
- uploaded_file = st.file_uploader("")
81
  if uploaded_file is not None:
82
 
83
  try:
@@ -90,7 +85,7 @@ if uploaded_file is not None:
90
  )
91
  file = {"waveform": waveform, "sample_rate": sample_rate, "uri": uploaded_file.name}
92
 
93
- with st.spinner("Running pipeline..."):
94
  output = pipeline(file)
95
 
96
  with open('assets/template.html') as html, open('assets/style.css') as css:
@@ -123,17 +118,27 @@ if uploaded_file is not None:
123
  labels.append(label)
124
 
125
  html = html_template.replace("BASE64", BASE64).replace("REGIONS", REGIONS)
126
- st.markdown("<div style='overflow : auto'><ul class='legend'>"+LEGENDS+"</ul></div>", unsafe_allow_html=True)
127
  components.html(html, height=250, scrolling=True)
 
 
 
128
 
129
  with io.StringIO() as fp:
130
  output.write_rttm(fp)
131
  content = fp.getvalue()
132
 
133
  b64 = base64.b64encode(content.encode()).decode()
134
- href = f'<a download="{output.uri}.rttm" href="data:file/text;base64,{b64}">Download as RTTM</a>'
135
  st.markdown(href, unsafe_allow_html=True)
136
 
 
 
 
 
 
 
 
 
137
 
138
  st.sidebar.markdown(
139
  """
 
56
 
57
  st.sidebar.image(PYANNOTE_LOGO)
58
 
59
+ st.markdown("""# 🎹 Pretrained pipelines
60
+ """)
 
 
 
 
 
61
 
62
  PIPELINES = [
63
  p.modelId
 
67
 
68
  audio = Audio(sample_rate=16000, mono=True)
69
 
70
+ selected_pipeline = st.selectbox("Select a pipeline", PIPELINES, index=0)
71
 
72
  with st.spinner("Loading pipeline..."):
73
  pipeline = Pipeline.from_pretrained(selected_pipeline)
74
 
75
+ uploaded_file = st.file_uploader("Choose an audio file")
76
  if uploaded_file is not None:
77
 
78
  try:
 
85
  )
86
  file = {"waveform": waveform, "sample_rate": sample_rate, "uri": uploaded_file.name}
87
 
88
+ with st.spinner(f"Processing first {EXCERPT:g} seconds..."):
89
  output = pipeline(file)
90
 
91
  with open('assets/template.html') as html, open('assets/style.css') as css:
 
118
  labels.append(label)
119
 
120
  html = html_template.replace("BASE64", BASE64).replace("REGIONS", REGIONS)
 
121
  components.html(html, height=250, scrolling=True)
122
+ st.markdown("<div style='overflow : auto'><ul class='legend'>"+LEGENDS+"</ul></div>", unsafe_allow_html=True)
123
+
124
+ st.markdown("---")
125
 
126
  with io.StringIO() as fp:
127
  output.write_rttm(fp)
128
  content = fp.getvalue()
129
 
130
  b64 = base64.b64encode(content.encode()).decode()
131
+ href = f'Download as <a download="{output.uri}.rttm" href="data:file/text;base64,{b64}">RTTM</a> or run it on the whole {int(duration):d}s file:'
132
  st.markdown(href, unsafe_allow_html=True)
133
 
134
+ code = f"""
135
+ from pyannote.audio import Pipeline
136
+ pipeline = Pipeline.from_pretrained("{selected_pipeline}")
137
+ output = pipeline("{uploaded_file.name}")
138
+ """
139
+ st.code(code, language='python')
140
+
141
+
142
 
143
  st.sidebar.markdown(
144
  """