User:Zuhui//SI25/Prototyping/BASH: Difference between revisions
< User:Zuhui | | SI25 | Prototyping
(→Vosk) |
m (Zuhui moved page User:Zuhui//Prototyping/BASH to User:Zuhui//SI25/Prototyping/BASH) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 18: | Line 18: | ||
<br><br> | <br><br> | ||
'''Trial 1, with [https://hub.xpub.nl/cerealbox/~zuhui/transcriptt/interview/adventure.webm Adventure Time clip]''' | '''Trial 1, with [https://hub.xpub.nl/cerealbox/~zuhui/transcriptt/interview/adventure.webm Adventure Time clip]''' | ||
$ yt-dlp "https://www.youtube.com/watch?v=qbsvZclUXh8" --write-info-json | '''$ yt-dlp "https://www.youtube.com/watch?v=qbsvZclUXh8" --write-info-json''' | ||
$ mv *.info.json *.webm interview/ | '''$ mv *.info.json *.webm interview/''' | ||
$ ffmpeg -i adventure.webm adventure.wav | '''$ ffmpeg -i adventure.webm adventure.wav''' | ||
$ vosk-transcriber -l en-us -i adventure.wav -t srt -o adventure.srt | '''$ vosk-transcriber -l en-us -i adventure.wav -t srt -o adventure.srt''' | ||
$ ../py_script/srt2vtt.py adventure.srt adventure.vtt | '''$ ../py_script/srt2vtt.py adventure.srt adventure.vtt''' | ||
$ chmod +x ../py_script/srt2vtt.py //if permission denied | '''$ chmod +x ../py_script/srt2vtt.py''' //if permission denied | ||
$ ffmpeg -i adventure.wav adventure.mp3 //for html | '''$ ffmpeg -i adventure.wav adventure.mp3''' //for html | ||
[https://hub.xpub.nl/cerealbox/~zuhui/transcriptt/interview/adventuretime_transcript.html ↘︎it works] | '''[https://hub.xpub.nl/cerealbox/~zuhui/transcriptt/interview/adventuretime_transcript.html ↘︎it works]''' | ||
<br><br> | <br><br> | ||
'''Trial 2, with Json to vtt''' | '''Trial 2, with Json to vtt''' | ||
$ vosk-transcriber -l en-us -i adventure.wav -t json -o adventure.json | '''$ vosk-transcriber -l en-us -i adventure.wav -t json -o adventure.json''' | ||
$ ../py_script/ | '''$ ../py_script/voskjson2vtt.py adventure.json adventure_words.vtt''' | ||
[https://hub.xpub.nl/cerealbox/~zuhui/transcriptt/interview/adventuretime_transcript_ver2.html ↘︎doesn't work and it's vtt file problem → ok now it works, used wrong python file to make vtt out of json] | '''[https://hub.xpub.nl/cerealbox/~zuhui/transcriptt/interview/adventuretime_transcript_ver2.html ↘︎doesn't work and it's vtt file problem → ok now it works, used wrong python file to make vtt out of json]''' | ||
<br><br> | |||
====Video subtitling==== | |||
{{vimeo|1043091875}} | |||
▲original<br> | |||
- first create vtt file (json if necessary), running python files.<br> | |||
- put them together on html | |||
<video src="liberty-loop.mp4" controls style="width: 50%" > | |||
<track src="liberty-loop_words.vtt" kind="subtitles" srclang="en" label="English" default> | |||
</video> | |||
-also can style the subtitle on either vtt file or html. | |||
'''WEBVTT''' | |||
STYLE | |||
::cue { | |||
color: yellow; | |||
background: rgba(0, 0, 0, 0.7); | |||
font-size: 20px; | |||
font-family: Arial, sans-serif; | |||
} | |||
'''HTML CSS''' | |||
<style> | |||
video { | |||
} | |||
::cue { | |||
color: yellow; | |||
background: rgba(0, 0, 0, 0.7); | |||
font-size: 20px; | |||
font-family: "Courier New", monospace; | |||
} | |||
</style> | |||
↘︎ '''[https://hub.xpub.nl/cerealbox/~zuhui/transcriptt/yoon/liberty-loop.html subtitle created(language detection in eng)]''' | |||
==Command line== | ==Command line== | ||
'''pwd''' outputs the name of the current working directory. | |||
'''ls''' lists all files and directories in the working directory. | |||
'''cd''' switches you into the directory you specify. | |||
'''mkdir''' creates a new directory in the working directory. | |||
'''touch''' creates a new file inside the working directory. | |||
'''cat''' show you immediately what's inside the file | |||
Helper commands to make navigation easier: | |||
'''clear''' clears the terminal | |||
'''tab''' autocompletes the name of a file or directory | |||
'''↑ and ↓''' allow you to cycle through previous commands | |||
'''ls -a''' lists all contents of a directory, including hidden files and directories | |||
'''ls -l''' lists all contents in long format | |||
'''ls -t''' orders files and directories by the time they were last modified | |||
Multiple options can be used together, like '''ls -alt''' | |||
From the command line, you can also copy, move, and remove files and directories: | |||
'''cp''' copies files | |||
'''mv''' moves and renames files | |||
'''rm''' removes files | |||
'''rm -r''' removes directories | |||
'''rm -rf''' adding -f removes all the files without having to confirm | |||
Redirection + other commands are powerful when combined with redirection commands: | |||
'''>''' redirects standard output of a command to a file, overwriting previous content. | |||
'''>>''' redirects standard output of a command to a file, appending new content to old content. | |||
'''<''' redirects standard input to a command. | |||
'''|''' redirects standard output of a command to another command. | |||
'''sort''' sorts lines of text alphabetically. | |||
'''uniq''' filters duplicate, adjacent lines of text. | |||
'''grep''' searches for a text pattern and outputs it. | |||
'''sed''' searches for a text pattern, modifies it, and outputs it. |
Latest revision as of 19:37, 6 January 2025
Scripts
yt-dlp
//go to directory I want to save the youtube file $yt-dlp (video url) //copy the name of the file $ffmpeg -i (name of the file) (filename+filetype) //this will convert to filetype that I want to download
Stream segments
Vosk
Vosk 2
251124 with Michael
Trial 1, with Adventure Time clip
$ yt-dlp "https://www.youtube.com/watch?v=qbsvZclUXh8" --write-info-json $ mv *.info.json *.webm interview/ $ ffmpeg -i adventure.webm adventure.wav $ vosk-transcriber -l en-us -i adventure.wav -t srt -o adventure.srt $ ../py_script/srt2vtt.py adventure.srt adventure.vtt $ chmod +x ../py_script/srt2vtt.py //if permission denied $ ffmpeg -i adventure.wav adventure.mp3 //for html
↘︎it works
Trial 2, with Json to vtt
$ vosk-transcriber -l en-us -i adventure.wav -t json -o adventure.json $ ../py_script/voskjson2vtt.py adventure.json adventure_words.vtt
Video subtitling
http://vimeo.com/1043091875
▲original
- first create vtt file (json if necessary), running python files.
- put them together on html
<video src="liberty-loop.mp4" controls style="width: 50%" > <track src="liberty-loop_words.vtt" kind="subtitles" srclang="en" label="English" default> </video>
-also can style the subtitle on either vtt file or html.
WEBVTT STYLE ::cue { color: yellow; background: rgba(0, 0, 0, 0.7); font-size: 20px; font-family: Arial, sans-serif; }
HTML CSS <style> video { } ::cue { color: yellow; background: rgba(0, 0, 0, 0.7); font-size: 20px; font-family: "Courier New", monospace; } </style>
↘︎ subtitle created(language detection in eng)
Command line
pwd outputs the name of the current working directory. ls lists all files and directories in the working directory. cd switches you into the directory you specify. mkdir creates a new directory in the working directory. touch creates a new file inside the working directory. cat show you immediately what's inside the file
Helper commands to make navigation easier:
clear clears the terminal tab autocompletes the name of a file or directory ↑ and ↓ allow you to cycle through previous commands ls -a lists all contents of a directory, including hidden files and directories ls -l lists all contents in long format ls -t orders files and directories by the time they were last modified Multiple options can be used together, like ls -alt
From the command line, you can also copy, move, and remove files and directories:
cp copies files mv moves and renames files rm removes files rm -r removes directories rm -rf adding -f removes all the files without having to confirm
Redirection + other commands are powerful when combined with redirection commands:
> redirects standard output of a command to a file, overwriting previous content. >> redirects standard output of a command to a file, appending new content to old content. < redirects standard input to a command. | redirects standard output of a command to another command.
sort sorts lines of text alphabetically. uniq filters duplicate, adjacent lines of text. grep searches for a text pattern and outputs it. sed searches for a text pattern, modifies it, and outputs it.