Spaces:
Running
Running
Added leaderboard preview
Browse files- index.html +51 -2
- style.css +114 -0
index.html
CHANGED
|
@@ -160,7 +160,7 @@
|
|
| 160 |
<div class="feature-card">
|
| 161 |
<div class="feature-icon">🔊</div>
|
| 162 |
<h3>Professional Audio Synthesis</h3>
|
| 163 |
-
<p>ElevenLabs
|
| 164 |
</div>
|
| 165 |
|
| 166 |
<div class="feature-card">
|
|
@@ -254,6 +254,55 @@
|
|
| 254 |
</div>
|
| 255 |
</section>
|
| 256 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 257 |
<section id="installation" class="installation">
|
| 258 |
<div class="container">
|
| 259 |
<h2>Installation</h2>
|
|
@@ -292,7 +341,7 @@
|
|
| 292 |
<ul>
|
| 293 |
<li><strong>Reachy Mini</strong> robot (or simulation mode for development)</li>
|
| 294 |
<li><strong>Python 3.9+</strong></li>
|
| 295 |
-
<li><strong>ElevenLabs API Key</strong> for audio synthesis (<a href="https://elevenlabs.io/" target="_blank">sign up here</a>)</li>
|
| 296 |
<li><strong>Internet Connection</strong> for Full Historical Race mode</li>
|
| 297 |
</ul>
|
| 298 |
<p class="note"><em>💡 Tip: Start with <strong>China 2025</strong> for the best historical race experience - it has complete overtake, pit stop, and race control data.</em></p>
|
|
|
|
| 160 |
<div class="feature-card">
|
| 161 |
<div class="feature-icon">🔊</div>
|
| 162 |
<h3>Professional Audio Synthesis</h3>
|
| 163 |
+
<p>ElevenLabs v3 API with emotional variation support creates natural, expressive commentary. Includes a professional "British Sports Broadcaster" voice out of the box - perfect for authentic F1 commentary that adapts to race excitement.</p>
|
| 164 |
</div>
|
| 165 |
|
| 166 |
<div class="feature-card">
|
|
|
|
| 254 |
</div>
|
| 255 |
</section>
|
| 256 |
|
| 257 |
+
<section class="audio-features">
|
| 258 |
+
<div class="container">
|
| 259 |
+
<h2>🎙️ Professional Broadcasting Quality</h2>
|
| 260 |
+
<p class="section-intro">Powered by ElevenLabs v3 API with emotional variation for authentic F1 commentary</p>
|
| 261 |
+
|
| 262 |
+
<div class="audio-showcase">
|
| 263 |
+
<div class="audio-highlight">
|
| 264 |
+
<div class="audio-icon">🎭</div>
|
| 265 |
+
<h3>Emotional Variation</h3>
|
| 266 |
+
<p>Using the latest ElevenLabs v3 API, commentary dynamically adjusts tone and emotion based on race excitement. From calm strategic analysis to thrilling overtake moments, the voice naturally adapts to match the action.</p>
|
| 267 |
+
</div>
|
| 268 |
+
|
| 269 |
+
<div class="audio-highlight">
|
| 270 |
+
<div class="audio-icon">🇬🇧</div>
|
| 271 |
+
<h3>British Sports Broadcaster Voice</h3>
|
| 272 |
+
<p>Includes a professional "British Sports Broadcaster" voice out of the box - no configuration needed. The authentic accent and delivery style creates an immersive F1 experience that feels like watching live coverage.</p>
|
| 273 |
+
</div>
|
| 274 |
+
|
| 275 |
+
<div class="audio-highlight">
|
| 276 |
+
<div class="audio-icon">⚡</div>
|
| 277 |
+
<h3>Streaming Audio</h3>
|
| 278 |
+
<p>Low-latency streaming ensures commentary stays synchronized with race events. Audio begins playing within milliseconds of generation, creating a seamless real-time experience.</p>
|
| 279 |
+
</div>
|
| 280 |
+
</div>
|
| 281 |
+
|
| 282 |
+
<div class="audio-examples">
|
| 283 |
+
<h3>Emotional Range Examples</h3>
|
| 284 |
+
<div class="emotion-grid">
|
| 285 |
+
<div class="emotion-example">
|
| 286 |
+
<span class="emotion-level">😐 Calm</span>
|
| 287 |
+
<p>"Hamilton maintains position in P2, managing the gap to Verstappen ahead."</p>
|
| 288 |
+
</div>
|
| 289 |
+
<div class="emotion-example">
|
| 290 |
+
<span class="emotion-level">😊 Interested</span>
|
| 291 |
+
<p>"Leclerc is closing in on Perez - this could get interesting!"</p>
|
| 292 |
+
</div>
|
| 293 |
+
<div class="emotion-example">
|
| 294 |
+
<span class="emotion-level">😃 Excited</span>
|
| 295 |
+
<p>"Hamilton is right on Verstappen's gearbox - DRS enabled!"</p>
|
| 296 |
+
</div>
|
| 297 |
+
<div class="emotion-example">
|
| 298 |
+
<span class="emotion-level">🤩 Thrilled</span>
|
| 299 |
+
<p>"THERE IT IS! Hamilton takes the lead! What a move!"</p>
|
| 300 |
+
</div>
|
| 301 |
+
</div>
|
| 302 |
+
</div>
|
| 303 |
+
</div>
|
| 304 |
+
</section>
|
| 305 |
+
|
| 306 |
<section id="installation" class="installation">
|
| 307 |
<div class="container">
|
| 308 |
<h2>Installation</h2>
|
|
|
|
| 341 |
<ul>
|
| 342 |
<li><strong>Reachy Mini</strong> robot (or simulation mode for development)</li>
|
| 343 |
<li><strong>Python 3.9+</strong></li>
|
| 344 |
+
<li><strong>ElevenLabs API Key</strong> for audio synthesis (<a href="https://elevenlabs.io/" target="_blank">sign up here</a>) - British Sports Broadcaster voice included</li>
|
| 345 |
<li><strong>Internet Connection</strong> for Full Historical Race mode</li>
|
| 346 |
</ul>
|
| 347 |
<p class="note"><em>💡 Tip: Start with <strong>China 2025</strong> for the best historical race experience - it has complete overtake, pit stop, and race control data.</em></p>
|
style.css
CHANGED
|
@@ -952,3 +952,117 @@ html {
|
|
| 952 |
grid-template-columns: 1fr;
|
| 953 |
}
|
| 954 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 952 |
grid-template-columns: 1fr;
|
| 953 |
}
|
| 954 |
}
|
| 955 |
+
|
| 956 |
+
/* Audio Features Section */
|
| 957 |
+
.audio-features {
|
| 958 |
+
background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
|
| 959 |
+
}
|
| 960 |
+
|
| 961 |
+
.audio-features h2 {
|
| 962 |
+
color: var(--secondary-color);
|
| 963 |
+
}
|
| 964 |
+
|
| 965 |
+
.audio-showcase {
|
| 966 |
+
display: grid;
|
| 967 |
+
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
| 968 |
+
gap: 30px;
|
| 969 |
+
margin-bottom: 50px;
|
| 970 |
+
}
|
| 971 |
+
|
| 972 |
+
.audio-highlight {
|
| 973 |
+
background: var(--bg-white);
|
| 974 |
+
padding: 30px;
|
| 975 |
+
border-radius: 12px;
|
| 976 |
+
box-shadow: var(--shadow);
|
| 977 |
+
border-top: 4px solid var(--primary-color);
|
| 978 |
+
text-align: center;
|
| 979 |
+
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
| 980 |
+
}
|
| 981 |
+
|
| 982 |
+
.audio-highlight:hover {
|
| 983 |
+
transform: translateY(-5px);
|
| 984 |
+
box-shadow: var(--shadow-lg);
|
| 985 |
+
}
|
| 986 |
+
|
| 987 |
+
.audio-icon {
|
| 988 |
+
font-size: 3.5rem;
|
| 989 |
+
margin-bottom: 20px;
|
| 990 |
+
display: block;
|
| 991 |
+
}
|
| 992 |
+
|
| 993 |
+
.audio-highlight h3 {
|
| 994 |
+
font-size: 1.4rem;
|
| 995 |
+
margin-bottom: 15px;
|
| 996 |
+
color: var(--secondary-color);
|
| 997 |
+
}
|
| 998 |
+
|
| 999 |
+
.audio-highlight p {
|
| 1000 |
+
color: var(--text-light);
|
| 1001 |
+
line-height: 1.8;
|
| 1002 |
+
text-align: left;
|
| 1003 |
+
}
|
| 1004 |
+
|
| 1005 |
+
.audio-examples {
|
| 1006 |
+
background: var(--bg-white);
|
| 1007 |
+
padding: 40px;
|
| 1008 |
+
border-radius: 12px;
|
| 1009 |
+
box-shadow: var(--shadow);
|
| 1010 |
+
max-width: 1000px;
|
| 1011 |
+
margin: 0 auto;
|
| 1012 |
+
}
|
| 1013 |
+
|
| 1014 |
+
.audio-examples h3 {
|
| 1015 |
+
font-size: 1.8rem;
|
| 1016 |
+
text-align: center;
|
| 1017 |
+
margin-bottom: 30px;
|
| 1018 |
+
color: var(--secondary-color);
|
| 1019 |
+
}
|
| 1020 |
+
|
| 1021 |
+
.emotion-grid {
|
| 1022 |
+
display: grid;
|
| 1023 |
+
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
|
| 1024 |
+
gap: 20px;
|
| 1025 |
+
}
|
| 1026 |
+
|
| 1027 |
+
.emotion-example {
|
| 1028 |
+
background: linear-gradient(135deg, var(--bg-light) 0%, var(--bg-white) 100%);
|
| 1029 |
+
padding: 20px;
|
| 1030 |
+
border-radius: 8px;
|
| 1031 |
+
border-left: 4px solid var(--primary-color);
|
| 1032 |
+
transition: all 0.3s ease;
|
| 1033 |
+
}
|
| 1034 |
+
|
| 1035 |
+
.emotion-example:hover {
|
| 1036 |
+
transform: translateX(5px);
|
| 1037 |
+
box-shadow: var(--shadow);
|
| 1038 |
+
}
|
| 1039 |
+
|
| 1040 |
+
.emotion-level {
|
| 1041 |
+
display: block;
|
| 1042 |
+
font-size: 1.1rem;
|
| 1043 |
+
font-weight: 700;
|
| 1044 |
+
margin-bottom: 10px;
|
| 1045 |
+
color: var(--secondary-color);
|
| 1046 |
+
}
|
| 1047 |
+
|
| 1048 |
+
.emotion-example p {
|
| 1049 |
+
color: var(--text-color);
|
| 1050 |
+
font-style: italic;
|
| 1051 |
+
line-height: 1.6;
|
| 1052 |
+
margin: 0;
|
| 1053 |
+
}
|
| 1054 |
+
|
| 1055 |
+
/* Responsive Design for Audio Features */
|
| 1056 |
+
@media (max-width: 768px) {
|
| 1057 |
+
.audio-showcase {
|
| 1058 |
+
grid-template-columns: 1fr;
|
| 1059 |
+
}
|
| 1060 |
+
|
| 1061 |
+
.emotion-grid {
|
| 1062 |
+
grid-template-columns: 1fr;
|
| 1063 |
+
}
|
| 1064 |
+
|
| 1065 |
+
.audio-examples {
|
| 1066 |
+
padding: 25px;
|
| 1067 |
+
}
|
| 1068 |
+
}
|