Metadata-Version: 2.4
Name: FoxDotShabda
Version: 0.1.1
Summary: Interface with shabda for audio samples and text speech.
License-Expression: CC-BY-SA-4.0
License-File: LICENSE
Author: taconi
Author-email: igor.taconi@protonmail.com
Requires-Python: ~=3.11
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Description-Content-Type: text/markdown

# FoxDotShabda - Interface with shabda for audio samples and text speech

## Instalation

``` shell
pip install FoxDotShabda
# or
pip install git+https://codeberg.org/FoxDotExtensions/FoxDotShabda
```

## Usage

Import lib

``` python
from FoxDotShabda import samples, speech
```

### `samples(definition: str)`

Fetch random samples from [freesound](https://freesound.org/)

Any word can be a pack definition. If you want more than one sample,
separate words by a comma: `"blue,red"`

You can define how many variations of a sample to assemble by adding a colon
and a number.
e.g. blue,red:3,yellow:2 will produce one 'blue' sample, three 'red' samples
and two 'yellow' sample.

``` python
samples('bass:4,hihat:4,rimshot:2')
```

will print in the terminal when finished downloading

``` python
s1 >> loop('bass', dur=PDur(3,8), sample=2)
s2 >> loop('hihat', dur=10, sus=2)
s3 >> loop('rimshot', dur=PDur(7,9)*8, sample=2)
```

### `speech(words: str, language: str = 'en-GB', gender: str = 'f')`

Generate Text-to-Speech samples.

If you want more than one sample, separate words by a comma: `"hello,bye"`
If you want a sentence, separate it with `_`: `"eita_carai,oi"`

By default the language is `en-GB` but you can change this.

The gender of the voice unfortunately can be `f` and `m`.

If you only want to change the gender, use the following syntax

``` python
speech('baby', gender='m')
```

``` python
speech('what')
speech('voa,ai','pt-BR')
speech('eita_carai,continua','pt-BR','m')
```

will print in the terminal when finished downloading

``` python
v1 >> loop('eita_carai', dur=4, pan=[-5,0,1,0])
v2 >> loop('voa', dur=PDur(3,8), pan=[0,1,0,-5])
v3 >> loop('ai', dur=4, pan=[1,0,-5,0])
v4 >> loop('continua', dur=var([PDur(3,8), 6], [7,1]), pan=[0,1,0,-5])
v5 >> loop('what', dur=8, sus=2, pan=[0,1,0,-5])
```

