当前位置: 首页 > 工具软件 > Bing API SDK > 使用案例 >

php文本转语音mp3api源代码,用Bing Speech API转录MP3音频文件(语音到文本)

储国发
2023-12-01

我有MP3格式的长时间录音(小时+)。 以下是我设法从FFMPEG获得的有关音频文件的信息:[mp3 @ 000001fe666da320] Skipping 0 bytes of junk at 58650.

[mjpeg @ 000001fe666effe0] Changing bps to 8

[mp3 @ 000001fe666da320] Estimating duration from bitrate, this may be inaccurate

Input #0, mp3, from '1.mp3':

Duration: 00:57:18.52, start: 0.000000, bitrate: 192 kb/s

Stream #0:0: Audio: mp3, 44100 Hz, mono, s16p, 192 kb/s

Stream #0:1: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 1300x1370, 90k tbr, 90k tbn, 90k tbc

我想使用Bing Speech API(Microsoft Oxford - 认知服务 - Speech API)来转录此文件(语音到文本)。

我相信这可以通过使用类似下面的代码来实现。

选项1:在发送任何音频数据之前,您必须首先发送SpeechAudioFormat描述符,以通过DataRecognitionClient的sendAudioFormat()方法描述原始音频数据的布局和格式。 你能提供这个选项的代码示例吗?

选项2:将文件转换为目标的可接受格式。 我已经用FFMPEG做到了这一点,这就是我得到的:Duration: 00:57:23.67, bitrate: 256 kb/s

Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 16000 Hz, 1 channels, s16, 256 kb/s

据我所知,这应该是可以接受的:音频必须是PCM,单声道,16位采样,采样率为8000Hz或16000Hz。

我试图将音频发送到服务器,但没有得到任何答复。 我在正确的轨道上吗? 什么是最大缓冲区大小?

你看到其他,也许更容易选择让我的音频文件转录?private void SendAudioHelper(string wavFileName)

{

using (FileStream fileStream = new FileStream(wavFileName, FileMode.Open, FileAccess.Read))

{

int bytesRead = 0;

byte[] buffer = new byte[1024];

try

{

do

{

// Get more Audio data to send into byte buffer.

bytesRead = fileStream.Read(buffer, 0, buffer.Length);

// Send of audio data to service.

this.dataClient.SendAudio(buffer, bytesRead);

}

while (bytesRead > 0);

}

finally

{

// We are done sending audio. Final recognition results will arrive in OnResponseReceived event call.

this.dataClient.EndAudio();

}

}

}

使用REST实现时,有15秒的限制。 SDK有2分钟的限制。

Bing演讲团队

链接地址: http://www.djcxy.com/p/34453.html

 类似资料: