Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<a href="https://trendshift.io/repositories/12200" target="_blank"><img src="https://trendshift.io/api/badge/repositories/12200" alt="Huanshere%2FVideoLingo | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>

[**English**](/README.md)|[**简体中文**](/translations/README.zh.md)|[**繁體中文**](/translations/README.zh-TW.md)|[**日本語**](/translations/README.ja.md)|[**Español**](/translations/README.es.md)|[**Русский**](/translations/README.ru.md)|[**Français**](/translations/README.fr.md)
[**English**](/README.md)|[**简体中文**](/translations/README.zh.md)|[**繁體中文**](/translations/README.zh-TW.md)|[**日本語**](/translations/README.ja.md)|[**Español**](/translations/README.es.md)|[**Русský**](/translations/README.ru.md)|[**Français**](/translations/README.fr.md)|[**Svenska**](/translations/README.sv.md)

</div>

Expand Down
222 changes: 222 additions & 0 deletions translations/README.sv.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,222 @@
<div align="center">

<img src="/docs/logo.png" alt="VideoLingo Logo" height="140">

# Koppla samman världen, bild för bild

<a href="https://trendshift.io/repositories/12200" target="_blank"><img src="https://trendshift.io/api/badge/repositories/12200" alt="Huanshere%2FVideoLingo | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>

[**English**](/README.md)|[**简体中文**](/translations/README.zh.md)|[**繁體中文**](/translations/README.zh-TW.md)|[**日本語**](/translations/README.ja.md)|[**Español**](/translations/README.es.md)|[**Русский**](/translations/README.ru.md)|[**Français**](/translations/README.fr.md)|[**Svenska**](/translations/README.sv.md)

</div>

## 🌟 Översikt ([Prova VL nu!](https://videolingo.io))

VideoLingo är ett allt-i-ett-verktyg för videoöversättning, lokalisering och dubbning som syftar till att generera undertexter av Netflix-kvalitet. Det eliminerar stela maskinöversättningar och flerradiga undertexter samtidigt som det lägger till högkvalitativ dubbning, vilket möjliggör global kunskapsdelning över språkbarriärer.

Huvudfunktioner:
- 🎥 YouTube-videonedladdning via yt-dlp

- **🎙️ Ordnivå och låg-illusion undertexterkänning med WhisperX**

- **📝 NLP- och AI-driven undertextsegmentering**

- **📚 Anpassad + AI-genererad terminologi för sammanhängande översättning**

- **🔄 3-stegs Översätt-Reflektera-Anpassa för filmisk kvalitet**

- **✅ Netflix-standard, endast enkelradiga undertexter**

- **🗣️ Dubbning med GPT-SoVITS, Azure, OpenAI och fler**

- 🚀 Ett-klicks-start och bearbetning i Streamlit

- 🌍 Flerspråksstöd i Streamlit UI

- 📝 Detaljerad loggning med återupptagning av framsteg

- 🔍 Modellsökruta med API auto-hämtning — sök och filtrera från din leverantörs fullständiga modelllista

- ⏯️ Uppgiftskontroll — pausa, återuppta eller stoppa bearbetning vid valfritt steg

Skillnad från liknande projekt: **Endast enkelradiga undertexter, överlägsen översättningskvalitet, sömlös dubbningsupplevelse**

## 🎥 Demo

<table>
<tr>
<td width="33%">

### Dubbla undertexter
---
https://github.com/user-attachments/assets/a5c3d8d1-2b29-4ba9-b0d0-25896829d951

</td>
<td width="33%">

### Cosy2 röstkloning
---
https://github.com/user-attachments/assets/e065fe4c-3694-477f-b4d6-316917df7c0a

</td>
<td width="33%">

### GPT-SoVITS med min röst
---
https://github.com/user-attachments/assets/47d965b2-b4ab-4a0b-9d08-b49a7bf3508c

</td>
</tr>
</table>

### Språkstöd

**Stöd för inspelningsspråk (fler kommer):**

