• EnglishSpanishGermanFrenchPolishChinese (Traditional)


EnglishSpanishGermanFrenchPolishChinese (Traditional)

Operating systems, scripting, PowerShell and security

Operating systems, software development, scripting, PowerShell tips, network and security

Menú principal
  • Categorías
  • Cursos
  • Libro de PowerShell
  • Lo mejor
  • Lo último
  • Proyectos
  • Contactar
Ir al contenido

Convertir audio en formato WAV a texto (version 15-08-2015)

PowerShell
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
#Partir un fichero WAV en partes, después abrir cada uno de los ficheros WAV y convertirlos a texto
 
[void][reflection.assembly]::LoadWithPartialName('system.speech')
 
#Partir un fichero WAV dividiendo por segundos y almacenarlo en una ruta
$ficherooriginal='F:\power\sonido\original.wav'
 
$rutaficherospartidos='F:\power\sonido\partido\'
$ficherodestino='ficheropartidoN.wav'
$ficherocompletodestino=$rutaficherospartidos+$ficherodestino
 
#Dividir el fichero WAV en partes de 5 minutos
F:\power\sonido\sox-14.4.2\sox.exe $ficherooriginal $ficherocompletodestino trim 0 300 : newfile : restart
 
#Para cada uno de los ficheros partidos, convertir a texto el contenido del audio
ls $rutaficherospartidos -Filter *.wav | %{
$_.name
$rec = New-Object 'System.Speech.Recognition.SpeechRecognitionEngine'
$rec.LoadGrammar((New-Object 'System.Speech.Recognition.DictationGrammar'))
$rec.SetInputToWaveFile($_.FullName)
[String]$almacenarcadena=''
[String]$cadenaconvert=''
 
do
{
$cadena=$rec.Recognize().Text
$cadenaconvert=[String]$cadena.ToString()
$almacenarcadena=$almacenarcadena+$cadenaconvert
}while($rec.AudioFormat)
 
#Almacenar el número del minuto que se procesa junto con el texto convertido
#El número del minuto depende del tiempo que dure cada fichero partido, en este caso 5 minutos
[Int]($_.Name.Replace('.wav','').Split('N')[1])*5 | Out-File $rutaficherospartidos\wavtext.txt -Append
$almacenarcadena | Out-File $rutaficherospartidos\wavtext.txt -Append
}

 

Publicado el día 15 de agosto de 2015

CATEGORÍAS

Multimedia, PowerShell, Reconocimiento

ETIQUETAS

Append, Fullname, Jesús Niño Camazón, LoadWithPartialName, ls, New-Object, Out-File, Reflection.Assembly, Replace, SoX, Split, system.speech, System.Speech.Recognition.DictationGrammar, System.Speech.Recognition.SpeechRecognitionEngine, ToString, Trim

MÁS

  • Ejercicios de seguridad: práctica sobre virus
  • Ejercicios de PowerShell: analizar ficheros DLL en todos los equipos de la red, comprobar que ha cambiado una integridad y copiar el fichero que ha cambiado
  • Cómo depurar scripts en ISE de Windows PowerShell
  • Automatizar el funcionamiento de una aplicación que simula un piano (pulsar automáticamente las notas del piano)
  • Obtener los nombres de las funciones exportadas de un archivo DLL con DUMPBIN desde PowerShell (explicación paso a paso del script)
  • Mostrar y generar en tiempo real una tabla HTML con el valor nutricional (azúcares) de todos los fabricantes de un producto encontrado en la tienda online de un supermercado en PowerShell