Synthèse vocale ou le narrateur

Synthèse vocale ou le narrateur - Win 10 - Windows & Software

Marsh Posté le 04-07-2020 à 18:13:31    

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

Reply

Marsh Posté le 04-07-2020 à 18:13:31   

Reply

Marsh Posté le 06-07-2020 à 17:29:58    

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)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed