Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
139 commits
Select commit Hold shift + click to select a range
34cad6e
Create voice dataset and add room position LLM
qanastek Jul 23, 2025
579e0fd
Merge branch 'main' of https://github.com/qanastek/sdialog
qanastek Jul 23, 2025
5f65d4e
Handle room accoustics and make optionnal for dscaper / room accoustics
qanastek Jul 23, 2025
d379cc7
Merge branch 'idiap:main' into main
qanastek Jul 23, 2025
e9add47
Merge branch 'idiap:main' into main
qanastek Jul 23, 2025
2a4f11e
Merge branch 'idiap:main' into main
qanastek Jul 24, 2025
8ee8325
Add voice database fetching from from HF
qanastek Jul 24, 2025
898753a
Merge branch 'main' of https://github.com/qanastek/sdialog
qanastek Jul 24, 2025
dc101cb
Full pipeline completed
qanastek Jul 24, 2025
f67756a
Add xvectors to the speaker database
qanastek Jul 24, 2025
79e3c82
Update notebooks
qanastek Jul 24, 2025
e620fc6
Add the paths to audios in the object
qanastek Jul 25, 2025
5a37bd3
Make the steps 2 and 3 optionnal and add a test of each of them in th…
qanastek Jul 25, 2025
e43bf1c
Make HF voices path dynamic and add description to the audio generati…
qanastek Jul 25, 2025
aafa2b9
- Make the import called only when needed for the audio pipeline.
qanastek Jul 25, 2025
c66d783
Fix last import and switch back to kokoro
qanastek Jul 25, 2025
5fc3a12
Fix some bugs and make jean zay script for generating 200 dialog in t…
qanastek Jul 26, 2025
e781bf6
Add few dummy voice database and slurm script for jean zay
qanastek Jul 26, 2025
3878e3b
Update
qanastek Jul 27, 2025
62aa807
Update
qanastek Jul 28, 2025
e38c322
Update
qanastek Jul 29, 2025
6fc3b9a
Improve instructions for installation of dScaper and PyRoomAcoustics
qanastek Jul 29, 2025
8f28e38
Flake 8 pass
qanastek Jul 29, 2025
a6e8f2a
Merge branch 'main' into main
qanastek Jul 29, 2025
148eed7
Flake 8 round 2
qanastek Jul 29, 2025
6e7d788
Merge branch 'main' of https://github.com/qanastek/sdialog
qanastek Jul 29, 2025
b9c3734
Add metrics and plots scripts
qanastek Jul 30, 2025
9661cd3
Add last metrics scripts before JSALT oral
qanastek Aug 18, 2025
05da092
Better notebook
qanastek Aug 18, 2025
1fd186f
Merge branch 'main' of https://github.com/qanastek/sdialog
qanastek Aug 18, 2025
81d9d73
Merge jean-zay branch with local macbook branch
qanastek Aug 18, 2025
5d7aac4
Update
qanastek Aug 18, 2025
b4f3343
Update
qanastek Sep 8, 2025
8f7995e
Add more informations about the languages of the TTS models.
qanastek Sep 27, 2025
ea15f54
Override the name of the directory dedicated to the outputs audios of…
qanastek Sep 27, 2025
2c419c0
Fix custom dialog name in stage 2 and 3.
qanastek Sep 27, 2025
c1b6f70
Update:
qanastek Sep 27, 2025
8bfc16a
- Fix "ERROR:root:Problem storing audio for turn"
qanastek Sep 28, 2025
b944a21
Remove room from the audio dialog object and save it in the list of a…
qanastek Sep 28, 2025
0e16d15
The room and AudioDialog are now serializable and compliant with Pyda…
qanastek Sep 28, 2025
345c1e3
Update
qanastek Sep 28, 2025
7ea6599
Include data sources in the serializable AudioDialog
qanastek Sep 28, 2025
452aebb
Update
qanastek Sep 28, 2025
6896819
Update notebooks (not tested online yet)
qanastek Sep 29, 2025
5812c0d
Update position of the tutorials for the audio.
qanastek Sep 30, 2025
003fbc5
Move again
qanastek Sep 30, 2025
565f405
Rename the tutorials
qanastek Sep 30, 2025
f433050
Remove unnecessary functionalities for the audio branch yet.
qanastek Sep 30, 2025
98d3c41
Update demo_dialog.json fetch URL
qanastek Sep 30, 2025
9a34902
Update all tutorials
qanastek Sep 30, 2025
c06bbaa
Tutorial audio 5 fully functionnal on Colabs
qanastek Sep 30, 2025
c4fc984
Update audio tutorial 6
qanastek Sep 30, 2025
6873381
Update audio display
qanastek Sep 30, 2025
adee861
Update
qanastek Oct 7, 2025
341de70
Improve room generation
qanastek Oct 7, 2025
39f6328
Modify room tutorial
qanastek Oct 7, 2025
46d2cb3
Update: Add environment dict
qanastek Oct 7, 2025
61ed54d
Add custom voice database class
qanastek Oct 7, 2025
9a680f8
Send zip
qanastek Oct 7, 2025
7b0f147
Update
qanastek Oct 7, 2025
6573d84
- Remove dummy databases
qanastek Oct 8, 2025
c91e920
Add seed to room generation
qanastek Oct 8, 2025
a49833b
Remove as much unsed function from Room as possible
qanastek Oct 8, 2025
0c9a46f
Identify first and second speakers names in the dialog
qanastek Oct 8, 2025
43eb969
Big cleanup of the simulator
qanastek Oct 8, 2025
fb589d5
- Link furnitures of the room with simulator
qanastek Oct 8, 2025
1e767b8
- Move microphone_position_to_room_position into Room
qanastek Oct 8, 2025
f755c59
Add microphone in Room and remove the function "add_microphone()" fro…
qanastek Oct 8, 2025
943c8cf
- Allow the user to give custom microphone position
qanastek Oct 8, 2025
ca5dd72
Better room layout and better RT60 parameters
qanastek Oct 8, 2025
b0ae2ec
Allow user to change background_effect
qanastek Oct 8, 2025
dd321bc
Add kwargs_pyroom in order to manage rendering parameters
qanastek Oct 8, 2025
2a7988a
Allow the user to create RoomMaterials and to use it rather than rt60.
qanastek Oct 8, 2025
8a985ec
Switch Background and foreground sound in order to spacialize the ac …
qanastek Oct 9, 2025
6f6ebe0
Improve intelegibility by changing ref_db from -20dB to -40dB
qanastek Oct 9, 2025
3bb7726
- Add language in database of voices
qanastek Oct 9, 2025
7fad9ae
- Improve much more the realism by enabling ray tracing and air absor…
qanastek Oct 9, 2025
628d6af
- Allow users to change volumes
qanastek Oct 9, 2025
508a299
- Add the feature to place the speakers close to a furniture (not lin…
qanastek Oct 10, 2025
03cc861
- Add default furniture to the bind_speaker_around function
qanastek Oct 10, 2025
36301d6
More safety for the 3D position of the speakers
qanastek Oct 10, 2025
b10f3d7
- Allow t oplace speaker with 3D coordinates
qanastek Oct 10, 2025
6983f97
- Modify the speaker placement function in order to consider sides (f…
qanastek Oct 10, 2025
61fc958
- Provide an option for the users to prevent getting a voice twice wh…
qanastek Oct 10, 2025
9da3404
- Fix typo in the parameters
qanastek Oct 10, 2025
244fa33
- Link speaker position from the room object with the AudioSources an…
qanastek Oct 10, 2025
7d20f68
- Add example of speaker placement in the tutorial 6
qanastek Oct 10, 2025
0e1a0e2
- Give the user the capability of changing foreground / background pa…
qanastek Oct 12, 2025
79d5617
Add outputs of the tutorials
qanastek Oct 12, 2025
70298c0
Merge remote-tracking branch 'upstream/main'
qanastek Oct 12, 2025
a9d471f
Remove dscaper
qanastek Oct 12, 2025
3a98cc3
Update URLs and cleanup
qanastek Oct 12, 2025
4e73567
- Add language in voice selection by taking the language from the dia…
qanastek Oct 12, 2025
8c3430f
Merge branch 'idiap:main' into main
qanastek Oct 13, 2025
e061cf8
Switch to .venv and extend requirements.txt with audio dependencies
qanastek Oct 13, 2025
2b1fe48
Update notebooks
qanastek Oct 14, 2025
55e9271
Modify the remaining notebooks
qanastek Oct 14, 2025
af1e918
Update requirements to prevent conflict
qanastek Oct 14, 2025
03b63cd
Merge branch 'idiap:main' into main
qanastek Oct 14, 2025
9eb7a04
Fix the bug with the Top Right anchor when drawing the room with to_i…
qanastek Oct 14, 2025
862ec48
Merge branch 'main' of https://github.com/qanastek/sdialog
qanastek Oct 14, 2025
79367e7
Fix bug with anchors
qanastek Oct 14, 2025
67db761
Add possibility to run the pipeline on a dialog with no information …
qanastek Oct 14, 2025
4e383dc
- Add the to_audio function as a utils
qanastek Oct 14, 2025
85fff84
Add to_audio into Dialog class
qanastek Oct 16, 2025
dd4a7e4
Update:
qanastek Oct 16, 2025
bcfb764
Update:
qanastek Oct 16, 2025
a7a25d9
- Improve the to_audio function by making a maximum of things paramet…
qanastek Oct 16, 2025
5806aaf
- Add export audio formats support for MP3 / WAV / FLAC
qanastek Oct 17, 2025
0483b91
Merge branch 'idiap:main' into main
qanastek Oct 17, 2025
f81add6
- Make microphone_position_to_room_position dynamic
qanastek Oct 17, 2025
6f35985
- Add support for microphone directivity
qanastek Oct 17, 2025
474c503
- Fix a bug
qanastek Oct 17, 2025
b7a4b77
- Rename audios python files and tutorials notebooks using a unified …
qanastek Oct 17, 2025
a5a9c94
Distance between speakers and microphone can now be computed in 2D an…
qanastek Oct 17, 2025
39e1aac
- Remove prints
qanastek Oct 17, 2025
85677fe
Add the tutorial for XTTS and multilingual generation of audio and te…
qanastek Oct 19, 2025
36b8868
Update the tutorials:
qanastek Oct 19, 2025
0bff2b9
Fix directory unzip
qanastek Oct 19, 2025
558154b
Prevent unlimited downloads
qanastek Oct 19, 2025
cb23337
Update the documentation of the code and re-run all the tutorials
qanastek Oct 19, 2025
a3fca24
Render the documentation and llm.txt file
qanastek Oct 19, 2025
92e91ce
Remove indextts and multilingual tutorials
qanastek Oct 20, 2025
0b61a4f
Update how randomness is handle and pass the seed parameters to the r…
qanastek Oct 20, 2025
3bb1b15
- Create a tutorials for testing out room accoustics variation and re…
qanastek Oct 20, 2025
3404ec1
- Fix room.to_image, now it's drawing the room in the correct way and…
qanastek Oct 21, 2025
b9dcb4b
Merge branch 'idiap:main' into main
qanastek Oct 21, 2025
791e625
Add a resampling rate for the outputs files
qanastek Oct 22, 2025
49bf6ca
Handle cases where:
qanastek Oct 22, 2025
b0bb562
Fix flake8
qanastek Oct 23, 2025
cb3d2f5
- Update parameters of to_audio
qanastek Oct 23, 2025
e1eab74
- Add information to serialize in the AudioDialog when saved locally
qanastek Oct 23, 2025
fb1cf94
- Exclude dscaper from tests
qanastek Oct 23, 2025
74ee23e
- Make the to_audio fuction using more Optional parameters and fill u…
qanastek Oct 23, 2025
5a763ee
Update tests
qanastek Oct 23, 2025
12985dd
Update tests to prevent the use of scaper
qanastek Oct 23, 2025
f581d07
- Add scaper and dscaper into the requirements.txt
qanastek Oct 23, 2025
c36ea6f
Add scaper / dscaper back in the unit tests
qanastek Oct 23, 2025
6464e2a
- Fix flake8
qanastek Oct 24, 2025
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 .flake8
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
max-line-length = 120
exclude =
.venv,
./dscaper
./tutorials/dscaper
./git
21 changes: 19 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,27 @@ docs_html
__*__

dscaper_data/

#audio files
*.wav
*.mp3
*.png
*.mp4
*.flac
*.ogg
*.zip
!tests/data/my_custom_voices.zip
!tests/data/demo_dialog_doctor_patient.json
!tests/data/customer_support_dialogue.json
*.tar
old.git
tutorials/demo_dialog_doctor_patient.json
tutorials/demo_dialog_doctor_patient_no_age_no_gender.json
tutorials/customer_support_dialogue.json
tutorials/=0.9.4
tutorials/dscaper
tutorials/dscaper_data
tutorials/dscaper_data_customer_support
tutorials/audio_outputs
tutorials/audio_outputs_customer_support
tutorials/my_custom_voices
tutorials/room.png
*audio_dialog.json
150 changes: 150 additions & 0 deletions docs/about/changelog.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@

ChangeLog
=========

All notable changes to SDialog will be documented here.

----

[0.3.0] 2025-09-03 🚀
---------------------

Added
^^^^^


* **sdialog**\ :

* ``Context``\ : new class class to explicitly model the common/shared context of conversations (#73)
* ``Dialog``\ : merge functionality - Added option to merge consecutive turns of the same speaker when loading a dialog (#77)
* ``Dialog``\ : built-in string support - Added support to built-in str functions for ``Dialog`` class (#83)

* **sdialog.agents**\ : Added new ``sdialog.agents`` module and moved ``Agent`` class inside (#81)

* ``Agent``\ : thinking capabilities - Agents can now handle internal thinking processes (#95)
* ``Agent``\ : tools support - Added tools capabilities to Agents (e.g. RAG or any other function) (#84)

* New tutorial for agents with tools and thoughts.

* **sdialog.generators**\ :

* ``ContextGenerator``\ : new class added to explicitly model the common/shared context of conversations (#73)
* ``Paraphraser``\ : new class class to paraphrase dialogues (#76)

* **sdialog.evaluation**\ :

* ``LinguisticFeatureScore``\ : new class added to compute Flesch reading ease, Gunning fog, Hesitation rate, and/or Mean turn length (#63)

* **sdialog.personas**\ :

* ``Customer`` and ``SupportAgent``\ : new personas added for customer service dialogues (#85)
* ``Persona``\ : Added static method to get the list of all attributes in ``Persona`` class (#79)

Changed
^^^^^^^


* **sdialog**\ : Improved metadata handling (#66)
* **sdialog.interpretability**\ : Improved and simplified the way inspection targets are defined in ``interpretability`` submodule (#78)
* **sdialog.evaluation.base**\ :

* ``LLMJudgeYesNoOutput``\ : Renamed attribute ``yes`` to ``positive`` (#86)
* ``LLMJudgeScoreOutput``\ : Renamed attribute ``feedback`` to ``reason`` (#86)

Fixed
^^^^^


* **sdialog.generators**\ : Fixed potential bug in ``PersonaDialogGenerator`` class (#67)

Enhanced
^^^^^^^^


* **sdialog.agents**\ : Added ``base_model`` attribute to ``Agent`` to direclty access the LLM's underlying model for mechanistic interpretability (#74)
* **sdialog.config**\ : Added ``clear_cache()`` method to config (#75)

Documentation
^^^^^^^^^^^^^


* API Documentation: Refactored/cleaned all components and added docstrings with examples (#82, #88)
* Updated all tutorials to work with new code and added "Open in Colab" badges
* Completed API documentation for initial official release (#87)
* Automatic generation of ``llm.txt`` from API documentation (24f6ee6)

----

[0.1.0] 2025-08-05 🌱
---------------------

Added
^^^^^


* Multi-backend support (Hugging Face, Ollama, OpenAI, AWS)
* Enhanced persona generation (beyond initial ``PersonaDialogGenerator``\ )
* Interpretability module (\ ``sdialog.interpretability``\ ): inspectors, steerers, hooks, intruders
* Evaluation module (\ ``sdialog.evaluation``\ ): metrics, LLM-as-a-judge scoring, evaluators, dataset comparators

Changed
^^^^^^^


* Standardized / improved dialog format

Notes
^^^^^


*
..

500 commits since 0.0.2 (post-JSALT 2025 consolidation)


Pending
^^^^^^^


* Audio module (\ ``sdialog.audio``\ ) integration
* Documentation updates

----

[0.0.2] 2025-06-03 🔧
---------------------

Added
^^^^^


* ``language`` attribute to ``Persona`` class
*
``PersonaDialogGenerator`` to ``generators`` module to support persona-based dialogue generatin with single LLM:

.. code-block:: python

from sdialog.generators import PersonaDialogGenerator

dialog_generator = PersonaDialogGenerator(
model=MODEL_NAME,
persona_a=bob_persona,
persona_b=alice_persona,
)

dialog_generator.generate().print()

Fixed
^^^^^


* Python 2 and 3 compatibility problem with scikit-learn (using version 0.20.1 from now on)
* PyPi: setup.py: ``long_description_content_type`` set to ``'text/markdown'``

----

[0.0.1] 2025-05-22 🎉
---------------------

*(initial release)*
127 changes: 127 additions & 0 deletions docs/about/contributing.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@

Contributing
============

Thanks for your interest in the project — you're awesome! 😎🎉

Any kind of help is welcome (Code, Bug reports, Content, Data, Documentation, Design, Examples, Ideas, Feedback, etc.). Issues and Pull Requests are encouraged: from a tiny typo fix to a new feature. Help us make SDialog better 👍

You can use the Edit button (pencil icon) on GitHub to quickly propose changes to any file via the web UI.

We follow `Chris Beams' guidelines <https://chris.beams.io/posts/git-commit/>`_ for commit messages.

Development installation
------------------------

.. code-block:: bash

git clone git@github.com:idiap/sdialog.git
cd sdialog
pip install -e .

Running tests & style
---------------------

.. code-block:: bash

flake8 --ignore=W503 --max-line-length=120
pytest -v

Coverage (HTML + terminal):

.. code-block:: bash

pytest -v --cov=src/sdialog --cov-report=term-missing --cov-report=html
# Open htmlcov/index.html

Manual documentation build
--------------------------

Generate HTML:

.. code-block:: bash

cd docs
python -m sphinx -T -b html -d _build/doctrees -D language=en . ../docs_html

Regenerate API reference (only needed if new submodules are are added):

.. code-block:: bash

cd docs
sphinx-apidoc -f --ext-autodoc -o api ../src/sdialog

ReadTheDocs latest build list: https://app.readthedocs.org/projects/sdialog/

Release (PyPI)
--------------


#. Update version in ``src/sdialog/util.py`` (follow semver)
#. Update CHANGELOG (if present)
#. Tag & push
.. code-block:: bash

git commit -m "Release v0.x.x"
git tag v0.x.x
git push origin main --tags

#. Build & upload:
.. code-block:: bash

python -m build
python -m twine upload dist/*

Guidelines
----------


* Keep functions/classes small & composable
* Add/extend tests for new features or bug fixes
* Document public APIs (docstrings + docs reference where appropriate)
* Prefer pure functions where state is not needed
* Avoid introducing heavy deps without discussion (open issue first)
* Use meaningful names; avoid abbreviations except standard ones (LLM, NLP, etc.)

Adding tutorials / notebooks
----------------------------

Place new notebooks under ``tutorials/`` and keep naming numeric + descriptive (e.g., ``8.new_feature_example.ipynb``\ ). Ensure they run top-to-bottom in Colab. Use lightweight models or small number of elements to keep runtime short.

Opening an issue
----------------

Provide:


* Summary
* Steps to reproduce (if bug)
* Expected vs actual
* Environment (Python version, OS, backend model)
* Minimal reproducible code snippet

Pull request checklist
----------------------


* [ ] Feature / bug issue linked (if applicable)
* [ ] Tests added or updated
* [ ] Docs / examples updated
* [ ] No lint errors
* [ ] Local tests pass
* [ ] Changelog updated (if user-facing change)

Communication
-------------

Use GitHub Issues / Discussions for feature proposals. For larger changes, open a draft PR early for feedback.

AI-assisted development
-----------------------

This project provides an `llm.txt file <https://sdialog.readthedocs.io/en/latest/llm.txt>`_ following the `llms.txt specification <https://llmstxt.org/>`_ for AI coding assistants. GitHub Copilot and other AI tools can fetch structured project information with: ``#fetch https://sdialog.readthedocs.io/en/latest/llm.txt``

Thanks
------

Your contributions make the project better for everyone. 🙏
Loading