mirror of
https://github.com/tiyn/wiki.git
synced 2026-03-09 16:44:46 +01:00
Compare commits
25 Commits
89db295825
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| b6c6419ba9 | |||
| 63a7ada580 | |||
| 5be328f04e | |||
| 55e2798363 | |||
| 0b7874156a | |||
| b6e77adf69 | |||
| 4f8c819370 | |||
| 94aa933c17 | |||
| febc5d6532 | |||
| f9c5c5196a | |||
| 2d336a9a30 | |||
| dcb6698530 | |||
| 467b28c797 | |||
| 2af682fbc7 | |||
| 162781d14d | |||
| 803be69021 | |||
| 34d31024f2 | |||
| f3ea6e7f04 | |||
| cfcb0f24f6 | |||
| 383aa32c52 | |||
| e6ea6c6da1 | |||
| 39d169e975 | |||
| d783e77bb0 | |||
| 2ec7ecd262 | |||
| 5f59dbdc34 |
15
wiki/adobe_acrobat.md
Normal file
15
wiki/adobe_acrobat.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# Adobe Acrobat
|
||||
|
||||
[Adobe Acrobat](https://get.adobe.com/reader/) is a PDF reader developed and distributed by
|
||||
[Adobe](https://www.adobe.com/).
|
||||
It is free.
|
||||
|
||||
## Usage
|
||||
|
||||
This section addresses the usage of Adobe Acrobat.
|
||||
|
||||
### Adding Digital Signatures
|
||||
|
||||
In many office applications digital signatures are used that verify a user using a smart card.
|
||||
To digitally sign first select `All tools` and `Use a certificate`.
|
||||
Then select `Digitally sign` and follow further on-screen instruction.
|
||||
@@ -96,11 +96,15 @@ This app is available at [F-Droid](/wiki/android/f-droid.md) as
|
||||
[Google Play Store](#app-store) by the
|
||||
[same name](https://f-droid.org/de/packages/org.liberty.android.freeotpplus/).
|
||||
|
||||
### Custom ROMs
|
||||
### Android-based Operating Systems
|
||||
|
||||
Besides the stock-firmware of vendors there are also custom ROMs.
|
||||
Besides the stock-firmware of vendors there are also so called custom ROMs.
|
||||
These are alternative firmware variants made by third party providers.
|
||||
A well known custom ROM is [LineageOS](/wiki/android/lineageos.md).
|
||||
Well known custom ROMs [LineageOS](/wiki/android/lineageos.md) and
|
||||
[GrapheneOS](/wiki/android/grapheneos.md).
|
||||
|
||||
A general comparison of different operating systems based on Android can be found in a
|
||||
[table by eylenburg](https://eylenburg.github.io/android_comparison.htm).
|
||||
|
||||
It is possible that some custom ROMs require the user to
|
||||
[unlock the bootloader](#unlocking-the-bootloader) before the installation can happen.
|
||||
|
||||
32
wiki/android/grapheneos.md
Normal file
32
wiki/android/grapheneos.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# GrapheneOS
|
||||
|
||||
[GrapheneOS](https://grapheneos.org/) - or short Graphene - is a custom
|
||||
[Android](/wiki/android.md)-ROM and operating system for
|
||||
[Smartphones and Tablets](/wiki/smart_device.md#smartphones-and-tablet-computers) with mostly free
|
||||
and open-source software.
|
||||
|
||||
## Compatible Devices and Installation
|
||||
|
||||
Graphene is only available on specific devices that feature a maintained build of GrapheneOS.
|
||||
A list of compatible devices sorted by vendor can be found on the
|
||||
[official website](https://grapheneos.org/releases#devices).
|
||||
Note that currently only Google Pixel devices are supported.
|
||||
|
||||
## Usage
|
||||
|
||||
This section addresses the usage of GrapheneOS.
|
||||
|
||||
### Configuration
|
||||
|
||||
GrapheneOS features various settings and possibilities for configurations.
|
||||
A general overview of this was give in a
|
||||
[Reddit post by Tryptamine9](https://www.reddit.com/r/GrapheneOS/comments/18te8no/my_ride_through_grapheneos_what_works_and_guide/).
|
||||
Another recommendation on settings for GrapheneOS can be found in
|
||||
[a post by ventral digital](https://ventral.digital/posts/2024/12/9/practical-grapheneos-for-the-paranoid/).
|
||||
|
||||
### Backup
|
||||
|
||||
GrapheneOS features a built-in backup utility.
|
||||
It can be found in the settings under `System` and `Backup`.
|
||||
When enabled a recovery code made up by mutliple words have to be stored to be able to restore the
|
||||
backed up data.
|
||||
@@ -15,6 +15,11 @@ For voice based communication, social platforms or messengers navigate to the
|
||||
[section](/wiki/communication.md#social-platforms-messengers-and-voip-services).
|
||||
For headphones navigate to the [headphones article](/wiki/headphones.md):
|
||||
|
||||
## Speech Recognition and Synthesis
|
||||
|
||||
[Speech recognition and synthesis](/wiki/speech_recognition_and_synthesis.md) describe processes to
|
||||
understand and convert spoken language to text aswell as the reverse process.
|
||||
|
||||
## Technical Specifications
|
||||
|
||||
This section aswell as its subsections address all technical things about audio, like connections,
|
||||
@@ -128,6 +133,10 @@ Another option is to use [OpenAudible](/wiki/openaudible.md).
|
||||
This program features various functions to manage Audible audiobooks that include download,
|
||||
converting and splitting.
|
||||
|
||||
[SpotiFLAC](https://github.com/afkarxyz/SpotiFLAC) is a software that is able to download Spotify
|
||||
tracks, albums, artists and playlists as `.flac`-files from Tidal, Qobuz, Amazon Music and Deezer.
|
||||
An account on any of these services - or any account at all - is not required.
|
||||
|
||||
## Digitalizing and Analyzing Physical Mediums
|
||||
|
||||
This section focusses on physical audio mediums like CDs, their digitalization to a digital audio
|
||||
|
||||
@@ -25,9 +25,23 @@ A distinction can be made between
|
||||
Web interfaces for git are quite useful for easily showing code to other people.
|
||||
Additionally it is easy to collaborate together.
|
||||
|
||||
- [Gitea](gitea.md) is an open-source and selfhosted and can be dockerized.
|
||||
- [GitHub](https://github.com) is the go to system for many people. Not
|
||||
selfhosted, owned by microsoft ([cli-tool](https://github.com/github/hub)).
|
||||
- [Gitea](gitea.md) is an open-source and selfhosted git instance which can be dockerized.
|
||||
- [GitHub](https://github.com) is a popular git server.
|
||||
It is not selfhosted and owned by microsoft ([cli-tool](https://github.com/github/hub)).
|
||||
- [GitLab](https://gitlab.com) is a self-hostable git instance which also has a default version
|
||||
available via their website.
|
||||
|
||||
#### Git Apps
|
||||
|
||||
Depending on the [specific server](#server-with-web-interface) used there are many different apps
|
||||
that can be used.
|
||||
|
||||
- For [GitHub](https://github.com) there is app with the same name for
|
||||
[Android](/wiki/android.md) devices and iOS devices.
|
||||
- For [Gitea](/wiki/gitea.md) and Forgejo there is an app called [GitNex](https://gitnex.com) which
|
||||
is available for [Android](/wiki/android.md) devices.
|
||||
- For [GitLab](https://gitlab.com) there is an app called [LabNex](https://labnex.app) which is
|
||||
available for [Android](/wiki/android.md) devices.
|
||||
|
||||
#### Server without graphical interface
|
||||
|
||||
|
||||
@@ -55,6 +55,16 @@ hailo optimize --use-random-calib-set <path-to-har-model>
|
||||
hailo compiler <path-to-optimized-har-model>
|
||||
```
|
||||
|
||||
If a calibration data set is available the following command can be used to optimize the model using
|
||||
this data set.
|
||||
`<data-set>` is the path of the data set.
|
||||
This is a directory containing `.npy` files that store single data points (for example images) in
|
||||
the input format.
|
||||
|
||||
```sh
|
||||
hailo optimize --calib-set-path <data-set> <path-to-har-model>
|
||||
```
|
||||
|
||||
Note that the user in the Docker container usually uses anothr UID and GID.
|
||||
To make the volume and files accessible inside the container the IDs of the files in the volume
|
||||
should be changed accordingly - for example as shown in the following example.
|
||||
|
||||
21
wiki/linux/appimage.md
Normal file
21
wiki/linux/appimage.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# AppImage
|
||||
|
||||
[AppImage](https://appimage.org/) is a portable Linux application format that allows programs to
|
||||
run without being installed through a traditional package manager.
|
||||
|
||||
## Usage
|
||||
|
||||
This section addresses the usage of AppImage files.
|
||||
|
||||
### Running and Installing AppImage Files
|
||||
|
||||
This section is based on an
|
||||
[article by Sujit Kumar](https://dev.to/sujit-shrc/install-appimages-on-arch-based-linux-lm2).
|
||||
|
||||
AppImages are executed directly as standalone binaries.
|
||||
To start an application make the AppImage executable using the following command.
|
||||
`<appimage-path>` is the path to the AppImage file.
|
||||
|
||||
```sh
|
||||
chmod +x <appimage-path>
|
||||
```
|
||||
@@ -1,271 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="pandoc" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||
<title>bluez</title>
|
||||
<style>
|
||||
/* Default styles provided by pandoc.
|
||||
** See https://pandoc.org/MANUAL.html#variables-for-html for config info.
|
||||
*/
|
||||
html {
|
||||
color: #1a1a1a;
|
||||
background-color: #fdfdfd;
|
||||
}
|
||||
body {
|
||||
margin: 0 auto;
|
||||
max-width: 36em;
|
||||
padding-left: 50px;
|
||||
padding-right: 50px;
|
||||
padding-top: 50px;
|
||||
padding-bottom: 50px;
|
||||
hyphens: auto;
|
||||
overflow-wrap: break-word;
|
||||
text-rendering: optimizeLegibility;
|
||||
font-kerning: normal;
|
||||
}
|
||||
@media (max-width: 600px) {
|
||||
body {
|
||||
font-size: 0.9em;
|
||||
padding: 12px;
|
||||
}
|
||||
h1 {
|
||||
font-size: 1.8em;
|
||||
}
|
||||
}
|
||||
@media print {
|
||||
html {
|
||||
background-color: white;
|
||||
}
|
||||
body {
|
||||
background-color: transparent;
|
||||
color: black;
|
||||
font-size: 12pt;
|
||||
}
|
||||
p, h2, h3 {
|
||||
orphans: 3;
|
||||
widows: 3;
|
||||
}
|
||||
h2, h3, h4 {
|
||||
page-break-after: avoid;
|
||||
}
|
||||
}
|
||||
p {
|
||||
margin: 1em 0;
|
||||
}
|
||||
a {
|
||||
color: #1a1a1a;
|
||||
}
|
||||
a:visited {
|
||||
color: #1a1a1a;
|
||||
}
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
svg {
|
||||
height: auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
margin-top: 1.4em;
|
||||
}
|
||||
h5, h6 {
|
||||
font-size: 1em;
|
||||
font-style: italic;
|
||||
}
|
||||
h6 {
|
||||
font-weight: normal;
|
||||
}
|
||||
ol, ul {
|
||||
padding-left: 1.7em;
|
||||
margin-top: 1em;
|
||||
}
|
||||
li > ol, li > ul {
|
||||
margin-top: 0;
|
||||
}
|
||||
blockquote {
|
||||
margin: 1em 0 1em 1.7em;
|
||||
padding-left: 1em;
|
||||
border-left: 2px solid #e6e6e6;
|
||||
color: #606060;
|
||||
}
|
||||
code {
|
||||
font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
|
||||
font-size: 85%;
|
||||
margin: 0;
|
||||
hyphens: manual;
|
||||
}
|
||||
pre {
|
||||
margin: 1em 0;
|
||||
overflow: auto;
|
||||
}
|
||||
pre code {
|
||||
padding: 0;
|
||||
overflow: visible;
|
||||
overflow-wrap: normal;
|
||||
}
|
||||
.sourceCode {
|
||||
background-color: transparent;
|
||||
overflow: visible;
|
||||
}
|
||||
hr {
|
||||
border: none;
|
||||
border-top: 1px solid #1a1a1a;
|
||||
height: 1px;
|
||||
margin: 1em 0;
|
||||
}
|
||||
table {
|
||||
margin: 1em 0;
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
overflow-x: auto;
|
||||
display: block;
|
||||
font-variant-numeric: lining-nums tabular-nums;
|
||||
}
|
||||
table caption {
|
||||
margin-bottom: 0.75em;
|
||||
}
|
||||
tbody {
|
||||
margin-top: 0.5em;
|
||||
border-top: 1px solid #1a1a1a;
|
||||
border-bottom: 1px solid #1a1a1a;
|
||||
}
|
||||
th {
|
||||
border-top: 1px solid #1a1a1a;
|
||||
padding: 0.25em 0.5em 0.25em 0.5em;
|
||||
}
|
||||
td {
|
||||
padding: 0.125em 0.5em 0.25em 0.5em;
|
||||
}
|
||||
header {
|
||||
margin-bottom: 4em;
|
||||
text-align: center;
|
||||
}
|
||||
#TOC li {
|
||||
list-style: none;
|
||||
}
|
||||
#TOC ul {
|
||||
padding-left: 1.3em;
|
||||
}
|
||||
#TOC > ul {
|
||||
padding-left: 0;
|
||||
}
|
||||
#TOC a:not(:hover) {
|
||||
text-decoration: none;
|
||||
}
|
||||
code{white-space: pre-wrap;}
|
||||
span.smallcaps{font-variant: small-caps;}
|
||||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||
div.column{flex: auto; overflow-x: auto;}
|
||||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||
/* The extra [class] is a hack that increases specificity enough to
|
||||
override a similar rule in reveal.js */
|
||||
ul.task-list[class]{list-style: none;}
|
||||
ul.task-list li input[type="checkbox"] {
|
||||
font-size: inherit;
|
||||
width: 0.8em;
|
||||
margin: 0 0.8em 0.2em -1.6em;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
|
||||
/* CSS for syntax highlighting */
|
||||
html { -webkit-text-size-adjust: 100%; }
|
||||
pre > code.sourceCode { white-space: pre; position: relative; }
|
||||
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
|
||||
pre > code.sourceCode > span:empty { height: 1.2em; }
|
||||
.sourceCode { overflow: visible; }
|
||||
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
||||
div.sourceCode { margin: 1em 0; }
|
||||
pre.sourceCode { margin: 0; }
|
||||
@media screen {
|
||||
div.sourceCode { overflow: auto; }
|
||||
}
|
||||
@media print {
|
||||
pre > code.sourceCode { white-space: pre-wrap; }
|
||||
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
|
||||
}
|
||||
pre.numberSource code
|
||||
{ counter-reset: source-line 0; }
|
||||
pre.numberSource code > span
|
||||
{ position: relative; left: -4em; counter-increment: source-line; }
|
||||
pre.numberSource code > span > a:first-child::before
|
||||
{ content: counter(source-line);
|
||||
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
||||
border: none; display: inline-block;
|
||||
-webkit-touch-callout: none; -webkit-user-select: none;
|
||||
-khtml-user-select: none; -moz-user-select: none;
|
||||
-ms-user-select: none; user-select: none;
|
||||
padding: 0 4px; width: 4em;
|
||||
color: #aaaaaa;
|
||||
}
|
||||
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
|
||||
div.sourceCode
|
||||
{ }
|
||||
@media screen {
|
||||
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
||||
}
|
||||
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
|
||||
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
|
||||
code span.at { color: #7d9029; } /* Attribute */
|
||||
code span.bn { color: #40a070; } /* BaseN */
|
||||
code span.bu { color: #008000; } /* BuiltIn */
|
||||
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
|
||||
code span.ch { color: #4070a0; } /* Char */
|
||||
code span.cn { color: #880000; } /* Constant */
|
||||
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
|
||||
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
|
||||
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
|
||||
code span.dt { color: #902000; } /* DataType */
|
||||
code span.dv { color: #40a070; } /* DecVal */
|
||||
code span.er { color: #ff0000; font-weight: bold; } /* Error */
|
||||
code span.ex { } /* Extension */
|
||||
code span.fl { color: #40a070; } /* Float */
|
||||
code span.fu { color: #06287e; } /* Function */
|
||||
code span.im { color: #008000; font-weight: bold; } /* Import */
|
||||
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
|
||||
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
|
||||
code span.op { color: #666666; } /* Operator */
|
||||
code span.ot { color: #007020; } /* Other */
|
||||
code span.pp { color: #bc7a00; } /* Preprocessor */
|
||||
code span.sc { color: #4070a0; } /* SpecialChar */
|
||||
code span.ss { color: #bb6688; } /* SpecialString */
|
||||
code span.st { color: #4070a0; } /* String */
|
||||
code span.va { color: #19177c; } /* Variable */
|
||||
code span.vs { color: #4070a0; } /* VerbatimString */
|
||||
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1 id="bluez">BlueZ</h1>
|
||||
<p><a href="http://www.bluez.org/">BlueZ</a> is an implementation of the
|
||||
<a href="/wiki/bluetooth.md">Bluetooth</a> standard. This entry features
|
||||
the BlueZ package and all software that is based on it.</p>
|
||||
<h2 id="setup">Setup</h2>
|
||||
<p>On most <a href="/wiki/linux.md">Linux</a> distributions BlueZ can be
|
||||
installed with the <code>bluez</code> package. Additionally the
|
||||
<code>bluez-utils</code> package needs to be installed. To load the
|
||||
kernel module <code>modprobe btusb</code> needs to be run. Afterwards
|
||||
the <a
|
||||
href="/wiki/linux/systemd.md#startstopenabledisable-a-service">service</a>
|
||||
can be started and enabled by running the following commands.</p>
|
||||
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="ex">systemctl</span> start bluetooth.service</span>
|
||||
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a><span class="ex">systemctl</span> enable bluetooth.service</span></code></pre></div>
|
||||
<h2 id="usage">Usage</h2>
|
||||
<p>The Bluetooth features can be managed by different types of
|
||||
front-ends.</p>
|
||||
<ul>
|
||||
<li><code>bluetoothctl</code> is a command-line interface included in
|
||||
the <code>bluez-utils</code> package</li>
|
||||
<li><code>bluetuith</code> can be used as a bluetooth manager with a <a
|
||||
href="/wiki/linux/system_console.md">terminal</a> user interface. It is
|
||||
included in a package of the same name, that needs to be installed
|
||||
before usage. Using <code>bluetuith</code> the <a
|
||||
href="/wiki/bluetooth.md">Bluetooth</a> can be turned on (or off) by
|
||||
pressing <code>o</code>, devices can be searched for by pressing
|
||||
<code>s</code>, a selected device can be paired by pressing
|
||||
<code>p</code> and finally connected by pressing <code>c</code> before
|
||||
<code>bluetuith</code> can be left with <code>Q</code>.</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,15 +1,12 @@
|
||||
# Easyeffects
|
||||
|
||||
[Easyeffects](https://github.com/wwmm/easyeffects) is a free and open-source
|
||||
GUI-software for applying sound effects and filters on input and output audio
|
||||
streams.
|
||||
Easyeffects uses [Pipewire](./pipewire.md) as
|
||||
[sound server](/wiki/linux/audio.md#sound-server).
|
||||
[Easyeffects](https://github.com/wwmm/easyeffects) is a free and open-source GUI-software for
|
||||
applying sound effects and filters on input and output audio streams.
|
||||
Easyeffects uses [Pipewire](./pipewire.md) as [sound server](/wiki/linux/audio.md#sound-server).
|
||||
|
||||
## Setup
|
||||
|
||||
Easyeffects can be installed on most distributions by installing the
|
||||
`easyeffects` package.
|
||||
Easyeffects can be installed on most distributions by installing the `easyeffects` package.
|
||||
An installation via [Flatpak](./flatpak.md) is also possible.
|
||||
|
||||
## Usage
|
||||
@@ -19,27 +16,29 @@ Easyeffects can apply `Effects` to input and output sound.
|
||||
### Noise cancellation
|
||||
|
||||
Setup
|
||||
Noise cancellation can be achieved by installing
|
||||
Easyeffects.
|
||||
Make sure to check the box `Process all Inputs` and `Process all Outputs` to
|
||||
route everything through `easyeffects`.
|
||||
Noise cancellation can be achieved by installing Easyeffects.
|
||||
Make sure to check the box `Process all Inputs` and `Process all Outputs` to route everything
|
||||
through `easyeffects`.
|
||||
Make log out of your system afterwards.
|
||||
To enable noise cancellation navigate `Inputs` and click `Plugins`.
|
||||
After that click `Add Plugin` and select `Noise Reduction`.
|
||||
|
||||
An alternative way to achieve noise cancellation is using the the `Deep Noise Remover` plugin.
|
||||
There is a
|
||||
[guide by Adam Gradzki](https://adamgradzki.com/adding-deepfilternet-noise-reduction-to-easy-effects-on-arch-linux.html)
|
||||
which describes the setup.
|
||||
|
||||
### Presets
|
||||
|
||||
Presets can be created by selecting `Presets`, setting the name and clicking the
|
||||
`+` to save it.
|
||||
Presets can be created by selecting `Presets`, setting the name and clicking the `+` to save it.
|
||||
It is then displayed in the list below from where it can be loaded or deleted.
|
||||
Presets are saved in the directory `~/.config/easyeffects/input` and
|
||||
`~/.config/easyeffects/output`.
|
||||
|
||||
#### Recommended Presets
|
||||
|
||||
The following is a list of presets that have been tested and only need slight
|
||||
configuration to adjust them to the specific system.
|
||||
The following is a list of presets that have been tested and only need slight configuration to
|
||||
adjust them to the specific system.
|
||||
|
||||
- [tiyns voice input preset](https://github.com/tiyn/dotfiles/blob/master/.config/easyeffects/input/voice.json)
|
||||
is a list of different effects to achieve an enhanced quality of microphone
|
||||
sound for speach.
|
||||
is a list of different effects to achieve an enhanced quality of microphone sound for speach.
|
||||
|
||||
126
wiki/linux/fingerprint_reader.md
Normal file
126
wiki/linux/fingerprint_reader.md
Normal file
@@ -0,0 +1,126 @@
|
||||
# Fingerprint Reader
|
||||
|
||||
Fingerprint readers can be used for local authentication on
|
||||
[Linux](/wiki/linux.md) systems.
|
||||
|
||||
## Setup
|
||||
|
||||
Support for most fingerprint reader devices is provided by the `libfprint` library and the
|
||||
`fprintd` daemon, which in turn need to be installed.
|
||||
Many [Linux](/wiki/linux.md) distributions package both components directly under this name.
|
||||
|
||||
After installation restart the daemon.
|
||||
|
||||
```sh
|
||||
sudo systemctl restart fprintd
|
||||
```
|
||||
|
||||
By default enrolling fingerprints may require administrative privileges.
|
||||
This can be changed using a `polkit` rule that allows members of the `wheel` group to enroll
|
||||
fingerprints without using `sudo`.
|
||||
|
||||
Create the file `/etc/polkit-1/rules.d/49-fprint.rules`.
|
||||
|
||||
```sh
|
||||
sudo vim /etc/polkit-1/rules.d/49-fprint.rules
|
||||
```
|
||||
|
||||
Insert the following rule.
|
||||
|
||||
```txt
|
||||
polkit.addRule(function(action, subject) {
|
||||
if (action.id == "net.reactivated.fprint.device.enroll" &&
|
||||
subject.isInGroup("wheel")) {
|
||||
return polkit.Result.YES;
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
This section addresses the usage of fingerprint readers.
|
||||
|
||||
### Enrolling a Fingerprint
|
||||
|
||||
A fingerprint can be registered using the following command.
|
||||
|
||||
```sh
|
||||
fprintd-enroll
|
||||
```
|
||||
|
||||
The program will repeatedly ask to place a finger on the reader until the fingerprint has been
|
||||
successfully recorded.
|
||||
|
||||
### Listing Stored Fingerprints
|
||||
|
||||
Stored fingerprints of the current user can be displayed with the following command.
|
||||
`<user>` describes the username to list fingerprints for.
|
||||
|
||||
```sh
|
||||
fprintd-list <user>
|
||||
```
|
||||
|
||||
Fingerprints of other users can be inspected using administrative privileges.
|
||||
|
||||
```sh
|
||||
sudo fprintd-list root
|
||||
```
|
||||
|
||||
### Removing Fingerprints
|
||||
|
||||
Fingerprints can be deleted using `fprintd-delete`.
|
||||
The following displays the removal of a finger called `<finger>` (for example `right-index-finger`)
|
||||
for a user called `<user>`.
|
||||
|
||||
```sh
|
||||
sudo fprintd-delete <user> <finger>
|
||||
```
|
||||
|
||||
### Using Fingerprints with `sudo`
|
||||
|
||||
Fingerprint authentication can be used with `sudo` through PAM.
|
||||
|
||||
Edit the configuration file.
|
||||
|
||||
```sh
|
||||
sudo vim /etc/pam.d/sudo
|
||||
```
|
||||
|
||||
Add the following line near the top of the file.
|
||||
The line should be placed near the top of the file so that fingerprint authentication is attempted
|
||||
before password authentication.
|
||||
|
||||
```txt
|
||||
auth sufficient pam_fprintd.so
|
||||
```
|
||||
|
||||
With this configuration the fingerprint reader can be used for `sudo` authentication while the
|
||||
password remains available as a fallback.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
This section will focus on errors and the fixing of errors of fingerprint readers.
|
||||
|
||||
### Permission denied when enrolling fingerprints
|
||||
|
||||
When attempting to enroll a fingerprint the following error may occur:
|
||||
|
||||
```txt
|
||||
EnrollStart failed: GDBus.Error:net.reactivated.Fprint.Error.PermissionDenied:
|
||||
Not Authorized: net.reactivated.fprint.device.enroll
|
||||
```
|
||||
|
||||
In this case `fprintd` requires elevated privileges to enroll fingerprints.
|
||||
|
||||
The issue can be solved by creating a `polkit` rule which allows members of the `wheel` group to
|
||||
enroll fingerprints.
|
||||
|
||||
In this case the polkit rule `/etc/polkit-1/rules.d/49-fprint.rules` most likely was not set as
|
||||
described in the [setup section](#setup).
|
||||
|
||||
After adding the rule the error should vanish.
|
||||
The rule fingerprint enrollment can then be executed without `sudo`.
|
||||
|
||||
```sh
|
||||
fprintd-enroll
|
||||
```
|
||||
@@ -28,6 +28,58 @@ There is also an interactive
|
||||
Robertson also made guides on [post production](https://github.com/SethRobertson/GitPostProduction)
|
||||
and [best practices](http://sethrobertson.github.io/GitBestPractices).
|
||||
|
||||
### Modify a Commit Already Done
|
||||
|
||||
In Git it is possible to alter a commit.
|
||||
This can be done by using the `--amend` flag in the `commit` option.
|
||||
Together with the `--no-edit` flag it will create a new commit that will replace the old one with
|
||||
the same message and the newly changed files.
|
||||
This command will look like the following.
|
||||
|
||||
```sh
|
||||
git commit --amend --no-edit
|
||||
```
|
||||
|
||||
A graphic that visualizes the way amending works was made by
|
||||
[jubb0bs in a Stackoverflow comment](https://stackoverflow.com/questions/26050327/how-does-git-commit-amend-work-exactly).
|
||||
|
||||
After amending a normal `git push` will not work as a commit was removed.
|
||||
In this case to [push it has to be done forcefully](#force-pushing).
|
||||
|
||||
### Force Pushing
|
||||
|
||||
Force pushing in Git allows you to overwrite the history of a remote branch.
|
||||
Using the following command replaces the remote branch with your local state, even if other commits
|
||||
have been pushed in the meantime, which can in turn permanently remove these commits.
|
||||
|
||||
```sh
|
||||
git push --force
|
||||
```
|
||||
|
||||
Using the force command with the `--force-with-lease` flag, as shown in the following command,
|
||||
performs a safety check before overwriting.
|
||||
It only proceeds if the remote branch is still in the expected state and rejects the push
|
||||
otherwise.
|
||||
Most of the time, especially when using shared branches, this is generally considered the safer and
|
||||
preferred option.
|
||||
|
||||
```sh
|
||||
git push --force-with-lease
|
||||
```
|
||||
|
||||
### Visualize Commit Graph
|
||||
|
||||
The commit history of a Git repository can best be visualized using a graph.
|
||||
This can be done by using the default `git` command as the following command shows.
|
||||
|
||||
```sh
|
||||
git log --graph
|
||||
```
|
||||
|
||||
This however is a bit hard to read.
|
||||
Therefore other tools have been created, that display the graph a bit more intuitively.
|
||||
One of this tools is called [keifu](https://github.com/trasta298/keifu).
|
||||
|
||||
### Ignore files having local changes
|
||||
|
||||
If you need to make changes to a file that are local you can run
|
||||
@@ -141,3 +193,20 @@ git config --global color.diff.old "red bold"
|
||||
git config --global color.diff.new "green bold"
|
||||
git config --global color.diff.whitespace "red reverse"
|
||||
```
|
||||
|
||||
### Save HTTPS Credentials
|
||||
|
||||
The credentials used for HTTPS authorization can be saved with the following command.
|
||||
|
||||
```sh
|
||||
git config --global credential.helper store
|
||||
```
|
||||
|
||||
They can also be cached with the following command.
|
||||
|
||||
```sh
|
||||
git config --global credential.helper cache
|
||||
```
|
||||
|
||||
Both of these commands work globally.
|
||||
For local storing or caching of credentials the commands have to be adapted.
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# Hardware (Linux)
|
||||
|
||||
This entry focusses on various hardware components of a [Linux](/wiki/linux.md) desktop PC or a
|
||||
This entry focuses on various hardware components of a [Linux](/wiki/linux.md) desktop PC or a
|
||||
laptop.
|
||||
For non-Linux specific or general topics in hardware see the
|
||||
[correspoding entry](/wiki/hardware_%28general%29.md)
|
||||
[corresponding entry](/wiki/hardware_%28general%29.md)
|
||||
|
||||
## Battery
|
||||
|
||||
@@ -11,22 +11,22 @@ The battery of a notebook can be inspected by using the `upower` command.
|
||||
To use it the tool needs to be installed.
|
||||
In most [Linux](/wiki/linux.md) distributions this is bundled in a package of the same name.
|
||||
|
||||
This section is based on [a video by eKiwi](https://youtu.be/t9KMFDTb79E) which addresses battery
|
||||
health.
|
||||
This section is based on [a YouTube video by the user eKiwi](https://youtu.be/t9KMFDTb79E) which
|
||||
addresses battery health.
|
||||
|
||||
To find out about a battery, its name needs to be known, which can be done using the following
|
||||
To find out about a battery, its name needs to be known which can be done using the following
|
||||
command.
|
||||
|
||||
```sh
|
||||
upower -e
|
||||
```
|
||||
|
||||
Afterwards different values like the state, voltage, percentage and many other can be displayed.
|
||||
Additionally it will show the original capacity (`energy-full-design`) and the current capacity
|
||||
Afterward different values like the state, voltage, percentage and much other can be displayed.
|
||||
Additionally, it will show the original capacity (`energy-full-design`) and the current capacity
|
||||
(`energy-full`), which can be used to determine the health of the battery.
|
||||
The following is an example command where `<battery-name>` is the name of the batter returned from
|
||||
the previous step.
|
||||
This might by similar to `/org/freedesktop/UPower/devices/battery_BAT0`.
|
||||
This might be similar to `/org/freedesktop/UPower/devices/battery_BAT0`.
|
||||
|
||||
```sh
|
||||
upower -i <battery-name>
|
||||
@@ -62,7 +62,7 @@ like the RPM for fans.
|
||||
This section is based on a
|
||||
[Reddit comment by zedbraxmen](https://www.reddit.com/r/thinkpad/comments/wjb8qz/configuring_trackpoint_in_wayland/).
|
||||
|
||||
The sensitivity and speed of the classic trackpoint on ThinkPads can be changed using UDEV rules.
|
||||
The sensitivity and speed of the classic TrackPoint on ThinkPads can be changed using UDEV rules.
|
||||
The following lines are an example for a potential file `.rules` located at `/etc/udev/rules.d/`.
|
||||
It could look something like the following.
|
||||
The values for sensitivity and speed could be adjusted.
|
||||
@@ -74,3 +74,10 @@ ATTR{name}=="TPPS/2 IBM TrackPoint",
|
||||
ATTR{device/sensitivity}="275",
|
||||
ATTR{device/speed}="215",
|
||||
```
|
||||
|
||||
## Fingerprint Readers
|
||||
|
||||
Many modern laptops include fingerprint sensors which can be used for authentication on
|
||||
[Linux](/wiki/linux.md).
|
||||
Setup and usage is described in the
|
||||
[entry regarding fingerprint reader](/wiki/linux/fingerprint_reader.md).
|
||||
|
||||
@@ -19,7 +19,7 @@ After installation `networkmanager.service` has to be enabled by the used
|
||||
[init-system](/wiki/linux/init.md) (for example
|
||||
[systemD](/wiki/linux/systemd.md#startstopenabledisable-a-service)).
|
||||
|
||||
### OpenVPN
|
||||
### OpenVPN Integration
|
||||
|
||||
NetworkManager needs a plugin to work with openvpn configurations.
|
||||
This plugin can be installed with the `networkmanager-openvpn` package.
|
||||
@@ -28,6 +28,14 @@ OpenVPNs `.ovpn` files can then be imported by running
|
||||
`nmcli connection import type openvpn file <openvpn-file>`.
|
||||
Afterwards they can be modified accordingly.
|
||||
|
||||
### Prioritize Connections
|
||||
|
||||
Connections can be prioritized making NetworkManager chose specific ones over others.
|
||||
This can be done using `nm-connection-editor`.
|
||||
Select the connection and navigate to `General`.
|
||||
Then set the priority under `Connect automaticcally with priority` where `0` is the highest
|
||||
priority, `1` being the next highest and so on.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
This section focusses on the troubleshooting of situations where the system does not connect
|
||||
|
||||
@@ -41,8 +41,9 @@ drivers are not compatible with Pascal GPUs anymore as explained in
|
||||
This is due to the drop of support for these cards from Nvidias site.
|
||||
If Pascal-GPUs are still used some minor changes need to be performed and some packets need to be
|
||||
replaced.
|
||||
On Arch Linux-based systems this can be achieved by replacing the packages `nvidia-open` and
|
||||
`nvidia-open-utils` with `nvidia-580xx-dkms`, `nvidia-580xx-utils` and `lib32-nvidia-580xx-utils`.
|
||||
On Arch Linux-based systems this can be achieved by replacing the packages `lib32-nvidia-utils`,
|
||||
`nvidia-open` and `nvidia-open-utils` with `nvidia-580xx-dkms`, `nvidia-580xx-utils` and
|
||||
`lib32-nvidia-580xx-utils`.
|
||||
If upgrading from a Pascal-GPU to a newer version this change needs to be undone.
|
||||
|
||||
After the packages are changed it is important to
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
# Package Manager
|
||||
|
||||
Package managers are important programs to get software onto your system.
|
||||
Package managers are used to handle the installation and management of programs on systems.
|
||||
|
||||
## List of Package Managers
|
||||
|
||||
The following is a list of package managers and the corresponding [Linux](/wiki/linux.md)
|
||||
distributions.
|
||||
@@ -9,4 +11,14 @@ distributions.
|
||||
[Proxmox](/wiki/linux/proxmox.md) use the [APT](/wiki/linux/package_manager/apt.md) package
|
||||
manager.
|
||||
- [Arch Linux](/wiki/linux/arch-linux.md) and Arch-based distributions use
|
||||
[Pacman]() and various managers for the AUR.
|
||||
[Pacman](/wiki/linux/package_manager/pacman_and_aur.md) and various managers for the AUR.
|
||||
|
||||
## Alternative Software Distribution Formats
|
||||
|
||||
Besides traditional package managers, there are portable or universal application formats that work
|
||||
across distributions.
|
||||
These formats are not package managers.
|
||||
They distribute standalone applications that can run independently of the system package database.
|
||||
|
||||
- [AppImage](/wiki/linux/appimage.md)
|
||||
- [Flatpak](/wiki/linux/flatpak.md)
|
||||
|
||||
@@ -314,8 +314,8 @@ This section is based on a
|
||||
|
||||
In this case the error stems from a missing package.
|
||||
Normally it can easily be fixed by installing that corresponding package.
|
||||
But please note that [pyenv](/wiki/programming_language/golang.md#setup) can hide packages if the
|
||||
global Python version is set to something other than `system`.
|
||||
But please note that [pyenv](/wiki/programming_language/python.md#pyenv-installation) can hide
|
||||
packages if the global Python version is set to something other than `system`.
|
||||
This is especially the case on [Arch Linux-systems](/wiki/linux/arch-linux.md) because Python
|
||||
packages are also installed via [Pacman or Yay](#arch-linux-pacman-and-yay).
|
||||
In this case the global Version has to be changed to `system` or the package installed to the
|
||||
|
||||
@@ -194,3 +194,16 @@ Find them with `find /etc -change '*eth0*'` and move them to the new name.
|
||||
After that `reboot` and the internet should be up again.
|
||||
(sources: [debian website](https://wiki.debian.org/NetworkInterfaceNames) and
|
||||
[proxmox forum](https://forum.proxmox.com/threads/upgrade-motherboard-reinstall.48630))
|
||||
|
||||
### Balooning RAM and Resulting Problems
|
||||
|
||||
When using a balooning device for RAM error messages - for example by [Docker](/wiki/docker.md) can
|
||||
be hidden.
|
||||
It is then more difficult to find the out-of-memory error that makes a program crash.
|
||||
Problems with balooning RAM can be found using the following command.
|
||||
|
||||
```sh
|
||||
journalctl -k
|
||||
```
|
||||
|
||||
A typical error message for this type of issue is `Out of puff!`.
|
||||
|
||||
18
wiki/programming_language.md
Normal file
18
wiki/programming_language.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# Programming Language
|
||||
|
||||
A programming language is a language for expressing computer programs.
|
||||
|
||||
## List of Programming Languages
|
||||
|
||||
The following is a list of programming languages that are featured in this wiki.
|
||||
|
||||
- [C](/wiki/programming_language/c.md)
|
||||
- [Go](/wiki/programming_language/go.md)
|
||||
- [Nim](/wiki/programming_language/nim.md)
|
||||
- [Python](/wiki/programming_language/python.md)
|
||||
- [Rocq](/wiki/programming_language/rocq.md)
|
||||
- [Rust](/wiki/programming_language/rust.md)
|
||||
- [VHDL](/wiki/programming_language/vhdl.md)
|
||||
- [Viper](/wiki/programming_language/viper.md)
|
||||
<!-- TODO: add short sentences -->
|
||||
<!-- TODO: add SHELL script? -->
|
||||
@@ -174,21 +174,20 @@ This section addresses the [PyTorch module](https://pytorch.org/).
|
||||
Pytorch is a machine learning resource which is often used for
|
||||
[neural networks](/wiki/neural_network.md).
|
||||
|
||||
#### Setup Pytorch with Cuda for GPU usage
|
||||
#### Setup Pytorch with CUDA for GPU usage
|
||||
|
||||
Please note that according to
|
||||
[various sources](https://www.reddit.com/r/archlinux/comments/1nxipcu/nvidia_pascal/gpu_not_supporting_cuda_13_can_i)
|
||||
Cuda 13 does not support nVidia Pascal GPUs.
|
||||
In this case an earlier version of Cuda has to be used.
|
||||
CUDA is also only available for Nvidia GPUs.
|
||||
For AMD GPUs refer to [the ROCm section](#setup-pytorch-with-rocm-for-gpu-usage).
|
||||
|
||||
If you are on Arch Linux or a distribution based on it install
|
||||
`python-pytorch-cuda` via `pacman -S python-pytorch-cuda`.
|
||||
|
||||
After that visit
|
||||
[the official pytorch website](https://pytorch.org/get-started/locally/) and
|
||||
install pytorch for your custom configuration.
|
||||
[the official PyTorch website](https://pytorch.org/get-started/locally) and
|
||||
install PyTorch for your custom configuration.
|
||||
|
||||
After that try to run the following python script:
|
||||
After that try to run the following python script.
|
||||
This should give back `True` if the setup was successful and the GPU is available.
|
||||
|
||||
```python
|
||||
import torch
|
||||
@@ -196,7 +195,66 @@ import torch
|
||||
torch.cuda.is_available()
|
||||
```
|
||||
|
||||
This should give back `True`.
|
||||
Please note that according to
|
||||
[various sources](https://www.reddit.com/r/archlinux/comments/1nxipcu/nvidia_pascal/gpu_not_supporting_cuda_13_can_i)
|
||||
CUDA 13 does not support nVidia Pascal GPUs.
|
||||
In this case an earlier version of CUDA has to be used.
|
||||
|
||||
#### Setup PyTorch with ROCm for GPU usage
|
||||
|
||||
ROCm is also only available for AMD GPUs.
|
||||
For Nvidia GPUs refer to [the CUDA section](#setup-pytorch-with-cuda-for-gpu-usage).
|
||||
|
||||
For ROCm to work some system packages have to be installed.
|
||||
For Linux refer to the
|
||||
[official Linux guide](https://rocm.docs.amd.com/projects/radeon-ryzen/en/latest/docs/install/installrad/native_linux/install-radeon.html).
|
||||
For [Arch Linux](/wiki/linux/arch-linux.md) although it is not listed the required
|
||||
[AUR packages](/wiki/linux/package_manager.md) include `rocm-core`, `rocminfo`, `roctracer` and
|
||||
`rccl`.
|
||||
For Windows refer to the
|
||||
[official Windows guide](https://rocm.docs.amd.com/projects/radeon-ryzen/en/latest/docs/install/installrad/windows/howto_windows.html).
|
||||
|
||||
After the systemwide setup the project environment can be setup.
|
||||
It is recommended to use [virtual environments](#using-virtual-environments).
|
||||
The easiest way to achieve ROCm support is by using [pip](#modules).
|
||||
As explained in the
|
||||
[official PyTorch guide](https://rocm.docs.amd.com/projects/radeon-ryzen/en/latest/docs/install/installrad/native_linux/install-pytorch.html)
|
||||
the following example can be used inside the environment to install all needed ROCm packages.
|
||||
In this example the version `7.2` is installed.
|
||||
Adjustments to the command may have to be done in case another version should be installed.
|
||||
|
||||
```sh
|
||||
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torch-2.9.1%2Brocm7.2.0.lw.git7e1940d4-cp312-cp312-linux_x86_64.whl
|
||||
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torchvision-0.24.0%2Brocm7.2.0.gitb919bd0c-cp312-cp312-linux_x86_64.whl
|
||||
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/triton-3.5.1%2Brocm7.2.0.gita272dfa8-cp312-cp312-linux_x86_64.whl
|
||||
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torchaudio-2.9.0%2Brocm7.2.0.gite3c6ee2b-cp312-cp312-linux_x86_64.whl
|
||||
pip install \
|
||||
torch-2.9.1+rocm7.2.0.lw.git7e1940d4-cp312-cp312-linux_x86_64.whl \
|
||||
torchvision-0.24.0+rocm7.2.0.gitb919bd0c-cp312-cp312-linux_x86_64.whl \
|
||||
torchaudio-2.9.0+rocm7.2.0.gite3c6ee2b-cp312-cp312-linux_x86_64.whl \
|
||||
triton-3.5.1+rocm7.2.0.gita272dfa8-cp312-cp312-linux_x86_64.whl
|
||||
```
|
||||
|
||||
If old versions of `torch`, `torchvision`, `torchaudio` or `triton` are installed inside the
|
||||
environment they may need to be removed.
|
||||
|
||||
After this installation for some GPUs - especially integrated GPUs like the Radeon 660M - an
|
||||
additional step has to be taken.
|
||||
In this case the following global shell variable has to be set.
|
||||
|
||||
```sh
|
||||
export HSA_OVERRIDE_GFX_VERSION=10.3.0
|
||||
```
|
||||
|
||||
After that try to run the following python script.
|
||||
Since ROCm uses a bridge to access CUDA it should give back `True` if the setup was successful and
|
||||
the GPU is available.
|
||||
|
||||
```python
|
||||
import torch
|
||||
|
||||
torch.cuda.is_available()
|
||||
```
|
||||
|
||||
### Hailo
|
||||
|
||||
|
||||
75
wiki/programming_language/rocq.md
Normal file
75
wiki/programming_language/rocq.md
Normal file
@@ -0,0 +1,75 @@
|
||||
# Rocq
|
||||
|
||||
[Rocq](https://rocq-prover.org/) is an interactive theorem prover.
|
||||
It was formerly known as Coq.
|
||||
|
||||
## Setup
|
||||
|
||||
Rocq can be installed as explained on [the official website](https://rocq-prover.org/install).
|
||||
|
||||
The easiest way to install Rocq is by using Opam due to it also being able to manage packages for
|
||||
Rocq.
|
||||
Opam needs to be installed for this.
|
||||
On most [Linux-based Systems](/wiki/linux.md) the [package manager](/wiki/linux/package_manager.md)
|
||||
contains a package called `opam`.
|
||||
If Opam was not initialized before, do it using the following commands.
|
||||
The command may ask to edit the config file for the shell.
|
||||
This is needed to function correctly.
|
||||
|
||||
```sh
|
||||
opam init
|
||||
eval $(opam env)
|
||||
```
|
||||
|
||||
Then Rocq can be installed using the following command.
|
||||
`<version>` has to be set to the desired version to install (for example `9.0.0`).
|
||||
|
||||
```sh
|
||||
opam pin add rocq-prover <version>
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
This section addresses the usage of Rocq.
|
||||
|
||||
### Basic Usage
|
||||
|
||||
Rocq proves are saved in `.v` files.
|
||||
These can be compiled using the following command where `<file>` is a Rocq proof file.
|
||||
|
||||
```sh
|
||||
rocq c <file>
|
||||
```
|
||||
|
||||
If nothing is shown as output and files like a `.vo` file are generated the proof was successful.
|
||||
Otherwise it was not successful.
|
||||
|
||||
### Examples
|
||||
|
||||
The following example proofs can be used to confirm the [Rocq setup](#setup) to work correctly.
|
||||
|
||||
The following is a simple proof for commutativity of addition.
|
||||
This proof is correct.
|
||||
|
||||
```v
|
||||
Theorem plus_comm : forall n m : nat, n + m = m + n.
|
||||
Proof.
|
||||
intros n m.
|
||||
induction n as [| n' IH].
|
||||
- simpl. rewrite <- plus_n_O. reflexivity.
|
||||
- simpl. rewrite IH. rewrite <- plus_n_Sm. reflexivity.
|
||||
Qed.
|
||||
```
|
||||
|
||||
The following proof attempts to proof that all natural numbers are equal to zero which is obviously
|
||||
false.
|
||||
|
||||
```v
|
||||
Theorem all_zero : forall n : nat, n = 0.
|
||||
Proof.
|
||||
intros n.
|
||||
destruct n.
|
||||
- reflexivity.
|
||||
- reflexivity.
|
||||
Qed.
|
||||
```
|
||||
17
wiki/speech_recognition_and_synthesis.md
Normal file
17
wiki/speech_recognition_and_synthesis.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# Speech Recognition and Synthesis
|
||||
|
||||
Speech recognition describes the process of understanding and interpreting spoken language.
|
||||
The most common form of this is speech-to-text (STT) programs, that convert spoken language into
|
||||
text.
|
||||
On the other hand speech synthesis describes the artificial production of human speech.
|
||||
A Text-to-speech (TTS) program is one, that converts an input text to speech.
|
||||
|
||||
## Speech-to-Text Programs
|
||||
|
||||
The following is a list of STT programs.
|
||||
|
||||
- [Nerd Dictation](https://github.com/ideasman42/nerd-dictation/) is an offline speech recognition
|
||||
software for [Linux](/wiki/linux.md)-based operating systems.
|
||||
|
||||
Some alternatives mostly for Linux systems were listed in a
|
||||
[Reddit post by tuananh_org](https://www.reddit.com/r/archlinux/comments/1j77921/speech_to_text_app/).
|
||||
Reference in New Issue
Block a user