
手机49kbps 转换比特率256Kpbs
{‘corpus_no’: ‘7045177033217452815’, ‘err_msg’: ‘success.’, ‘err_no’: 0, ‘result’: [‘今天下午去开会今天下午去开会’], ‘sn’: ‘858605479691640333103’}
{‘corpus_no’: ‘7045177041635399899’, ‘err_msg’: ‘success.’, ‘err_no’: 0, ‘result’: [‘今天下午去开会今天下午去开会’], ‘sn’: ‘683207632331640333105’}
from aip import AipSpeech
from moviepy.editor import AudioFileClip
# 语音三个参数:声道数、取样频率和量化位数;声道数:单声道、双声道;
# 取样频率:秒采样次数;量化位数:bit单次采样数据,8bit、16bit、24bit和32bit
# 例:CD储存声音信号是双声道、44.1kHz、16bit
```java
def avi_hebing():
# 1、导入视频
from moviepy.editor import *
#1 读取视频1
videoclip_1 = VideoFileClip("one.mp4")
clipSpeed = videoclip_1.speedx(2)#倍速
clip = clipSpeed.subclip(0, 50)# 截取前50秒视频
# 1.1.0 将源视频中指定范围子窗口内容输出到保存的视频文件。
clip.crop(0, 278, 540, 580).write_videofile(r"F:\video\WinBasedWorkHard_crop.mp4")
#保存
clipSpeed.write_videofile(r"F:\video\fansNote_speed2.mp4") # 保存
#2提取音频分
audio_1 = videoclip_1.audio #单独提取音频
video_audio_clip = videoclip_1.audio.volumex(0.8) # 提取视频音频,并调小音量
#2.1背景音乐
audio_clip = AudioFileClip(r'F:\test\video\aaa\moviepy\mp3\test.mp3').volumex(0.5)
audio = afx.audio_loop(audio_clip, duration=videoclip_1.duration)#设背景音乐循环,时间与视频1时间一致
# 1.1.4视频声音和背景音乐,音频叠加
audio_clip_add = CompositeAudioClip([video_audio_clip,audio])
#3 读取视频、合并视频
videoclip_2 = VideoFileClip("two.mp4") #读取视频
final_video = videoclip_2.set_audio(audio_clip_add) #音频+视频2合并
final_video.write_videofile("video_result.mp4") #输出新视频
def avi_to_txt():
fielname_mp4="kaihui.mp4" #原始视频文件名
my_audio_clip = AudioFileClip(fielname_mp4)#读取文件
#2、 提取音频并保存(# pcm、wav、amr、m4a)
fielname_wav='kaihui.wav'#保存的wav文件名
# print(my_audio_clip.duration, my_audio_clip.buffersize,my_audio_clip.nchannels, my_audio_clip.fps)
# my_audio_clip.write_audiofile(fielname_wav)
my_audio_clip.write_audiofile(fielname_wav, fps=8000, nbytes=2, buffersize=20000,
codec=None, bitrate=None, ffmpeg_params=None,
write_logfile=False, verbose=True, logger='bar')
# buffersize = 200000, nbytes = 2, fps = 44100
# 8, 000Hz 电话采样率
# 11, 025 Hz 22, 050 Hz - 无线电广播所用采样率
# 32, 000 Hz - miniDV数字视频camcorder、DAT(LP mode)所用采样率
# 44, 100 Hz - 音频CD, 也常用于MPEG - 1 音频(VCD, SVCD, MP3)所用采样率
# 47, 250 Hz - Nippon Columbia(Denon)开发的世界上第一个商用PCM录音机所用采样率
# 48, 000 Hz - miniDV、数字电视、DVD、DAT、电影和专业音频所用的数字声音所用采样率
# 50, 000 Hz - 二十世纪七十年代后期出现的3M和Soundstream开发的第一款商用数字录音机所用采样率
# 50, 400 Hz - 三菱X - 80 数字录音机所用所用采样率
# 96, 000 或者192, 000 Hz - DVD - Audio、一些LPCM DVD音轨、Blu - ray Disc(蓝光盘)音轨、和HD - DVD(高清晰度DVD)音轨所用所用采样率
# 2.8224 MHz - SACD、索尼和飞利浦联合开发的称为Direct Stream Digital的1位sigma - delta modulation过程所用采样率。
# write_videofile方法用于将视频剪辑输出到文件
# write_audiofile(fielname_wav,fps=None, codec=None,bitrate=None, audio_fps=16000)
# write_videofile(self, filename, fps=None, codec=None,
# bitrate=None, audio=True, audio_fps=44100,
# preset="medium",
# audio_nbytes=4, audio_codec=None,
# audio_bitrate=None, audio_bufsize=2000,
# temp_audiofile=None,
# rewrite_audio=True, remove_temp=True,
# write_logfile=False, verbose=True,
# threads=None, ffmpeg_params=None,
# logger='bar')
# filename:保存视频文件名,只要是ffmpeg支持的视频文件如 .ogv, .mp4, .mpeg, .avi, .mov等都可以
# fps:帧率,每秒编码的帧数
# codec:图像编解码器,ffmpeg支持解码器。扩展名“.mp4”、“.ogv”、“.webm”,则相应地设置编解码器,其他扩展名,须设置输出文件名。常用编解码器如下:
# √. ‘libx264’:视频压缩效果好,MP4缺省编解码器,质量bitrate参数调节
# √. ‘mpeg4’:可选MP4编解码器,可替代’libx264’,可获更好视频质量
# √.‘rawvideo’:完美视频质量,文件巨大,对应视频文件为’.avi’
# √. ‘png’:完美视频质量,视频文件为’.avi’,比’rawvideo’小
# √. ‘libvorbis’:完全开放、免费编解码器,不错视频格式,对应视频文件为’.ogv’
# √. ‘libvpx’:很适合HTML5使用的网络视频轻量级开源解码器,视频文件为’.webm’
# bitrate:输出视频比特率,即码率BPS(Bits Per Second),每秒传送数据位数
# audio:可为True、False或文件名,如True且剪辑附加音频,则音频作为视频的音频保存,如False则不保存音频,如为音频文件名则此音频文件将作为视频的音频
# audio_fps:声音的采样频率
# preset:设置FFMPEG用于优化压缩时间。字符串类型,可选:ultrafast、superfast、veryfast、faster、fast、medium、slow、slower、veryslow、 placebo。请注意,这不会影响视频的质量,只影响视频文件的大小。所以如果赶时间而文件大小不是很重要可以设置为ultrafast
# audio_nbytes:音频采用位数,对应基于字节为单位是声道数;
# audio_codec:音频解码器,如’.mp3’的’libmp3lame’、‘ogg’的’libvorbis’、 ‘m4a’的’libfdk_aac’、 ‘pcm_s16le’ 16位声音和’pcm_s32le’的32位声音。默认值为“libmp3lame”,除非视频扩展名为“ogv”或“webm”,在这2种情况下,默认值为“libvorbis”。
# audio_bitrate:音频比特率,字符串形式,如“50k”、“500k”、“3000k”,用于将确定输出文件中音频的大小/质量。注意,这是一个指示性目标,输出文件比特率不一定会按此设置。
# audio_bufsize:音频缓冲区大小
# temp_audiofile:如输出由音频,该参数用于指定--要生成并合并到电影中的临时音频文件的名称,如果没有指定则用缺省模式临时文件名
# rewrite_audio:这个参数目前没有作用,可能为了兼容前版本
# remove_temp:是否删除临时文件
# write_logfile:为True,为音频和视频输出记录日志文件。日志文件将以“.log”结尾,包含输出文件的名称
# verbose:已经废弃使用,留下来是为了兼容性,以前用于打开/关闭消息。现在使用logger=None。
# threads:用于ffmpeg的线程数,可以加快多核计算机上视频输出的速度
# ffmpeg_params:需额外传递其他ffmpeg参数,用列表传递,形如:[’-option1’,‘value1’,’-option2’,‘value2’]
# logger:字符串类型,"bar"表示进度条、None 表示不设置、或任何程序日志记录器的名字
# ————————————————
# 版权声明:本文为CSDN博主「LaoYuanPython」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
# 原文链接:https://blog.csdn.net/LaoYuanPython/article/details/114589561
#2、wav转pcm
import numpy as np
def wav2pcm(wavfile, pcmfile, data_type=np.int16):
f = open(wavfile, "rb")
f.seek(0)
f.read(44)
data = np.fromfile(f, dtype= data_type)
data.tofile(pcmfile)
pcmfile_pcm='kaihui.pcm'#设置保存文件名
wav2pcm(fielname_wav, pcmfile_pcm, data_type=np.int16)#保存
# 申请百度语音识别
APP_ID = ''
API_KEY ='GYKqlTqfnxFHokkfEujXbuDW'
SECRET_KEY ='23zkptXIwi0YnWbfpll2s5jhFkKxZuSR'
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
# 读取文件
def get_file_content(file_path):
with open(file_path, 'rb') as fp:
return fp.read()
# 识别本地文件
fielname_wav='kaihui.wav' ## fielname_wav='16k.wav'百度测试文件
result = client.asr(get_file_content(fielname_wav), 'wav', 16000, {'dev_pid': 1536})
# result = client.asr(get_file_content(fielname_wav), 'wav', 713125, {'dev_pid': 1536})
print(result)
# 识别本地文件
# pcmfile_pcm='16k.pcm' #百度提供初期测试
test1 = client.asr(get_file_content(pcmfile_pcm), 'pcm', 16000, {'dev_pid': 1536, })
# 参数1: speech 音频文件流 包含语音Buffer对象, 文件格式:pcm 或 wav 或 amr,pcm最好
# 参数2: format 文件格式,包括pcm(不压缩)、wav、amr
# 参数2: rate 音频文件采样率 如使用FFmpeg命令转换,是16000
# 参数4: dev_pid 语言id 默认1537(普通话 输入法模型)
print(test1)

792

被折叠的 条评论
为什么被折叠?