🇺🇸 Engelska 🤩 | 🇷🇺 Ryska 😊 | 🇫🇷 Franska 🤩 | 🇩🇪 Tyska 🤩 | 🇮🇹 Italienska 🤩 | 🇪🇸 Spanska 🤩 | 🇯🇵 Japanska 😐 | 🇨🇳 Kinesiska* 😊

> *Kinesiska använder en separat interpunktionsförstärkt whisper-modell, för tillfället...

**Översättning stöder alla språk, medan dubbningsspråk beror på den valda TTS-metoden.**

## ⭐ Star History

[![Star History Chart](https://api.star-history.com/svg?repos=Huanshere/VideoLingo&type=Timeline)](https://star-history.com/#Huanshere/VideoLingo&Timeline)

## 📖 Dokumentation

- [🚀 Snabbstart](https://videolingo.io/docs/start)

- [🎯 Steg-för-steg guide](https://videolingo.io/docs/guide)

- [🔧 API-konfiguration](https://videolingo.io/docs/api)

- [❓ Vanliga frågor](https://videolingo.io/docs/faq)

- [🗺️ Roadmap](https://videolingo.io/docs/roadmap)

- [📄 Licens](https://videolingo.io/docs/license)

---

## 🚗 Snabbstart

### Online-version
Besök [videolingo.io](https://videolingo.io) för att testa gratis utan installation

### Lokal installation

1. Säkerställ att Python 3.10+ är installerat
2. Installera FFmpeg:
- Windows: `choco install ffmpeg`
- macOS: `brew install ffmpeg`
- Linux: `sudo apt install ffmpeg` eller `sudo yum install ffmpeg`
3. Klona repoet:
```bash
git clone https://github.com/Huanshere/VideoLingo.git
cd VideoLingo
```
4. Kör installationsskriptet och följ instruktionerna:
```bash
python install.py
```

Applikationen kommer att öppnas automatiskt i din webbläsare på `http://localhost:8501`

> **💡 Tips:** Första uppstarten kan ta upp till 1 minut. Om installationen misslyckas, kontrollera din internetanslutning och kör `python install.py` igen.

---

## 🏗️ Arkitektur

```mermaid
graph TD
A[📹 Video Input] --> B[🎙️ WhisperX<br/>Transkription]
B --> C[📝 NLP<br/>Meningssegmentering]
C --> D[📚 Terminologi<br/>Extraktion]
D --> E[🔄 LLM<br/>Översättning]
E --> F[✅ Enkel rad<br/>Undertextjustering]
F --> G[🗣️ TTS<br/>Dubbning]
G --> H[🎬 Video<br/>Sammanslagning]

I[⚙️ Streamlit UI] --> J[🎛️ Konfiguration]
J --> K[📊 Bearbetning<br/>Övervakning]
K --> L[📁 Resultat<br/>Hantering]
```

## 🔧 Avancerad användning

### Batch-bearbetning

Placera videor i `inputs/` mappen och kör:
```bash
python batch_process.py
```

### API-användning

Starta API-servern:
```bash
python app.py --api
```

### Anpassad terminologi

Redigera `output/log/terminology.json` före översättning för att definiera specifika termer.

### Modellvärdering

Jämför olika LLM-modellers prestanda:
```bash
python benchmark.py
```

## 🤝 Bidrag

Vi välkomnar bidrag! Läs vår [bidragsguide](CONTRIBUTING.md) för detaljer.

### Utvecklingsmiljö

```bash
# Installera utvecklingsberoenden
pip install -r requirements-dev.txt

# Kör tester
python -m pytest tests/

# Formatera kod
black . && isort .
```

## 📄 Licens

Detta projekt är licensierat under Apache 2.0-licensen - se [LICENSE](LICENSE) filen för detaljer.

## 📞 Support

- 💬 [Discord Community](https://discord.gg/videolingo)
- 📧 Email: support@videolingo.io
- 🐛 [Rapportera buggar](https://github.com/Huanshere/VideoLingo/issues)
- 💡 [Funktionsförfrågningar](https://github.com/Huanshere/VideoLingo/discussions)

## 🙏 Erkännanden

Tack till alla fantastiska open source-projekt som gör VideoLingo möjligt:

- **WhisperX** - Transkription med tidsstämplar
- **yt-dlp** - Video download
- **FFmpeg** - Video/ljudbearbetning
- **Streamlit** - Webbgränssnitt
- **OpenAI** - LLM API
- **Azure Cognitive Services** - TTS
- **GPT-SoVITS** - Röstkloning

---

<div align="center">

**Gjord med ❤️ för den globala gemenskapen**

[⭐ Stjärnmärk detta repo](https://github.com/Huanshere/VideoLingo) • [🐛 Rapportera problem](https://github.com/Huanshere/VideoLingo/issues) • [💬 Gå med i Discord](https://discord.gg/videolingo)

</div>
126 changes: 126 additions & 0 deletions translations/sv.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
{
"a. Download or Upload Video": "a. Ladda ner eller ladda upp video",
"Delete and Reselect": "Ta bort och välj igen",
"Enter YouTube link:": "Ange YouTube-länk:",
"Resolution": "Upplösning",
"Download Video": "Ladda ner video",
"Or upload video": "Eller ladda upp video",
"Youtube Settings": "YouTube-inställningar",
"Cookies Path": "Cookie-sökväg",
"LLM Configuration": "LLM-konfiguration",
"API_KEY": "API_KEY",
"BASE_URL": "BASE_URL",
"MODEL": "MODEL",
"Openai format, will add /v1/chat/completions automatically": "OpenAI-format, kommer att lägga till /v1/chat/completions automatiskt",
"click to check API validity": "klicka för att kontrollera API-giltighet",
"API Key is valid": "API-nyckeln är giltig",
"API Key is invalid": "API-nyckeln är ogiltig",
"Recog Lang": "Igenkänningsspråk",
"Subtitles Settings": "Undertextinställningar",
"Target Lang": "Målspråk",
"Input any language in natural language, as long as llm can understand": "Ange valfritt språk på naturligt språk, så länge LLM kan förstå det",
"Vocal separation enhance": "Röstförstärkning",
"Burn-in Subtitles": "Bränna in undertexter",
"Whether to burn subtitles into the video, will increase processing time": "Om undertexter ska brännas in i videon, ökar bearbetningstiden",
"Video Resolution": "Videoupplösning",
"Recommended for videos with loud background noise, but will increase processing time": "Rekommenderas för videor med högt bakgrundsljud, men ökar bearbetningstiden",
"Dubbing Settings": "Dubbningsinställningar",
"TTS Method": "TTS-metod",
"SiliconFlow API Key": "SiliconFlow API-nyckel",
"Mode Selection": "Lägesval",
"Preset": "Förinställning",
"Refer_stable": "Refer_stable",
"Refer_dynamic": "Refer_dynamic",
"OpenAI Voice": "OpenAI-röst",
"Fish TTS Character": "Fish TTS-karaktär",
"Azure Voice": "Azure-röst",
"Please refer to Github homepage for GPT_SoVITS configuration": "Se Github-startsidan för GPT_SoVITS-konfiguration",
"SoVITS Character": "SoVITS-karaktär",
"Refer Mode": "Referensläge",
"Mode 1: Use provided reference audio only": "Läge 1: Använd endast medföljande referensljud",
"Mode 2: Use first audio from video as reference": "Läge 2: Använd första ljudet från videon som referens",
"Mode 3: Use each audio from video as reference": "Läge 3: Använd varje ljud från videon som referens",
"Configure reference audio mode for GPT-SoVITS": "Konfigurera referensljudläge för GPT-SoVITS",
"Edge TTS Voice": "Edge TTS-röst",
"=====NOTE=====": "NEDAN ÄR i st.py",
"b. Translate and Generate Subtitles": "b. Översätt och generera undertexter",
"This stage includes the following steps:": "Detta steg inkluderar följande steg:",
"WhisperX word-level transcription": "WhisperX transkription på ordnivå",
"Sentence segmentation using NLP and LLM": "Meningssegmentering med NLP och LLM",
"Summarization and multi-step translation": "Sammanfattning och flerstegsöversättning",
"Cutting and aligning long subtitles": "Klippning och justering av långa undertexter",
"Generating timeline and subtitles": "Generering av tidslinje och undertexter",
"Merging subtitles into the video": "Sammanfogning av undertexter till videon",
"Start Processing Subtitles": "Börja bearbeta undertexter",
"Download All Srt Files": "Ladda ner alla SRT-filer",
"Archive to 'history'": "Arkivera till 'historik'",
"Using Whisper for transcription...": "Använder Whisper för transkription...",
"Splitting long sentences...": "Delar upp långa meningar...",
"Summarizing and translating...": "Sammanfattar och översätter...",
"Processing and aligning subtitles...": "Bearbetar och justerar undertexter...",
"Merging subtitles to video...": "Sammanfogar undertexter till video...",
"⚠️ PAUSE_BEFORE_TRANSLATE. Go to `output/log/terminology.json` to edit terminology. Then press ENTER to continue...": "⚠️ PAUSA_INNAN_ÖVERSÄTTNING. Gå till `output/log/terminology.json` för att redigera terminologi. Tryck sedan ENTER för att fortsätta...",
"Subtitle processing complete! 🎉": "Undertextbearbetning klar! 🎉",
"c. Dubbing": "c. Dubbning",
"Generate audio tasks and chunks": "Generera ljuduppgifter och segment",
"Extract reference audio": "Extrahera referensljud",
"Generate and merge audio files": "Generera och sammanfoga ljudfiler",
"Merge final audio into video": "Sammanfoga slutgiltigt ljud till video",
"Start Audio Processing": "Börja ljudbearbetning",
"Audio processing is complete! You can check the audio files in the `output` folder.": "Ljudbearbetning klar! Du kan kontrollera ljudfilerna i mappen `output`.",
"Delete dubbing files": "Ta bort dubbningsfiler",
"Generate audio tasks": "Generera ljuduppgifter",
"Extract refer audio": "Extrahera referensljud",
"Generate all audio": "Generera allt ljud",
"Merge full audio": "Sammanfoga fullständigt ljud",
"Merge dubbing to the video": "Sammanfoga dubbning till videon",
"Audio processing complete! 🎇": "Ljudbearbetning klar! 🎇",
"Hello, welcome to VideoLingo. If you encounter any issues, feel free to get instant answers with our Free QA Agent <a href=\"https://share.fastgpt.in/chat/share?shareId=066w11n3r9aq6879r4z0v9rh\" target=\"_blank\">here</a>! You can also try out our SaaS website at <a href=\"https://videolingo.io\" target=\"_blank\">videolingo.io</a> for free!": "Hej och välkommen till VideoLingo. Om du stöter på problem kan du få direktsvar med vår gratis QA Agent <a href=\"https://share.fastgpt.in/chat/share?shareId=066w11n3r9aq6879r4z0v9rh\" target=\"_blank\">här</a>! Du kan även testa vår SaaS-webbsida på <a href=\"https://videolingo.io\" target=\"_blank\">videolingo.io</a> gratis!",
"WhisperX Runtime": "WhisperX Runtime",
"Local runtime requires >8GB GPU, cloud runtime requires 302ai API key, elevenlabs runtime requires ElevenLabs API key": "Lokal runtime kräver >8GB GPU, molnruntime kräver 302ai API-nyckel, elevenlabs runtime kräver ElevenLabs API-nyckel",
"WhisperX 302ai API": "WhisperX 302ai API",
"=====NOTE2=====": "NEDAN ÄR i install.py",
"🚀 Starting Installation": "🚀 Startar installation",
"Do you need to auto-configure PyPI mirrors? (Recommended if you have difficulty accessing pypi.org)": "Behöver du auto-konfigurera PyPI-speglingar? (Rekommenderas om du har svårt att komma åt pypi.org)",
"🎮 NVIDIA GPU detected, installing CUDA version of PyTorch...": "🎮 NVIDIA GPU upptäckt, installerar CUDA-versionen av PyTorch...",
"🍎 MacOS detected, installing CPU version of PyTorch... Note: it might be slow during whisperX transcription.": "🍎 MacOS upptäckt, installerar CPU-versionen av PyTorch... OBS: det kan vara långsamt under whisperX transkription.",
"💻 No NVIDIA GPU detected, installing CPU version of PyTorch... Note: it might be slow during whisperX transcription.": "💻 Ingen NVIDIA GPU upptäckt, installerar CPU-versionen av PyTorch... OBS: det kan vara långsamt under whisperX transkription.",
"❌ Failed to install requirements:": "❌ Misslyckades att installera krav:",
"✅ FFmpeg is already installed": "✅ FFmpeg är redan installerat",
"❌ FFmpeg not found\n\n": "❌ FFmpeg hittades inte\n\n",
"🛠️ Install using:": "🛠️ Installera med:",
"💡 Note:": "💡 OBS:",
"🔄 After installing FFmpeg, please run this installer again:": "🔄 Efter installation av FFmpeg, kör denna installerare igen:",
"Install Chocolatey first (https://chocolatey.org/)": "Installera Chocolatey först (https://chocolatey.org/)",
"Install Homebrew first (https://brew.sh/)": "Installera Homebrew först (https://brew.sh/)",
"Use your distribution's package manager": "Använd din distributions pakethanterare",
"FFmpeg is required. Please install it and run the installer again.": "FFmpeg krävs. Installera det och kör installeraren igen.",
"Installing requirements using `pip install -r requirements.txt`": "Installerar krav med `pip install -r requirements.txt`",
"Installation completed": "Installation slutförd",
"Now I will run this command to start the application:": "Nu kommer jag att köra detta kommando för att starta applikationen:",
"Note: First startup may take up to 1 minute": "OBS: Första uppstarten kan ta upp till 1 minut",
"If the application fails to start:": "Om applikationen misslyckas att starta:",
"Check your network connection": "Kontrollera din nätverksanslutning",
"Re-run the installer: [bold]python install.py[/bold]": "Kör installeraren igen: [bold]python install.py[/bold]",
"Detected NVIDIA GPU(s)": "NVIDIA GPU(er) upptäckta",
"No NVIDIA GPU detected": "Ingen NVIDIA GPU upptäckt",
"No NVIDIA GPU detected or NVIDIA drivers not properly installed": "Ingen NVIDIA GPU upptäckt eller NVIDIA-drivrutiner inte korrekt installerade",
"LLM JSON Format Support": "LLM JSON-formatstöd",
"Enable if your LLM supports JSON mode output": "Aktivera om din LLM stöder JSON-lägesutmatning",
"Enter your API key": "Ange din API-nyckel",
"Fetch Model List": "Hämta modelllista",
"Fetching models...": "Hämtar modeller...",
"Fetched {n} models": "Hämtade {n} modeller",
"Failed to fetch models, please check API Key and Base URL": "Misslyckades att hämta modeller, kontrollera API-nyckel och bas-URL",
"Search or enter model name": "Sök eller ange modellnamn",
"Check API": "Kontrollera API",
"Paused": "Pausad",
"Running...": "Kör...",
"Resume": "Återuppta",
"Pause": "Pausa",
"Stop": "Stoppa",
"Task completed!": "Uppgift slutförd!",
"Task stopped": "Uppgift stoppad",
"Task error": "Uppgiftsfel",
"OK": "OK"
}
1 change: 1 addition & 0 deletions translations/translations.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"🇪🇸 Español": "es",
"🇷🇺 Русский": "ru",
"🇫🇷 Français": "fr",
"🇸🇪 Svenska": "sv",
}

# Load the language file based on user selection
Expand Down