Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2706 connectés 

  FORUM HardWare.fr
  Windows & Software
  Win 10

  Synthèse vocale ou le narrateur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Synthèse vocale ou le narrateur

n°3377303
car_rod
Posté le 04-07-2020 à 18:13:31  profilanswer
 

Bonjour,
Comment enregistrer sur fichier audio ce que dit le narrateur ?
 
J'ai une solution décrite ici
https://stackoverflow.com/questions [...] n-vbscript
mais j'aimerais une méthode plus universelle.
Merci

mood
Publicité
Posté le 04-07-2020 à 18:13:31  profilanswer
 

n°3377412
car_rod
Posté le 06-07-2020 à 17:29:58  profilanswer
 

Code :
  1. dim scrFName, clArgs
  2. scrFName = Wscript.ScriptFullName
  3. set clArgs = Wscript.Arguments
  4. Set fso = CreateObject("Scripting.FileSystemObject" )
  5. dim intxt, outwav
  6. if clArgs.Count > 1 then
  7.   intxt = clArgs(0)
  8.   outwav = clArgs(1)
  9. elseif  clArgs.Count > 0 then
  10.   intxt = clArgs(0)
  11.   outwav = ""
  12. else
  13.   Wscript.Echo "usage : " _
  14.    & fso.GetFileName(scrFName) _
  15.    & " input.txt [output.wav]" & vbCrLf
  16.   Wscript.quit
  17. end if
  18. if fso.FileExists(intxt) then
  19.   if fso.GetParentFolderName(intxt) = "" then
  20.     intxt = fso.GetAbsolutePathName(intxt)
  21.   end if
  22.   if outwav = "" then
  23.     outwav = fso.GetParentFolderName(intxt) & "\" _
  24.     & fso.GetBaseName(intxt) & ".wav"
  25.   end if
  26. else
  27.   Wscript.Echo "Input file not found: " & intxt
  28.   Wscript.quit
  29. end if
  30. dim intxtcontent
  31. set f = fso.OpenTextFile(intxt, 1)
  32. intxtcontent = f.ReadAll
  33. f.close
  34. set f = nothing
  35. Const SAFT48kHz16BitStereo = 39
  36. Const SSFMCreateForWrite = 3
  37. set sapiFStream = CreateObject("SAPI.SpFileStream" )
  38. sapiFStream.Format.Type = SAFT48kHz16BitStereo
  39. call sapiFStream.Open(outwav, SSFMCreateForWrite)
  40. set sapiVoice = CreateObject("SAPI.SpVoice" )
  41. Set sapiVoice.AudioOutputStream = sapiFStream
  42. 'sapiVoice.Rate = -2 ' from -10 to 10
  43. sapiVoice.Speak(intxtcontent)
  44. sapiFStream.Close
  45. set sapiVoice = nothing
  46. set sapiFStream = nothing
  47. set fso = nothing


Un petit script assez complet. Ça fonctionne super bien  :sol:  
Il suffit de glisser un fichier texte sur le .vbs qui contient ce code et il génère un fichier .wav tout seul  :jap:  
Ou alors vous l'appelez en ligne de commande avec deux paramètres, le fichier d'entrée (txt) et celui de sortie (wav).
 
Maintenant, c'est du vbscript et du SAPI, et, si j'ai bien compris, deux technologies qui ont leur âge.
Surtout le vbscript et ses +25 ans  :ouch:  
Une suggestion pour utiliser une tech plus récentes, ou Microsoft va continuer à supporter les scripts et les COM sous-jacents ad-vitam ? (et aussi simple que ce script aussi)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Windows & Software
  Win 10

  Synthèse vocale ou le narrateur

 

Sujets relatifs
Comment désactiver au démarrage la reconnaissance vocale?Dictée / saisie vocale
Des nouvelles de la synthèse vocale pour adobe reader ?Logiciel de reconnaissance vocale et apprentissage d'une langue
Synthèse sur W8 et W8.1synthèse vocale
Reconnaissance vocale Word WindowsLa reconnaissance vocale sous win 7
Plus de sujets relatifs à : Synthèse vocale ou le narrateur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR