Python speech

1. Python speech

Rodrigo
rodrigofl20

(usa Linux Mint)

Enviado em 07/10/2016 - 16:14h

import numpy
import pyaudio
import analyse

# Initialize PyAudio
pyaud = pyaudio.PyAudio()

# Open input stream, 16-bit mono at 48000 Hz
# On my system, device 4 is a USB camera
stream = pyaud.open(
format = pyaudio.paInt16,
channels = 1,
rate = 48000,
input_device_index = 1,
input = True)

while True:
# Read raw microphone data
rawsamps = stream.read(1024)
# Convert raw data to NumPy array
samps = numpy.fromstring(rawsamps, dtype=numpy.int16)
# Show the volume
print analyse.loudness(samps)


Pessoal, achei esse script na internet, que serve para gravar áudio utilizando o Python.
Eu estou com um projeto pessoal, e parte do projeto é ter um reconhecimento de voz, estou tentando desenvolver em Python, mas ainda não tive sucesso. Esse script acima foi o mais perto que cheguei de ter algo.
Porém quando executo o mesmo, tenho o seguinte retorno:
$ python teste.py
Falha de segmentação

Alguém sabe resolver isso?


  


2. Re: Python speech

Gabriel
gabirugros

(usa Linux Mint)

Enviado em 07/10/2016 - 19:17h


import pyaudio
import wave
while True:
p= raw_input(str("nome do arquivo"))
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
CHUNK = 1024
RECORD_SECONDS = 1.2 #tempo de gravação
WAVE_OUTPUT_FILENAME = p+".wav" #nome do arquivo de saida

audio = pyaudio.PyAudio()
# start Recording
stream = audio.open(format=FORMAT, channels=CHANNELS,
rate=RATE, input=True,
frames_per_buffer=CHUNK)
print "recording..."
frames = []

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
print "finished recording"


# stop Recording
stream.stop_stream()
stream.close()
audio.terminate()

waveFile = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
waveFile.setnchannels(CHANNELS)
waveFile.setsampwidth(audio.get_sample_size(FORMAT))
waveFile.setframerate(RATE)
waveFile.writeframes(b''.join(frames))

Espero que ajude, postei um sintetisador de fala a pouco tempo caso se interesse ;)


3. Re: Python speech

Rodrigo
rodrigofl20

(usa Linux Mint)

Enviado em 08/10/2016 - 02:49h

gabirugros escreveu:


import pyaudio
import wave
while True:
p= raw_input(str("nome do arquivo"))
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
CHUNK = 1024
RECORD_SECONDS = 1.2 #tempo de gravação
WAVE_OUTPUT_FILENAME = p+".wav" #nome do arquivo de saida

audio = pyaudio.PyAudio()
# start Recording
stream = audio.open(format=FORMAT, channels=CHANNELS,
rate=RATE, input=True,
frames_per_buffer=CHUNK)
print "recording..."
frames = []

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
print "finished recording"


# stop Recording
stream.stop_stream()
stream.close()
audio.terminate()

waveFile = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
waveFile.setnchannels(CHANNELS)
waveFile.setsampwidth(audio.get_sample_size(FORMAT))
waveFile.setframerate(RATE)
waveFile.writeframes(b''.join(frames))

Espero que ajude, postei um sintetisador de fala a pouco tempo caso se interesse ;)



Muito obrigado amigo, ajudou muito.
A minha ideia principal é fazer um reconhecimento de voz pra ligar em alguns funções já programadas. Estou tentando várias coisas.


4. Re: Python speech

Rodrigo
rodrigofl20

(usa Linux Mint)

Enviado em 12/10/2016 - 12:14h

gabirugros escreveu:


import pyaudio
import wave
while True:
p= raw_input(str("nome do arquivo"))
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
CHUNK = 1024
RECORD_SECONDS = 1.2 #tempo de gravação
WAVE_OUTPUT_FILENAME = p+".wav" #nome do arquivo de saida

audio = pyaudio.PyAudio()
# start Recording
stream = audio.open(format=FORMAT, channels=CHANNELS,
rate=RATE, input=True,
frames_per_buffer=CHUNK)
print "recording..."
frames = []

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
print "finished recording"


# stop Recording
stream.stop_stream()
stream.close()
audio.terminate()

waveFile = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
waveFile.setnchannels(CHANNELS)
waveFile.setsampwidth(audio.get_sample_size(FORMAT))
waveFile.setframerate(RATE)
waveFile.writeframes(b''.join(frames))

Espero que ajude, postei um sintetisador de fala a pouco tempo caso se interesse ;)


gabirugros, estou recebendo esse erro na saída do teu script:

Traceback (most recent call last):
File "q.py", line 19, in <module>
frames_per_buffer=CHUNK)
File "/usr/local/lib/python2.7/dist-packages/pyaudio.py", line 750, in open
stream = Stream(self, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/pyaudio.py", line 441, in __init__
self._stream = pa.open(**arguments)
IOError: [Errno -9996] Invalid input device (no default output device)


Eu to usando um Mic USB, tentei com outro tipo também. O microfone está funcionando normalmente.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts