IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

importer .txt dans une variable char


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 20
    Points : 19
    Points
    19
    Par défaut importer .txt dans une variable char
    Bonjour,

    Dans le cadre de mon mini-projet, je doit importer un texte stocké dans un fichier ".txt" pour l'affecter a une variable de type 'char', et cela afin de faire son traitement pour la génération de la parole (à partir de ce texte)

    veuillez m'aider pour trouver une fonction MATLAB, ou juste de décrire les étape du programme qui fait ce travail !

    Et merci !

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    il existe plusieurs façons de lire un fichier contenant du texte, tout dépend de ce que contient précisément le fichier et de la façon dont tu veux utiliser ce texte par la suite.

    Tu peux par exemple utiliser textread ou textscan :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    help textread
    help textscan
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 20
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par magelan Voir le message
    Bonjour,
    la façon dont tu veux utiliser ce texte par la suite.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    help textread
    help textscan
    Je veux utilisé ce texte pour générer par la suite sa lecture;
    j'utilise la tts (text to speech)

    voila le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    function wav = tts(txt,voice,pace,fs)
     
    if ~ispc, error('Microsoft Win32 SAPI is required.'); end
    if ~ischar(txt), error('First input must be string.'); end
     
     
    SV = actxserver('SAPI.SpVoice');
    TK = invoke(SV,'GetVoices');
     
    if nargin > 1
        % Select voice;
        for k = 0:TK.Count-1
            if strcmpi(voice,TK.Item(k).GetDescription)
                SV.Voice = TK.Item(k);
                break;
            elseif strcmpi(voice,'list')
                disp(TK.Item(k).GetDescription);
            end
        end
        % Set pace;
        if nargin > 2
            if isempty(pace), pace = 0; end
            if abs(pace) > 10, pace = sign(pace)*10; end        
            SV.Rate = pace;
        end
    end
     
    if nargin < 4 || ~ismember(fs,[8000,11025,12000,16000,22050,24000,32000,...
            44100,48000]), fs = 16000; end
     
    if nargout > 0
       % Output variable;
       MS = actxserver('SAPI.SpMemoryStream');
       MS.Format.Type = sprintf('SAFT%dkHz16BitMono',fix(fs/1000));
       SV.AudioOutputStream = MS;  
    end
     
    invoke(SV,'Speak',txt);
     
    if nargout > 0
        % Convert uint8 to double precision;
        wav = reshape(double(invoke(MS,'GetData')),2,[])';
        wav = (wav(:,2)*256+wav(:,1))/32768;
        wav(wav >= 1) = wav(wav >= 1)-2;
        delete(MS);
        clear MS;
    end
     
    delete(SV); 
    clear SV TK;
    pause(0.2);
     
    end
    dans le code qui precede, la variable (txt) -qu'on doit initialiser- doit être char, mais pour moi j ve importer un texte d'1 fichier .txt pour qu'il soit attribuer à cette variable (txt) !

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    As-tu regardé les fonctions que j'ai évoqué??

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fid = fopen('tonfichier.txt','rt');
    texte = textscan(fid,'%s','delimiter','\n');
    fclose(fid);
    permet de stocker ton texte dans un tableau de cellules. La première ligne de ton ficheir est accessible en appelant texte{1}{1}, la deuxième lignes en appelant texte{1}{2}, etc...
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 20
    Points : 19
    Points
    19
    Par défaut
    merci pour l'aide, ça marche !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Macro import .txt dans une variable string
    Par erqui22 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 02/11/2014, 16h28
  2. importer .txt dans une feuille excel
    Par jnthnroy dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 13/01/2012, 14h27
  3. ligne de fichier txt dans une variable
    Par suya95 dans le forum Langage
    Réponses: 2
    Dernier message: 25/07/2006, 10h14
  4. Concaténer un char et un num dans une variable
    Par ade05fr dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 24/10/2005, 16h32
  5. Réponses: 6
    Dernier message: 24/07/2003, 12h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo