Projets-2015-2016-Sonotone-SRS: Difference between revisions

From air
Jump to navigation Jump to search
 
(21 intermediate revisions by 2 users not shown)
Line 37: Line 37:
The Hearing aid is a technology well-knowned and well-used to correct impaired hearing. Designed to amplify sound for the wearer, this type of device requires a large amount of knowledge in signal process, electronics , software development and about the functionning of a human ear. For this project, we only focused on the software aspect.
The Hearing aid is a technology well-knowned and well-used to correct impaired hearing. Designed to amplify sound for the wearer, this type of device requires a large amount of knowledge in signal process, electronics , software development and about the functionning of a human ear. For this project, we only focused on the software aspect.


The main problem to acquire a hearing aid is the price. However, it is not related to the technology. The main part of the cost comes from the adjustements of the prosthesis by a audioprothetist.
The main problem when someone acquire a hearing aid is that you need to see a audioprothésis. The time and the money you will spend in a sonotone is not related to the technology but to the adjustements of the prosthesis.


The main goal of this project is to allow any user to adkust his hearing aid by himself. This will be donc by our software which allows to simply modify the frequences heard with an equalizer.
The main goal of this project is to allow any user to adjust his hearing aid by himself. This will be made by our software which allows to simply modify the frequences heard with an equalizer.


==1.3 Definitions, acronyms and abbreviations==
==1.3 Definitions, acronyms and abbreviations==
Line 48: Line 48:
==1.4 References==
==1.4 References==


'''Fiche'''
Wikipedia : https://en.wikipedia.org/wiki/Hearing_aid

http://air.imag.fr/index.php/Projets-2015-2016-Sonotone

'''Home Page'''

http://air.imag.fr/index.php/Sonotone


==1.5 Overview of the remainder of the document==
==1.5 Overview of the remainder of the document==
Line 54: Line 60:
==2.1 Product perspective==
==2.1 Product perspective==


The main aim of the project is to provide people a hearing aid at a lower cost. The software will allow partially deaf people to adjust their sonotone themsleves.
The main aim of the project is to provide a new type of software in hearing aids. The software will allow partially deaf people to adjust their sonotone themsleves.


==2.2 Product functions ==
==2.2 Product functions ==
Line 61: Line 67:


Apply a gain on differents range of frequency
Apply a gain on differents range of frequency

Use an audiogram to set the parameters of our software

Apply these filters on real-time signal


==2.3 User characteristics==
==2.3 User characteristics==


The User is able to change the parameters of the filters apply on the surrounding sound
The User is able to change the parameters of the filters apply on the surrounding sound

After making his audiogram's results, the user is able to set his hearing aid.

With the advanced options, the user is able to apply any filters he want at specify frequency.


==2.4 General constraints==
==2.4 General constraints==


We don't know precisely the hardware caracteristics of a hearing aid. Especially the speed of the processor, the microphone, the amplifier and how the sound is restituated.
We don't know precisely the hardware caracteristics of a hearing aid. Especially the speed of the processor, the microphone, the amplifier and how the sound is restituated.

Python module : NUMPY SCYPI

Real-time : PYAUDIO


==2.5 Assumptions and dependencies==
==2.5 Assumptions and dependencies==
Line 82: Line 100:


==3.1 Requirement X.Y.Z (in Structured Natural Language)==
==3.1 Requirement X.Y.Z (in Structured Natural Language)==
'''Function''': Amplifying sounds to enable people who have hearing problems to hear properly
'''Function''':


'''Description''': The sonotone captures any sound and aplifies the wanted frequencies with the adapted gain
'''Description''':


'''Inputs''':
'''Inputs''': Settings according to the person's audiogram


'''Source''':
'''Source''': Ambient noise (including people talking)


'''Outputs''':
'''Outputs''': Same ambient noise with given frequencies amplified


'''Destination''': This device is designed to be used by patially deaf people to replace the cost of a hearing aid specialist
'''Destination''':


