Spaces:
Running
Running
{% extends "base.html" %} | |
{% block title %}TTSFM - Free Text-to-Speech for Python{% endblock %} | |
{% block content %} | |
<!-- Hero Section --> | |
<section class="hero-section"> | |
<div class="container"> | |
<div class="row align-items-center min-vh-75"> | |
<div class="col-lg-8 mx-auto text-center"> | |
<div class="hero-content"> | |
<div class="badge bg-primary text-white mb-3 px-3 py-2"> | |
<i class="fas fa-code me-2"></i>Python Package | |
</div> | |
<h1 class="display-4 fw-bold mb-4"> | |
Free Text-to-Speech for Python | |
</h1> | |
<p class="lead mb-4"> | |
Access free text-to-speech using openai.fm's service. No API keys required, | |
just install and use immediately. | |
</p> | |
<div class="d-flex flex-wrap gap-3 justify-content-center"> | |
<a href="{{ url_for('playground') }}" class="btn btn-primary btn-lg"> | |
<i class="fas fa-play me-2"></i>Try Demo | |
</a> | |
<a href="{{ url_for('docs') }}" class="btn btn-outline-secondary btn-lg"> | |
<i class="fas fa-book me-2"></i>Documentation | |
</a> | |
<a href="https://github.com/dbccccccc/ttsfm" class="btn btn-outline-secondary btn-lg" target="_blank" rel="noopener noreferrer"> | |
<i class="fab fa-github me-2"></i>GitHub | |
</a> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- Features Section --> | |
<section class="py-5" style="background-color: #f8fafc;"> | |
<div class="container"> | |
<div class="row"> | |
<div class="col-12 text-center mb-5"> | |
<h2 class="fw-bold mb-4">Key Features</h2> | |
<p class="lead text-muted"> | |
Simple, free, and powerful text-to-speech for Python developers. | |
</p> | |
</div> | |
</div> | |
<div class="row g-4"> | |
<div class="col-lg-4"> | |
<div class="text-center"> | |
<div class="feature-icon text-white rounded-circle d-inline-flex align-items-center justify-content-center mb-3" style="width: 4rem; height: 4rem; background-color: #2563eb;"> | |
<i class="fas fa-key"></i> | |
</div> | |
<h5 class="fw-bold">No API Keys</h5> | |
<p class="text-muted">Completely free service with no registration or API keys required.</p> | |
</div> | |
</div> | |
<div class="col-lg-4"> | |
<div class="text-center"> | |
<div class="feature-icon text-white rounded-circle d-inline-flex align-items-center justify-content-center mb-3" style="width: 4rem; height: 4rem; background-color: #10b981;"> | |
<i class="fas fa-bolt"></i> | |
</div> | |
<h5 class="fw-bold">Easy to Use</h5> | |
<p class="text-muted">Simple Python API with both sync and async support for all use cases.</p> | |
</div> | |
</div> | |
<div class="col-lg-4"> | |
<div class="text-center"> | |
<div class="feature-icon text-white rounded-circle d-inline-flex align-items-center justify-content-center mb-3" style="width: 4rem; height: 4rem; background-color: #64748b;"> | |
<i class="fas fa-microphone-alt"></i> | |
</div> | |
<h5 class="fw-bold">Multiple Voices</h5> | |
<p class="text-muted">Access to various voice options and audio formats for your needs.</p> | |
</div> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- Quick Start Section --> | |
<section class="py-5"> | |
<div class="container"> | |
<div class="row"> | |
<div class="col-12 text-center mb-5"> | |
<h2 class="fw-bold mb-4">Getting Started</h2> | |
<p class="lead text-muted"> | |
Install TTSFM and start generating speech with just a few lines of code. | |
</p> | |
</div> | |
</div> | |
<div class="row g-4"> | |
<div class="col-lg-6"> | |
<div class="card h-100"> | |
<div class="card-body"> | |
<h5 class="card-title"> | |
<i class="fas fa-download me-2 text-primary"></i>Installation | |
</h5> | |
<pre class="bg-light p-3 rounded"><code>pip install ttsfm</code></pre> | |
<small class="text-muted">Requires Python 3.8+</small> | |
</div> | |
</div> | |
</div> | |
<div class="col-lg-6"> | |
<div class="card h-100"> | |
<div class="card-body"> | |
<h5 class="card-title"> | |
<i class="fas fa-play me-2 text-success"></i>Basic Usage | |
</h5> | |
<pre class="bg-light p-3 rounded"><code>from ttsfm import TTSClient | |
client = TTSClient() | |
response = client.generate_speech( | |
text="Hello, world!", | |
voice="alloy" | |
) | |
response.save_to_file("hello.wav")</code></pre> | |
<small class="text-muted">No API keys required</small> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="row mt-4"> | |
<div class="col-12 text-center"> | |
<div class="d-flex justify-content-center gap-3 flex-wrap"> | |
<a href="{{ url_for('playground') }}" class="btn btn-primary"> | |
<i class="fas fa-play me-2"></i>Try Demo | |
</a> | |
<a href="{{ url_for('docs') }}" class="btn btn-outline-primary"> | |
<i class="fas fa-book me-2"></i>Documentation | |
</a> | |
</div> | |
</div> | |
</div> | |
</div> | |
</section> | |
{% endblock %} | |