'''Action''':
'''Action''':
* Signal processing of the sound that comes in. Apply the needed filters to the sound with python modules so that the sound coming out is audible by the partially deaf user
* Natural language sentences (with MUST, MAY, SHALL)
* Sets the adequate filters with the initial settings to be able to do live processing
* Graphical Notations : UML Sequence w/o collaboration diagrams, Process maps, Task Analysis (HTA, CTT)
* Mathematical Notations
* Tabular notations for several (condition --> action) tuples


'''Non functional requirements''':
'''Non functional requirements''':
* Easy to use : friendly interface
* Relatively cheap : has to be less expensive than the hearing aid specialist consultation


'''Pre-condition''':
'''Pre-condition''':
Line 109: Line 127:


=4. Product evolution=
=4. Product evolution=

'''Improved Filters :'''

As for now, our filters are not as good as professional filters. They are efficient enough for our live equalizer but we still observe saturation and interference on some frequencies. That could be fixed by starting over every filters with other techniques and hence it could be an evolution of the software.


'''A feature that apply the correct filters directly from an audiogram by parsing it:'''

The raw audiogram would be given to the software and the correct filters would be applied automatically to create the "perfect" correction without having to touch yourself the frequencies and filters.


=5. Appendices=
=5. Appendices=

'''Improved the user interface:'''

A live overview of the filters applied could be added to improve the user experience. With such a feature, the user would be able to visualize how the signal is actually modified by the filters he decided to apply.

=6. Index=
=6. Index=

https://sourceforge.net/projects/equalizerapo/

https://sites.google.com/site/haskell102/home/frequency-analysis-of-audio-file-with-python-numpy-scipy

http://stackoverflow.com/questions/2356779/importing-sound-files-into-python-as-numpy-arrays-alternatives-to-audiolab

https://github.com/tmwoz/pyEQ

http://docs.scipy.org/doc/scipy-0.15.1/reference/signal.html

https://scipy.github.io/old-wiki/pages/Cookbook/FIRFilter.html

http://www.blog-audioprothesiste.fr/tag/traitement-du-signal/

http://zone.ni.com/reference/en-XX/help/371325F-01/lvdfdtconcepts/notch_peak_filters/

http://www.dsprelated.com/showcode/169.php

https://gist.github.com/endolith/5455375

https://gist.github.com/ttm/3851044

http://scipy.github.io/old-wiki/pages/Cookbook/ApplyFIRFilter

http://www.dsprelated.com/freebooks/sasp/

http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt

https://developer.mbed.org/handbook/SciPy-FIR-Filter

Latest revision as of 07:33, 5 April 2016

The document provides a template of the Software Requirements Specification (SRS). It is inspired of the IEEE/ANSI 830-1998 Standard.


Read first:

Document History
Version Date Authors Description Validator Validation Date
0.1.0 January 18, 2016 HATTINGUAIS Julian, LECORPS Germain, VOUTAT Manuel Creation of the document TBC TBC


1. Introduction

1.1 Purpose of the requirements document

The Software Requirements Specification (SRS) is a document describing the software system of our project: Sonotone adjustable by its user. It describes how the system is supposed to work with functional and non functional requirements.

1.2 Scope of the product

The Hearing aid is a technology well-knowned and well-used to correct impaired hearing. Designed to amplify sound for the wearer, this type of device requires a large amount of knowledge in signal process, electronics , software development and about the functionning of a human ear. For this project, we only focused on the software aspect.

The main problem when someone acquire a hearing aid is that you need to see a audioprothésis. The time and the money you will spend in a sonotone is not related to the technology but to the adjustements of the prosthesis.

The main goal of this project is to allow any user to adjust his hearing aid by himself. This will be made by our software which allows to simply modify the frequences heard with an equalizer.

1.3 Definitions, acronyms and abbreviations

Hearing aid / Sonotone : an electroacoustic device which is designed to amplify sound for the wearer

Hard of hearing person : A person whoch is partially deaf.

1.4 References

Fiche

http://air.imag.fr/index.php/Projets-2015-2016-Sonotone

Home Page

http://air.imag.fr/index.php/Sonotone

1.5 Overview of the remainder of the document

2. General description

2.1 Product perspective

The main aim of the project is to provide a new type of software in hearing aids. The software will allow partially deaf people to adjust their sonotone themsleves.

2.2 Product functions

Apply differents filters on surrounding sound

Apply a gain on differents range of frequency

Use an audiogram to set the parameters of our software

Apply these filters on real-time signal

2.3 User characteristics

The User is able to change the parameters of the filters apply on the surrounding sound

After making his audiogram's results, the user is able to set his hearing aid.

With the advanced options, the user is able to apply any filters he want at specify frequency.

2.4 General constraints

We don't know precisely the hardware caracteristics of a hearing aid. Especially the speed of the processor, the microphone, the amplifier and how the sound is restituated.

Python module : NUMPY SCYPI

Real-time : PYAUDIO

2.5 Assumptions and dependencies

The Hardware part is composed of a small processor with a low calcul capacity. Our software has thereofore to be performant and well optimized.

3.Specific requirements, covering functional, non-functional and interface requirements

  • document external interfaces,
  • describe system functionality and performance
  • specify logical database requirements,
  • design constraints,
  • emergent system properties and quality characteristics.

3.1 Requirement X.Y.Z (in Structured Natural Language)

Function: Amplifying sounds to enable people who have hearing problems to hear properly

Description: The sonotone captures any sound and aplifies the wanted frequencies with the adapted gain

Inputs: Settings according to the person's audiogram

Source: Ambient noise (including people talking)

Outputs: Same ambient noise with given frequencies amplified

Destination: This device is designed to be used by patially deaf people to replace the cost of a hearing aid specialist

Action:

  • Signal processing of the sound that comes in. Apply the needed filters to the sound with python modules so that the sound coming out is audible by the partially deaf user
  • Sets the adequate filters with the initial settings to be able to do live processing

Non functional requirements:

  • Easy to use : friendly interface
  • Relatively cheap : has to be less expensive than the hearing aid specialist consultation

Pre-condition:

Post-condition:

Side-effects:

4. Product evolution

Improved Filters :

As for now, our filters are not as good as professional filters. They are efficient enough for our live equalizer but we still observe saturation and interference on some frequencies. That could be fixed by starting over every filters with other techniques and hence it could be an evolution of the software.


A feature that apply the correct filters directly from an audiogram by parsing it:

The raw audiogram would be given to the software and the correct filters would be applied automatically to create the "perfect" correction without having to touch yourself the frequencies and filters.

5. Appendices

Improved the user interface:

A live overview of the filters applied could be added to improve the user experience. With such a feature, the user would be able to visualize how the signal is actually modified by the filters he decided to apply.

6. Index

https://sourceforge.net/projects/equalizerapo/

https://sites.google.com/site/haskell102/home/frequency-analysis-of-audio-file-with-python-numpy-scipy

http://stackoverflow.com/questions/2356779/importing-sound-files-into-python-as-numpy-arrays-alternatives-to-audiolab

https://github.com/tmwoz/pyEQ

http://docs.scipy.org/doc/scipy-0.15.1/reference/signal.html

https://scipy.github.io/old-wiki/pages/Cookbook/FIRFilter.html

http://www.blog-audioprothesiste.fr/tag/traitement-du-signal/

http://zone.ni.com/reference/en-XX/help/371325F-01/lvdfdtconcepts/notch_peak_filters/

http://www.dsprelated.com/showcode/169.php

https://gist.github.com/endolith/5455375

https://gist.github.com/ttm/3851044

http://scipy.github.io/old-wiki/pages/Cookbook/ApplyFIRFilter

http://www.dsprelated.com/freebooks/sasp/

http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt

https://developer.mbed.org/handbook/SciPy-FIR-Filter